Отображение таксономии в материалах

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

Аватар пользователя talla13 talla13 6 октября 2015 в 13:55

Добрый день!
Разбираюсь с таксономией, появился вопрос, не смогла найти ответа.
Есть, например, два словаря таксономии:
Растения: цветы, кустарники, деревья.
Размещение: комнатные, садовые, тепличные.
Допустим, одна статья относится к двум этим словарям: Цветы, Комнатные.
Я создаю в типе материалов два поля для выбора этих категорий, создаю меню на основе таксономии, все нормально.
Но при выводе материала на сайт, под самим текстом статьи появились две строки со ссылками на эти категории:
Растения: Цветы
Размещение: Комнатные
Можно ли как-то сделать, чтобы эти две строки объединить в одну и чтобы выводилось например:
Категории: Цветы, Комнатные.

в node.tpl.php весь контент выводится одной строкой print render($content);
Раскопать его пробовала, но моих познаний маловато.
С помощью Content Templates выяснила, что за вывод этих данных отвечают такие строки:

<div class="field-items">
      <?php print render ($fields['field_cat_plants'] ) ; ?>
     </div>

Это для вывода категории Растения. в массиве ['field_cat_plants'] есть только элемент [#title] который выводит слово "Растения" а где спрятано "Цветы" я так и не смогла найти.
Или я может быть совсем не в том направлении думаю - подскажите пожалуйста.

Комментарии

Аватар пользователя talla13 talla13 6 октября 2015 в 18:03

Все оказалось гораздо проще, хотя я и не уверена, что это грамотное решение. Напишу тут, вдруг у других нубов тоже вопрос возникнет.
Создала еще одно поле в типе материала, назвала его Категории: типа "текст", в отображении полей Растения, Размещение и Категории скрыла метки (именно они выводили название категории) и оставила только Формат. Стилями поправила отображение и получила то что надо. Тем не менее хотелось бы, конечно, понять более глубоко механику произведенных действий, чтобы не просто из админки править, а понимать что за этим стоит, куда и какие вносятся изменения при этом.

Аватар пользователя t1mm1 t1mm1 7 октября 2015 в 13:18

копайте в сторону https://api.drupal.org/api/drupal/modules!node!node.module/function/temp...
вы можеет в своей теме объявить функцию НАЗВАНИЕВАШЕЙТЕМЫ_preprocess_node($vars) {} и в ней сделать просто переопределение вывода (по факту назначить каую-нибудь переменную для вывода, что бы после ее вставить в шаблон ноды.

НАЗВАНИЕВАШЕЙТЕМЫ_preprocess_node($vars) {
  if ($vars['node']->type == 'НАЗВАНИЕТИПАВАШЕЙНОДЫ') {
    // фактически тут уже получить значения ваших полей и сделать формирование вывода так, как вам нужно.
    // например, как это делать - читаем тут - http://drupalace.ru/lesson/korrektnaya-rabota-s-polyami-v-sedmom-drupale...
   
    // Переменная, которая идет в шаблон
    $vars['имямоейпеременной'] = 'вывод, который нужно передать в шаблон';
  }
}

И потом в шаблоне ноды выводите <?php print $имямоейпеременной; ?>.
Это если кратко.