私はこれから数日間の大部分の間、運がなくてこれをいじっています。これが私のコレクションデータです:
コレクション名: field_video_collection
コレクション内には、次のフィールドがあります。 field_video_file_col
私のフィールドはカスタムfield-collection-item--field_video_collection.tpl.php
テンプレートで正常に印刷されます。この問題に従ってドキュメントに従ってテンプレート名を取得し、<?php print render($content['field_video_file_col']); ?>
そのテンプレート内でフィールドをetc ... として印刷しました。
ここで、楽しい部分として、コレクション内の任意のノードのfid
各field_video_file_col
項目のを抽出し、それを印刷された変数としてレンダリングしたいと思います。私はこの質問の答えをここでスタックでフォローしましたが、私にはうまくいかないようです。私が行った場合:
print '<pre>';
var_dump(get_defined_vars());
print '</pre>';
私が利用できるデータの一部としてこれを持っていると思います field_video_file_col
["field_video_file_col"]=>
array(1) {
["und"]=>
array(1) {
[0]=>
array(12) {
["fid"]=>
string(3) "888"
したがって、この場合、FIDは888であるように見え、テンプレートでそれをレンダリングしたいと考えています。私のノードの前処理関数は次のとおりです:
function MYTHEME_preprocess_node(&$vars, $hook) {
$entity_type = 'field_collection_item';
$bundle_name = 'field_field_video_collection'; // Field name the collection is attached to
$field_name = 'field_video_file_col'; // Field name within the field collection
$video_file_fid = field_info_instance($entity_type, $field_name, $bundle_name);
if ($video_file_fid) {
$my_fid = $video_file_fid['fid'];
}
}
最終的に必要なのは、 field-collection-item--field_video_collection.tpl.phpテンプレートの変数を次のようにレンダリングする必要があることです。
<?php print $video_file_fid; ?>
...しかし、これは機能しないようです。私はすべてを検索して、このコードと組み合わせのさまざまな化身を試しましたが、それでも喜びはありませんでした。