ds モジュールで作成したカスタム表示モードがあります。この表示モードにはノード記事が一覧表示され、各記事は次のように表示されます。
- 題名
- 解説
- url
- term参照フィールド
- 他のいくつかのフィールド...
用語参照フィールドに応じていくつかのスタイルを条件付きで追加したい例:最初の記事には値「1」の用語参照があり、この記事の背景を「赤」に変更します。2番目の記事には用語参照があります値「2」、背景を「緑」に変更して......
EDIT:
これは、いくつかのフィールドの表示を管理する方法のイメージです。
私の興味は、フラグフィールドです。これは、(title、color(16進値)、description ...)という分類フィールド参照です。このフラグフィールドは、フォーマッタには「編集可能」( editablefieds モジュールで実行)があるため、編集者はこのフィールドの値を編集できます。
フラグ魔女の隣に別のフィールドを追加したいのは、現在のフラグ分類用語のcolorフィールドであり、たとえば単純なdiv
一部のwidth
とheight
を使用し、backgroun-color
、このカラーフィールド
以前の投稿よりも明確であることを願っています:)
前もって感謝します。
これは 特定のビューモードにテンプレートを提供する方法? によく似ています。ここで、カスタムphpコードを追加して、そのビューモードで使用される変数を追加したり、使用されているテンプレートに単純なif/else/in_arrayを追加したりできます(これはカスタムテンプレートに限定されません。テーマのデフォルトのnode.tpl.phpをいつでもオーバーライドできます。
更新:用語参照フィールドに応じてcssクラスのみを追加します。
// can also be THEME_
function MYMODULE_preprocess_node(&$vars) {
if ($vars['view_mode'] == 'myviewmode') {
if(isset($vars['node']) && isset($vars['node']->field_my_term_reference)) {
// class to add a general has-term-reference-class
$vars['classes'][] = 'has-term-reference';
// add a specific term-reference-class
foreach($vars['node']->field_my_term_reference as $tid) {
// class based on term id
$vars['classes'][] = 'term-id-' . $tid;
// class based on term name
$term = taxonomy_term_load($tid);
$vars['classes'][] = 'term-name-' . $term->name;
}
}
}
}
私はおそらく自分でjavascriptでこれを行うでしょう。ただし、ビューのみで実行する場合は、次のようにできます。
すべての表示フィールドを複製して、それぞれが2つになるようにします。
これらのフィールドのセットに移動して、カスタムCSSタグを追加します。このタグのCSSをテーマに記述して、1つの条件で必要なことを実行します。
2番目のフィールドセットに移動して同じことを行いますが、別の条件用に記述されたCSSで新しいCSSタグを使用します。
次に、各セットの各フィールドで、参照フィールドの値に基づいて、これらのフィールドの表示に条件を設定します。フィールドは、条件が満たされている場合にのみ表示されます。これはうまくスケーリングしません。これを3つ以上の条件でスケーリングする場合は、コメントしてください。N条件の別の解決策を考え出すことができます。 (ソリューションはそれほど単純ではありません。)