Как програмно вставить поле в поле (Xzibit style)

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

Аватар пользователя Finx Finx 25 октября 2016 в 15:21

В термине таксономии создал поле "Описание" и мне нужно через это поле вместе с текстом вывести поле модель.
Пробую вставлять:
<?php print render($node->field_model['und'][0]['value']); ?>
Но ничего не выводится.
Как быть?

---------
UPD: Так вообще ошибку выдает
<?php
$field_tags = field_view_field('node', $node, 'field_model');
$output = render($field_tags);
echo render($output);
?>

Комментарии

Аватар пользователя bumble bumble 25 октября 2016 в 16:25

Finx wrote:

поле модель

От чего поле? От термина?
Finx wrote:

Пробую вставлять:
...
Но ничего не выводится.

Куда вставляете?

Finx wrote:

UPD: Так вообще ошибку выдает

Какую ошибку?

Аватар пользователя Finx Finx 25 октября 2016 в 16:47

«От чего поле? От термина?»
В поле термина (описание) вывести поле материала (модель)

«Куда вставляете?»
В поле термина (описание) ((taxonomy/term/2147/edit))

«Какую ошибку?»
EntityMalformedException: Отсутствует связующее свойство у сущности типа node. в функции entity_extract_ids() (строка 7907 в файле /home/magdacco/public_html/emsoftware.ru/includes/common.inc

Аватар пользователя bumble bumble 25 октября 2016 в 17:01

1. Ваш подход неправильный! Привязка идет термина к ноде, а не ноды к термину.
2. Из описания PHP работать не будет, а если и будет (что неправильно, низко-производительно и не безопасно) - Вам все равно нужно, как минимум загрузить туда нужную ноду, и тогда уже получать значения поля и выводить их.
3. Смотрите/читайте и работайте со следующими хуками:

Аватар пользователя VasyOK VasyOK 26 октября 2016 в 11:47

А почему бы блок-вьюху для термина создать и выводить этот блок на страницах термина? Или там где вам надо.

Аватар пользователя Finx Finx 26 октября 2016 в 12:57

Это отличная идея Smile
Вот только у нас каталог на 100 категорий и в каждой должен быть свой текст.
Если выводить через термин такосномии, то в каждой категории можно вписать свой текст.
А если делать через блок, то текст везде один и тот же будет. Предположим можно наплодить 100 блоков с различными текстами, то так выводить нужный блок в товаре каждой категории. Если это была страница ноды, то можно было просто приинклудить по адресу. А это категория в которой сотни нод и в каждой нужно вывести один и тот же текст относящийся к термину.

Аватар пользователя VasyOK VasyOK 26 октября 2016 в 14:54

"каталог на 100 категорий и в каждой должен быть свой текст.
Если выводить через термин такосномии, то в каждой категории можно вписать свой текст." - логично. Блок-вьюха будет один, в нем будет текст этого поля.

После 3-й строчки ничего не понял. Извините.

Аватар пользователя Finx Finx 26 октября 2016 в 15:09

С Формулировками иногда у меня туго. Так что это вы извините Smile
Я имел ввиду следующее:
Есть 100 терминов и в каждом из них в специальном поле "Информация" прописан определенный текст который для каждой категории разный.
Если делать по вашему примеру и создать вьювс с текстом выведя его через темизированый файл. То получится так, что зайдя в любую категорию, мы увидим один и тот же текст прописанный во вьювсе.

Аватар пользователя Finx Finx 26 октября 2016 в 15:13

Но вы подтолкнули меня на решение. Я поступил так
1) Создал вьювс с контекстным фильтром "Содержимое: Nid"
2) Вывел поле "Модель"
3) В термине таксономии в специальном поле прописал

<?php 
   $block 
module_invoke('views''block_view''name-block'); 
   print 
render($block); 
 
?>
Аватар пользователя VasyOK VasyOK 26 октября 2016 в 16:12

Пожалуйста, но яимел ввиду вьюх типа термин и аргумент там tid, а не nid.
Вообще то что вы пописываете в файлах для вывода информации я редко делаю. Мне просто не удобно. Обычно все вывожу через вьюхи.

Аватар пользователя asantat asantat 29 октября 2016 в 0:57

Текст будет браться из поля вне зависимости от того, сколько блоков Вы создадите. Также эту задачу можно решить через DS, экономичней по ресурсам должно быть. Попробуйте.