Как вывести картинку к термину таксономии?

Аватар пользователя tehfoxen tehfoxen 26 мая в 22:59

Сделаны термины таксономии и к ним поле изображение. Задача через тип материала или шаблон вывести поле с изображением таксономии. Как это проще всего сделать? В идеале через шаблон страницы вывести это поле, но вот так не работает <?php print render($content['field_image']); ?>
Как это проще всего сделать?

Лучший ответ

Аватар пользователя OldWarrior OldWarrior 29 мая в 1:52
1

tehfoxen wrote:... почему-то там ... Не пойму в чем проблема.

Потому что код выше грузит только один первый термин [0].
Хотите multiple - выводите в цикле. Как-то так, например:

<?php
// field_tags - поле термина в материале
foreach ($node->field_tags['und'] as $delta) {
  
$term taxonomy_term_load($delta['tid']);
  
// 'field_image' -  поле изображения в термине
  
$result field_view_field('taxonomy_term'$term'field_image');
  print 
render($result);
}
?>

Точно не помню уже, как в 7-ке, но может ещё понадобится проверка на скалярное/числовое значение текущего ключа (хотя скорее всего это лишнее):

<?php
// field_tags - поле термина в материале
foreach ($node->field_tags['und'] as $key => $delta) {
  if (
is_numeric($key )) {
    
$term taxonomy_term_load($delta['tid']);
    
// 'field_image' -  поле изображения в термине
    
$result field_view_field('taxonomy_term'$term'field_image');
    print 
render($result);
  }
}
?>

Комментарии

Аватар пользователя OldWarrior OldWarrior 26 мая в 23:38

Путаница какая-то.

1.

tehfoxen wrote: Сделаны термины таксономии и к ним поле изображение. Задача через тип материала или шаблон вывести поле с изображением таксономии.

Через шаблон типа материала или таки шаблон термина?

2.

tehfoxen wrote: В идеале через шаблон страницы вывести это поле, но вот так не работает <?php print render($content['field_image']); ?>

Опять же вопрос: из какого именно шаблона вы это намерены вывести? Если в контексте taxonomy-term.tpl.php, то это поле должно быть доступно. Если в контексте обычной страницы ноды, то всё немного сложнее.

Аватар пользователя tehfoxen tehfoxen 27 мая в 21:24

через шаблон типа материала, обычной страницы ноды. Все поля туда выведены программно.

Аватар пользователя OldWarrior OldWarrior 27 мая в 23:11
1

Я не знаю id ваших полей, но вообще можно как-то так:

<?php
// field_tags - поле термина в материале
$term taxonomy_term_load($node->field_tags['und'][0]['tid']);
// 'field_image' -  поле изображения в термине
$result field_view_field('taxonomy_term'$term'field_image');
print 
render($result);
?>
Аватар пользователя tehfoxen tehfoxen 28 мая в 23:03

Спасибо! Одна только проблема, почему-то там где вывод нескольких терминов таксономии на страницу выводится только одна картинка. Не пойму в чем проблема.

Аватар пользователя OldWarrior OldWarrior 29 мая в 1:52
1

tehfoxen wrote:... почему-то там ... Не пойму в чем проблема.

Потому что код выше грузит только один первый термин [0].
Хотите multiple - выводите в цикле. Как-то так, например:

<?php
// field_tags - поле термина в материале
foreach ($node->field_tags['und'] as $delta) {
  
$term taxonomy_term_load($delta['tid']);
  
// 'field_image' -  поле изображения в термине
  
$result field_view_field('taxonomy_term'$term'field_image');
  print 
render($result);
}
?>

Точно не помню уже, как в 7-ке, но может ещё понадобится проверка на скалярное/числовое значение текущего ключа (хотя скорее всего это лишнее):

<?php
// field_tags - поле термина в материале
foreach ($node->field_tags['und'] as $key => $delta) {
  if (
is_numeric($key )) {
    
$term taxonomy_term_load($delta['tid']);
    
// 'field_image' -  поле изображения в термине
    
$result field_view_field('taxonomy_term'$term'field_image');
    print 
render($result);
  }
}
?>