2015-02-25 3 views
1

Я использую узел в моей новой теме Drupal 7, и я хочу использовать слайд-шоу с пользовательской разметкой.Drupal: Самый чистый путь для цикла throught field_image в шаблоне узла

У моего узла есть поле изображения (field_image), содержащее несколько изображений.

На данный момент я могу получить генерировать код с этим:

$node = node_load($nid); 
$image = $content['field_image']["#object"]->field_image; 
//htmldump($image); 

foreach ($image as $key=>$value) { 

    $output = field_view_value('node', $node, 'field_image', $image[$key], array(
    'type' => 'image', 
    'settings' => array(
     'image_style' => 'thumbnail', //place your image style here 
     'image_link' => 'content', 
    ), 
)); 
    print render($output); 
} 

И это работает нормально, но я не уверен, что это лучший способ сделать это.

1) Как я могу использовать «предложение» или «крюк» (я не очень хорошо знакомы с этим понятием и используется только присутствующие по умолчанию в моем template.php)

2) Является ли $content['field_image']["#object"]->field_image; надежным и обновить доказательство?

EDIT: <div class="b-slick"> <div class="b-slick__slide"><img typeof="foaf:Image" src="http://localhost/blabla/pic1.jpg" width="978" height="651" alt=""></div> <div class="b-slick__slide"><img typeof="foaf:Image" src="http://localhost/blabla/pic2.jpg" width="978" height="651" alt=""></div> </div>

+0

хммм ... есть несколько модулей, которые обеспечивают слайд-шоу, которые вы смотрели в них? если это не вариант, то подумайте, что вам нужно больше поделиться тем, что разметка, создаваемая Drupal, отсутствует, поэтому мы можем помочь. – Alberto

+0

Thx Alberto, но, как я писал, результат работает очень хорошо. Но для меня это так много. Поэтому я задаюсь вопросом, есть ли более чистый способ получить тот же результат. Плюс: '$ image = $ content ['field_image'] [" # object "] -> field_image; 'кажется немного слабым для меня. Я отредактирую, чтобы показать вам разметку результатов. – dagatsoin

ответ

0

Вы можете использовать следующий код:

<?php 
foreach ($content['field_images'] as $key=>$image): 
if(is_numeric($key)): 
print render($content['field_images'][$key]); 
endif; 
endforeach; 
?> 
+0

Да! Более кратким. Но я теряю массив контрольных параметров. – dagatsoin

+0

контрольный массив параметров? Пожалуйста, объясните –

+0

Это массив в поле field_view_value() un my question. Это позволяет мне выбирать размер, устанавливать ссылку и т. Д. – dagatsoin