ビューのフィールドとしてNID(ノードID)を簡単に追加し、フォーマットされていない一般的なビューの行クラスの置換パターンを使用して、ビュー行のクラスとしてレンダリングできます。 (画面キャプチャを参照)。
ただし、NIDを各行の[〜#〜] id [〜#〜]としてレンダリングして、私が行っている特別なテーマで使用したいと思います。 devel themerを使用すると、テンプレートがviews-view-unformatted.tpl.php
もちろん、このテンプレートを自分のビューに固有のカスタム名でテーマのテンプレートフォルダーにコピーしてから、テーマを設定できます。
行クラスをレンダリングするテンプレート内の関連するコード行は次のとおりです。
<div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"'; } ?>>
それを次のように変更した場合:
<div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"'; } ?>
id="<?php print $fields['nid']->content ?>">
...ただし、ビュー行のこのレベルではフィールドを使用できないと思うので、これは機能しません。
だから本質的に今私のレンダリングされた出力は:
<div class="views-row views-row-1 views-row-odd views-row-first mynid-63">
<div class="views-row views-row-2 views-row-even mynid-64">
...なりたいとき
<div class="views-row views-row-1 views-row-odd views-row-first" id="mynid-63">
<div class="views-row views-row-3 views-row-even" id="mynid-64">
私の質問、関連付けられているNIDを、idとして必要な場所にレンダリングする方法はありますか?
ほとんどのビューテンプレートでは、_$view
_オブジェクト全体を使用できます。したがって、行にnid
フィールドがあると仮定すると、次のようなものでそれにアクセスできるはずです。
_$view->result[$id]->nid
_
だから、与える
_id="my-nid-is-<?php print $view->result[$id]->nid; ?>">
_
テンプレートで試してください。
これが正確に機能しない場合は、テンプレートの上部にあるprint_r($view->result);
を使用すると、作業対象を簡単に確認できます。
NIDは、クラス文字列の最後にあるフォーマット設定を介して追加されます。 '$ classes_array [$ id]
クラス文字列の最後のクラス(ビューを介して追加されたNid)を取得します。次に、クラスの後の行に$ lastを適切なIDとして追加します
これを次のように変更します。
<div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"'; } ?>>
に:
<div<?php if ($classes_array[$id]) {
$class_string = explode(' ', $classes_array[$id]);
$last = end($class_string);
print ' class="' . $classes_array[$id] .'"' . ' id="' . $last . '"';
} ?>>