Как отобразить имя термина с созданного дополнительного поля ссылка на термин? (Решено)

Главные вкладки

Аватар пользователя xJabix xJabix 28 мая 2015 в 21:30

Приветствую, возникла проблема не могу решить:

Сделал блок с PHP обработкой в котором должен выводится динамичный контент. Нашел как вывести название материала и имя юзера (если не зарегистрирован, то выводится как гость). Не могу разобраться как отобразить имя термина с созданного дополнительного поля "ссылка на термин таксономии" в качестве категории как текст.

<p>Здравствуйте, <?php global $user; if ($user->uid) {  print t('name', array('name' => format_username($user)));} else {  print t('Гость');} ?>.
Здесь вы можете ознакомиться с материалом "<?php $node = node_load(arg(1)); echo $node->title; ?>".</p>
<p><?php $node = node_load(arg(1)); echo $node->title; ?> относится к категории: <?php ??? ?>.

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 28 мая 2015 в 21:58

Получить tids из поля: $field_items = field_get_items('node', $node, 'field_myName');
Получить объект термин: $term = taxonomy_term_load($tid);
ссылка: l($term->name, "taxonomy/term/{$term->tid}");

Аватар пользователя xJabix xJabix 28 мая 2015 в 23:31

Пробовал так:

<?php
        $field_items = field_get_items('node', $node, 'field_kategorii'); // Получить tids из поля
        $term = taxonomy_term_load($tid); // Получить объект термин
        print l($term->name, "taxonomy/term/{$term->tid}"); // Ссылка
?>

Не хочет работать.

Аватар пользователя xJabix xJabix 28 мая 2015 в 23:40

Выдает ошибки:

Notice: Undefined variable: tid в функции eval() (строка 4 в файле /tema/modules/php/php.module(80) : eval()'d code).
Notice: Trying to get property of non-object в функции eval() (строка 5 в файле /tema/modules/php/php.module(80) : eval()'
d code).
Notice: Trying to get property of non-object в функции eval() (строка 5 в файле /tema/modules/php/php.module(80) : eval()'d code).
Notice: Undefined variable: tid в функции eval() (строка 4 в файле /tema/modules/php/php.module(80) : eval()'
d code).
Notice: Trying to get property of non-object в функции eval() (строка 5 в файле /tema/modules/php/php.module(80) : eval()'d code).
Notice: Trying to get property of non-object в функции eval() (строка 5 в файле /tema/modules/php/php.module(80) : eval()'
d code).
Аватар пользователя xJabix xJabix 29 мая 2015 в 11:00

Нагуглил такой вариант:

<?php
$term = taxonomy_term_load($node->field_kategorii['und'][0]['tid']);
print l($term->name, "taxonomy/term/{$term->tid}");
?>

Получилось так:

<p>Здравствуйте, <?php global $user; if ($user->uid) {  print t('@Name', array('@Name' => format_username($user)));} else {  print t('Гость');} ?>.
Здесь вы можете ознакомиться с материалом "<?php $node = node_load(arg(1)); echo $node->title; ?>".</p>
<p><?php $node = node_load(arg(1)); echo $node->title; ?> относится к категории: <?php $term = taxonomy_term_load($node->field_kategorii['und'][0]['tid']); print l($term->name, "taxonomy/term/{$term->tid}"); ?>

Вроде работает.