Использовал в работе два модуля: content_taxonomy и модуль auto_nodetitle. В настройке типа материала настраиваю автозаголовок при помощи шаблонов(token). Модуль content_taxonomy предоставляет в распоряжение шаблон "Names of all taxonomy terms separated by commas" (Перечисленные через запятую термины словаря). И по идее термины должны бы идти от верхнего уровня к нижнему, а тут сделано все наоборот.
Кроме того, есть еще один шаблон, который называется "Name of top taxonomy term" (Имя термина верхнего уровня), но выводится термин самого нижнего уровня. Можно конечно завести свой модуль и сделать свой шаблон, но я решил не заморачиваться и предлгаю вариант поправки модуля content_taxonomy, а именно файла content_taxonomy.token.inc
function content_taxonomy_token_values($type, $object = NULL) { if ($type == 'field') { $items = $object; $terms = array(); $tids = array(); foreach ($items as $item) { $tid = $item['value']; if ($tid) { $term = taxonomy_get_term($tid); $tids[] = $tid; $terms[] = $term->name; $vid = $term->vid; } } if ($vid) { $vocabulary = taxonomy_vocabulary_load($vid); } // XA array_change_key_case($terms); rsort($terms); array_change_key_case($terms); // XA $tokens['terms-raw'] = implode(', ', $terms); $tokens['terms'] = check_plain($tokens['terms-raw']); $tokens['tids'] = implode(', ', $tids); $tokens['term-raw'] = $terms[0]; $tokens['term'] = check_plain($tokens['term-raw']); $tokens['tid'] = $tids[0]; $tokens['vocab'] = isset($vocabulary) ? $vocabulary->name : ''; $tokens['vid'] = $vid; return $tokens; } }
Если я Вам помог, то меня можно поблагодарить.
Отправить комментарий