Доброго времени всем!
Цель: в стандартном представлении views taxonomy_term, которое заменяет вывод материалов в таксономии, сделать так, чтобы перед лентой самих материалов выводился сам термин, ну и все его поля, конечно же кроме заголовка - имя термина.
Поступаю так: Создаю шаблон вьюхи:
<?php
/**
* file
* Default simple view template to display a list of rows.
*
* ingroup views_templates
*/
?>
<?php if (!empty($title)): ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
<div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"'; } ?>>
<?php print $row; ?>
</div>
<?php endforeach; ?>
Чтобы вывести термин, пишу код:
<?php
$term = taxonomy_term_load(arg(2));
if ($term) {
$term = taxonomy_term_view($term);
print drupal_render($term);
}
?>
Этот код вставляю в шаблон.
Всё работает как надо. теперь надо исключить название термина (чтобы не дублировать, т.к. заголовок страницы уже есть).
Первое что приходит в голову: перед рендером термина скрывать заголовок:
<?php
hide($term['#term']->name);
?>
И вот тут есть одна загвоздка: если термин имеет название на русском - он скрывается, если на английском, то нет.... а вместо первого символа появляется цифра 1.
Если кто сталкивался с такой проблемой, напишите пожалуйста.
Либо если есть более удачное решение чтобы реализовать мою задачу.
Заранее спасибо
Комментарии
Два дня мучился над этой проблемой. Решил. Суть вот в чем. Название термина выводится потому, что это указано в шаблоне taxonomy-term.tpl.php. А этот файл шаблона участвует в рендеринге.
Т.е. чтобы не выводить название термина, нужно убрать этот кусок из файла шаблона:
А hide() использовать не нужно.
Автору поста спасибо за наводку.