Drupal 7 - настраиваемое отображение узла

У меня проблема. Я создал узел файла - mycontenttype.tpl.php, чтобы отображать узлы по-своему. Я перечислил весь массив $ content по print_r ($ content). Я могу отображать все переменные, кроме полей CCK. Например, я могу распечатать тип узла, например:

<?php print $content['body']['#bundle']; ?>

Но если я попытаюсь отобразить любое поле CCK, например:

<?php print $content['body']['#object']->field_url[und][0]['value']; ?>

Это дает мне ошибку "Примечание: использование неопределенной константы и предполагаемого 'и' w include ()". Хорошо, поэтому «und» означает «undefined» для langauge, но ни 'pl', ни 'en' не решают проблему. Как я могу с этим справиться?


person David    schedule 02.06.2012    source источник


Ответы (2)


Хорошо, после исследования я наконец нашел ответ. Это работает, но в некоторых случаях выглядит немного неэффективно. Код выглядит так:

<?php 
$output = field_get_items('node', $node, 'field_url');
$output = $output[0]['safe_value'];
print $output;
?>

Но если у вас много полей CCK, похоже, вам придется запускать функцию field_get_items () много раз. Если кто-то из вас знает лучший подход, было бы неплохо, если бы вы могли поделиться им.

person David    schedule 02.06.2012

Когда вы пишете [und], Drupal (PHP) предполагает, что где-то в коде определена переменная $und.

Вам следует использовать:

<?php print $content['body']['#object']->field_url['und'][0]['value']; ?>
person Dusan Markovic    schedule 16.08.2012