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

Аватар пользователя Dec0der

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

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

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

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

Тип материала:
Версия Drupal:
0 Спасибо

Комментарии

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

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
Dec0der 4 месяца назад

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 Спасибо
Аватар пользователя tlito
tlito 4 месяца назад

вначале замените цикл 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
bumble 4 месяца назад 1
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, если очень необходимо).