как ссылаться на поля с несколькими значениями в узле - шаблон типа содержимого


В настоящее время у меня есть шаблон для типа содержимого статьи.

Node--article.tpl.php содержит:

<?php
    print render($content['body']);
    print render($content['field_file']);
    print render($content['field_tags']);
?>

Все эти поля отображаются просто отлично. Отображаются все значения field_tags. Однако я хотел бы иметь возможность ссылаться на каждое отдельное значение поля тегов.

Например, я хотел бы иметь возможность делать

    <span class="customClass i">field_tag</span>

И повторите i для каждого элемента, который выплевывает поле.

Я предпринял несколько неудачных попыток. Я пробовал

$i = 0;
while($content['field_tags']){
    print "<span class='customClass ".$i."'>";
    print render($content['field_tags']);
    print "</span>";
    $i += 1;
}

Однако это просто создало бесконечный цикл. Я попытался сделать это с помощью

while(render($content['field_tags']))

Также, но это также создало бесконечный цикл. Есть ли способ получить доступ к полю тегов в виде массива? а не просто один элемент в массиве $content?

Author: Matt, 2015-08-10

1 answers

Мне удалось добиться этого, добавив [значение] в конец массива field_tag. Затем, используя функцию "count", я создал цикл for для перебора каждого значения, например

$j = count($content['field_tags']);
for( $i = 0; $i < $j; $j+= 1){
    if(render($content['field_tags'][$i]) != ''){
        print "<span class='customClass ".$i."'>";
        print render($content['field_tags'][$i]);
        print "</span>";
    }
}

Примечание: По какой-то причине мне пришлось вставить проверку, был ли тег пустым, потому что массив оказался намного больше, чем количество тегов.

 1
Author: Matt, 2015-08-10 17:49:53