views-view-list.tpl.php
の内部には、次のようなループがあります。
<?php foreach ($rows as $id => $row): ?>
<li class="<?php print $classes_array[$id]; ?>"><?php print $row; ?></li>
<?php endforeach; ?>
HTMLのレンダリングをviews-view-fields.tpl.php
に渡すのではなく、各アイテム内のフィールドの実際の値にアクセスできるようにしたい。
疑似コードで、私はこれをしたいと思います(このコードは機能しません):
<?php foreach ($rows as $id => $row): ?>
<?php print $row->$fields['field_my_field_name']; ?>
<?php endforeach; ?>
<?php foreach ($rows as $id => $row): ?>
<?php print $row->$fields['field_my_second_field_name']; ?>
<?php endforeach; ?>
実際に$row
オブジェクトを使用しますか、それとも他のものを使用しますか?
views-view-list.tpl.phpファイルは、フィールドではなく行のリストを表示するためのビューテンプレートです。
テーマのみのフィールド:
<?php foreach ($fields as $id => $field): ?>
<li><?php print $field->content; ?></li>
<?php endforeach; ?>
*ファイル:views-view-fields-[ビュー名]-[display] .tpl.php
出力全体のテーマ設定:
<div class="<?php print $classes; ?>">
<?php foreach ($view->style_plugin->rendered_fields as $delta => $item): ?>
<li><?php print $item['field_my_field_name']; ?></li>
<?php endforeach; ?>
</div>
*ファイル:views-view-[ビュー名]-[display] .tpl.php
これを解決するのに少し時間がかかったので、使用したソリューションを共有しました。
<?php foreach ($rows as $id => $row): ?>
<?php print $view->render_field('field_my_field_name', $id);?>
<?php endforeach; ?>
<?php foreach ($rows as $id => $row): ?>
<?php print $view->render_field('field_my_second_field_name', $id);?>
<?php endforeach; ?>
ほとんどのビューテンプレート内には、ビューオブジェクト全体を含む_$view
_変数があります。その内部では、基本的には行の配列である_$view->result
_を介して生の結果にアクセスできます。 drupal_set_message('<pre>' . print_r($view->result, TRUE) . '</pre>')
または同等のものを投入すると、何を処理する必要があるかがわかります。
最も簡単な方法は次のとおりです。$ fields ["field_name"]-> content;ここで、field_name-> cckフィールド名。
お役に立てれば幸いです!!
乾杯!ラージ