Доброго времени суток!
Осваиваю друпал для новго проекта. Использую модуль views, для выведения блока меню из определенной таксономии (страны), появилось два вопроса, на которые пока не могу найи ответы:
- Создаю тему уже с предворительно сверстаного шаблона, и там для отображения в меню флага рядом с названием страны, использую css-класс, соответсвующий названию данной страны. Как в views можно добавить новый класс к пункту меню, соответсвующий машинному названию термина?
- Второй вопрос все с тем же views. У меня в таксономии у каждого термина(города), есть свои подкатегории. Как сделать так что бы в блоке показывались термены только первого уровня, без вложенных?
Заранее благодарен
Комментарии
1. Смотрите в сторону «Exclude from display» и «Rewrite the output of this field». Пример.
2. Смотрите в сторону Relationships → Parent Term. Скринкаст.
На счет первого вопроса, нашел в самом модуле view, добавление класса к пункту, и добавляю там по патерну "[name]". Но вот проблема, то что таким образом выводится названия на киррилице, а какие еще возможно использовать патерны? где можно посмотреть полный их список или как можно добавить свой?
Обе задачи решил отказавшись от модуля views, и реализовав все через сниппет. Если кому в будущем пригодится, вот получившийся код:
<?php
// ксс класс для флага страны (используется модуль transliteration)
$vid = 2; //Тут вписываем ID нашего словаря.
$terms = taxonomy_get_tree($vid); // Массив терминов
$i = 0;
print '<div id="country-navigation"><ul>'; //Оформляем выводимый код HTML-тегами.
foreach ($terms as $term) {
// четный нечетный элемент
$numz = ($i%2 == 0)? 'views-row-odd':'views-row-even';
$flag_class = strtolower(transliteration_get($term->name));
if (
$term->depth == 0) {print "<li class=\"flag-". $flag_class." ".$numz."\">".l($term->name,'taxonomy/term/'.$term->tid, array('title' => $term->name))."</li>";
$i++;
}
}
'</ul></div>';print
?>
Если в будущем потребуется добавить еще страну/страны, то администратору сайта придется проделать следующие телодвижения:
1. Создать термин таксономии
2. Залить в папку с изображениями иконку флага
3. Понять, как друпал транслитерирует заголовок термина
4. Залезть в таблицу стилей и прописать новый стиль для li.flag-countryname
п.2 и 4 могут оказаться сложными (или невозможными из-за отсутствия ftp-доступа) для администратора (не разработчика) сайта.
имхо, проще создать для словаря с терминами-странами поле field_img_flag, и вставлять img-иконки в li при генерации меню
тогда, при добавлении новой страны потребуется:
1. Создать новый термин
2. При создании закачать иконку флага в админке
и никакого прямого доступа к фс хостинга
Хорошая мысль, а можно вопрос, как получить доступ к дополнительным полям данного термина? что бы получить путь до изображения
<pre><?php print check_plain(print_r($term,true)); ?></pre>