Помогите с php, при создании микроразметки

Главные вкладки

Аватар пользователя s.e.o-man s.e.o-man 21 июля 2018 в 21:12

Собственно нужна помощь с php, не знаю циклы.
Помогите написать код

<?php$content['field_ingridientii'][$ВОТ_ТУТ_ЗНАЧЕНИЕ]['entity']['field_collection_item']?>

$ВОТ_ТУТ_ЗНАЧЕНИЕ это цифры массива, в каждой ноде их разное количество.

Нужно чтобы цикл их перебирал и выводил ВСЕ значение этого поля.

(Нужно для вывода микроразметке recipeingredient, мое поле собрано из коллекции полей)

Лучший ответ

Аватар пользователя s.e.o-man s.e.o-man 22 июля 2018 в 22:48

После долгих и мучительных попыток смог своять вот это, может кому пригодится:

<?php$aaa = ($node->field_ingridientii['und']);       
$result = count($aaa);       
$num=0;
while ($num < $result) {?>
<li itemprop="recipeIngredient"> <?php print render($content['field_ingridientii'][$num]['entity']['field_collection_item']);?> </li>
<?php $num++;} ?></li>?>

Всем спасибо!

Комментарии

Аватар пользователя s.e.o-man s.e.o-man 21 июля 2018 в 22:24

Смог посчитать их количество

<?php $aaa = ($node->field_ingridientii['und']);       
       
$result count($aaa);       
       print 
$result;?>

Как теперь вывести все это

Аватар пользователя gun_dose gun_dose 21 июля 2018 в 22:48

Поставьте модуль devel, пропишите в шаблоне dpm($node->field_ingridientii) и увидите структуру переменной. Но наверняка там в нём будут айдишники филдколлекшенов, а не их значения. Можно, например через entity_load_single загружать в цикле эти коллекции и обрабатывать их значения. В принципе, ничего сложного, просто надо разобраться, что к чему.

Аватар пользователя sas@drupal.org sas@drupal.org 22 июля 2018 в 11:28

> Нужно чтобы цикл их перебирал и выводил ВСЕ значение этого поля.
Обычный display -> formatter для https://www.drupal.org/project/field_collection если чего то не хватает можно даже не писать новый форматтер а использовать views например через https://www.drupal.org/project/field_views

Аватар пользователя s.e.o-man s.e.o-man 22 июля 2018 в 18:16

Люди весь день все изучал, но ни чего не получилось.
Дайте ссылки на инфу,.

Все что я смог сделать, а как это прогнать циклом?

<?php<li itemprop="recipeIngredient"> <?php print render($content['field_ingridientii'][0]['entity']['field_collection_item']);?>
     <li itemprop="recipeIngredient"> <?php print render($content['field_ingridientii'][1]['entity']['field_collection_item']);?>
     <li itemprop="recipeIngredient"> <?php print render($content['field_ingridientii'][2]['entity']['field_collection_item']);?>
     <li itemprop="recipeIngredient"> <?php print render($content['field_ingridientii'][3]['entity']['field_collection_item']);?>
     <li itemprop="recipeIngredient"> <?php print render($content['field_ingridientii'][4]['entity']['field_collection_item']);?>
     <li itemprop="recipeIngredient"><?php print render($content['field_ingridientii'][5]['entity']['field_collection_item']);?>
Аватар пользователя s.e.o-man s.e.o-man 22 июля 2018 в 22:48

После долгих и мучительных попыток смог своять вот это, может кому пригодится:

<?php$aaa = ($node->field_ingridientii['und']);       
$result = count($aaa);       
$num=0;
while ($num < $result) {?>
<li itemprop="recipeIngredient"> <?php print render($content['field_ingridientii'][$num]['entity']['field_collection_item']);?> </li>
<?php $num++;} ?></li>?>

Всем спасибо!