Вывести значение поля

Пт, 16/06/2017 - 18:36

Как вывести значение поля в шаблоне ноды?
Именно значение без стилей и обёрток?

<?php print render($content['field_name']); ?>
этот код выдаёт дефолтное поле со стилями

<?php print render($content['field_name'][0]); ?>
этот код выдаёт значение! Но только одно! Если значений больше, то они просто не выводятся.

Какой же код использовать?

0 Спасибо

Комментарии

Аватар пользователя tlito
2 months 3 дня назад tlito #
<?php
for ($i=0;$i<count($content['field_name']);$i++) 
    print 
render($content['field_name'][$i]);
?>
0 Спасибо
Аватар пользователя Dec0der
2 months 3 дня назад Dec0der #

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]);?>

0 Спасибо
Аватар пользователя Dec0der
2 months 3 дня назад Dec0der #

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]);?>

0 Спасибо
Аватар пользователя ХулиGUN
2 months 3 дня назад ХулиGUN #

1. Увеличьте выделяемую под php память
2. Зачем render, если нужны только голые значения?

0 Спасибо
Аватар пользователя tlito
2 months 2 дня назад tlito #

вначале замените цикл for на это:

<?php
echo "число элементов: "count($content['field_name']);
?>

узнав, что количество элементов не должно вызывать переполнение, попробуйте не использовать render():

<?php
for ($i=0;$i<count($content['field_name']);$i++) 
    echo 
$content['field_name'][$i];
?>
0 Спасибо
Аватар пользователя bumble
2 months 2 дня назад bumble #
Dec0der написал:
Как вывести значение поля в шаблоне ноды?

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

Например так:

<?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, если очень необходимо).

1 Спасибо