0

6つのカスタムコンテンツタイプと、ノードタイプごとに6つのタイプとグループの結果を表示するビューがあります。

例:カスタムコンテンツタイプは、Computers、Cars、Foodなどです。ビューはノードをこれらのタイプでグループ化します。

[exposed filters here]

Computers
 - HP P6500
 - Leveno HQ3112

Cars
 - Ford F150
 - GM Silverado

Food
 - Apple
 - Banana

グループを任意の方法で並べ替えるにはどうすればよいですか?つまり、食品、自動車、コンピューター。また、各グループのカスタムタイトルとカスタムHTMLを指定するにはどうすればよいですか?各グループタイトルの横に画像、タイトルのカスタムカラーなどを表示したい。viewfield、views_field_view、viewreferenceモジュールを使用してこれを実現し、コンテンツタイプごとに個別のサブビューを作成し、それらすべてを表示するマスタービューを作成してみました。 、しかし、露出したフィルターとページネーションの動作に問題がありました。私はこれについて間違った方法で行っているかもしれません。任意の提案をいただければ幸いです!

4

2 に答える 2

1

Drupal 7 で Views 3.x を使用しているため、これが完全に適用できるかどうかはわかりません。しかし、まったく同じ問題(質問のソート部分)に直面したので、それについて言及したかったのです。

グループを任意の方法でソートするために、私が思いついた最も迅速な解決策は、Global: PHP ソート (Views UI 内) を使用することでした。Food、Cars、および Computers がコンテンツ タイプである場合、このようなものが機能するはずです...

switch ($row1->type) {
  case 'food':
    return -1;
    break;
  case 'computers':
    return 1;
    break;
  case 'cars':
    if ($row2->type == 'computers') {
      return -1;
    }
    elseif ($row2->type == 'food') {
      return 1;
    }
    else {
      return 0;
    }
    break;
  default:
    return 0;
  break;
}

また、 Views Grouping Row Limitモジュールも使用しました。これにより、グループをより細かく制御できます。そのモジュールを使用すると、テンプレートと CSS (グループの一意の ID) を使用してグループ出力を変更できます。これにより、そのグループ名の画像を追加できます。

グループ タイトルの名前を変更するには、jQuery を使用できますが、ビュー フックの 1 つである hook_views_post_render を使用することになりました。

function MODULE_views_post_render(&$view, &$output, &$cache) {
  $output = str_replace('<h3>Original Title</h3>', '<h3>' . t('New Title') . '</h3>', $output);
}

それが役立つことを願っています。

于 2013-05-09T21:50:38.610 に答える
0

ビュー出力を完全に制御するには、modules/views/theme フォルダーにあるビュー テンプレートを確認することをお勧めします。これらを直接編集するのではなく、テーマ フォルダにコピーしてそこで編集してください。(drupal がコピーを取得できるように、キャッシュをクリアする必要があります)。

どのテンプレートを編集する必要があるかを調べるには、http://drupal.org/project/devel_themerが便利なツールです。

小さな変更の場合は、代わりにテーマ フックを使用する方が簡単ですが、多くの変更を行う場合は、テンプレートで直接作業するのが賢明です。

于 2012-11-15T08:23:57.517 に答える