コード行を使用してフィールドを呼び出そうとしています:
<?php print $field->handler->view->field['title_1']; ?>
しかし、私はこのエラーを受け取り続けます:
Devel dpm()を使用して、それを呼び出すための正しいパスを探しましたが、handler->view->field['title_1']
。私は完全に困惑しており、正しい.tpl.phpファイルを使用しているかどうかはわかりません。誰かアイデアはありますか?
---編集---
<?php foreach ($fields as $id => $field): ?>
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<?php print $field->wrapper_prefix; ?>
<?php print $field->label_html; ?>
<?php print $field->content; ?>
<div>
<?php print $field->handler->view->field['title_1']; ?>
</div>
<?php print $field->wrapper_suffix; ?>
解説からは、いくつかのポイントが抜けていますが、このテンプレートは、ビューからフィールドの「行」を作成するために使用されます。
簡単なものを作成しましょう:
これには、タイトル、新しいフィールド、カスタムフィールドの3つのフィールドがあり、実行すると次のようになります。
次に、_views-view-fields--for-da.tpl.php
_を作成し、テンプレートを再スキャンして、その上部にデバッグ情報を追加します。
_drupal_set_message('<pre>' . print_r(array_keys($fields), TRUE) . '</pre>');
_
もう一度実行すると、次のようになります。
したがって、今、このテンプレート内のどこにいても、次のように個々のフィールドのコンテンツにアクセスできます。
_$fields['title']->content
$fields['field_new_field']->content
$fields['field_my_custom_field']->content
_
したがって、同様のdrupal_set_message()
sでそれらをスローすると、以下が生成されます。
しかし、今、これらのフィールドの1つを表示から除外しているとしましょう。例:
その後、これを取得します:
しかし、以下を介して_$row
_をさらに掘り下げます:
_drupal_set_message('<pre>' . print_r($row->field_field_my_custom_field, TRUE) . '</pre>');
_
これを与えるでしょう:
または除外されたフィールドのコンテンツへのアクセス:
_$row->field_field_my_custom_field[0]['rendered']['#markup']
_
明らかに、ここではフィールド名が特定の例とは異なりますが、ロジックに従ってください。
また、_$row
_を調べたくない場合は、常にビューUIを介してフィールドを表示に含め、このテンプレートから除外することができます。たとえば、次のようにします。
_<?php foreach ($fields as $id => $field): ?>
<?php if ($id != 'field_my_custom_field'): ?>
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<?php print $field->wrapper_prefix; ?>
<?php print $field->label_html; ?>
<?php print $field->content; ?>
<div class="insert-custom-field-content-here">
<?php print $fields['field_my_custom_field']->content; ?>
</div>
<?php print $field->wrapper_suffix; ?>
<?php endif; ?>
<?php endforeach; ?>
_
カスタムフィールドを除くすべてのフィールドを印刷しますが、他の各フィールドの内容の後にその内容を含めます。