Как вывести значение поля в шаблоне ноды?
Именно значение без стилей и обёрток?
<?php print render($content['field_name']); ?>
этот код выдаёт дефолтное поле со стилями
<?php print render($content['field_name'][0]); ?>
этот код выдаёт значение! Но только одно! Если значений больше, то они просто не выводятся.
Какой же код использовать?
Комментарии
<?php
for ($i=0;$i<count($content['field_name']);$i++)
print render($content['field_name'][$i]);
?>
tlito, при таком коде получаем ошибку
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 36 bytes) in E:\xampp\htdocs\site.ru\sites\all\themes\sub\templates\node--scenario.tpl.php on line 159
ссылается на эту строку
<?phpprint render($content['field_name'][$i]);?>
tlito, при таком коде получаем ошибку
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 36 bytes) in E:\xampp\htdocs\site.ru\sites\all\themes\sub\templates\node--scenario.tpl.php on line 159
ссылается на эту строку
<?phpprint render($content['field_name'][$i]);?>
вначале замените цикл for на это:
<?php
echo "число элементов: ". count($content['field_name']);
?>
узнав, что количество элементов не должно вызывать переполнение, попробуйте не использовать render():
<?php
for ($i=0;$i<count($content['field_name']);$i++)
echo $content['field_name'][$i];
?>
Правильнее - в препроцессоре получить нужные значения и присвоить их переменной, а в шаблоне уже только вывести значения.
Например так:
<?php
function MYTHEME_preprocess_node(&$vars) {
$vars['myvar'] = MYTHEME_callback_for_getting_values($vars) // Получаем необходимые значения
}
?>
И в шаблоне:
<?php if (isset($myvar)): ?>
<ul>
<?php foreach ($myvar as $myvar_item): ?>
<li><?php print $myvar_item; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
Для получения значений поля можно использовать field_get_items (ну, или EMW, если очень необходимо).