Tôi đã chơi xung quanh với điều này cho phần tốt hơn của một vài ngày nay không có may mắn. Đây là dữ liệu Bộ sưu tập của tôi:
Tên bộ sưu tập: field_video_collection
Trong bộ sưu tập có một trường gọi là: field_video_file_col
Các trường của tôi in tốt trong field-collection-item--field_video_collection.tpl.php
mẫu tùy chỉnh của tôi , tôi đã theo dõi tài liệu theo vấn đề này để lấy tên mẫu của mình và tôi chỉ cần in các trường như <?php print render($content['field_video_file_col']); ?>
vv ... trong mẫu đó.
Bây giờ là phần thú vị, tôi muốn trích xuất fid
từng field_video_file_col
mục trong bộ sưu tập trong bất kỳ nút đã cho nào và hiển thị nó dưới dạng một biến được in. Tôi đã làm theo câu trả lời trong câu hỏi này ở đây trên Stack nhưng dường như nó không hoạt động với tôi. nếu tôi làm:
print '<pre>';
var_dump(get_defined_vars());
print '</pre>';
Tôi thấy tôi có cái này như một phần dữ liệu có sẵn cho tôi field_video_file_col
["field_video_file_col"]=>
array(1) {
["und"]=>
array(1) {
[0]=>
array(12) {
["fid"]=>
string(3) "888"
Vì vậy, theo tôi, FID là 888 trong trường hợp này và tôi muốn kết xuất nó trong mẫu của mình. Chức năng tiền xử lý nút của tôi là như vậy:
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'];
}
}
Kết quả cuối cùng cần thiết là tôi cần hiển thị biến trong mẫu trường-bộ sưu tập-mục - trường_video_collection.tpl.php của mình dưới dạng:
<?php print $video_file_fid; ?>
... nhưng điều này dường như không hoạt động. Tôi đã tìm kiếm khắp nơi và thử nhiều hóa thân khác nhau của mã và kết hợp này nhưng vẫn không có niềm vui.