[РЕШЕНО] Два вопроса по модулю views(таксономия и темизация)

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

Аватар пользователя Egres Egres 23 сентября 2011 в 13:39

Доброго времени суток!
Осваиваю друпал для новго проекта. Использую модуль views, для выведения блока меню из определенной таксономии (страны), появилось два вопроса, на которые пока не могу найи ответы:

  1. Создаю тему уже с предворительно сверстаного шаблона, и там для отображения в меню флага рядом с названием страны, использую css-класс, соответсвующий названию данной страны. Как в views можно добавить новый класс к пункту меню, соответсвующий машинному названию термина?
  2. Второй вопрос все с тем же views. У меня в таксономии у каждого термина(города), есть свои подкатегории. Как сделать так что бы в блоке показывались термены только первого уровня, без вложенных?

Заранее благодарен

Комментарии

Аватар пользователя Egres Egres 27 сентября 2011 в 22:01

На счет первого вопроса, нашел в самом модуле view, добавление класса к пункту, и добавляю там по патерну "[name]". Но вот проблема, то что таким образом выводится названия на киррилице, а какие еще возможно использовать патерны? где можно посмотреть полный их список или как можно добавить свой?

Аватар пользователя Egres Egres 28 сентября 2011 в 12:25

Обе задачи решил отказавшись от модуля views, и реализовав все через сниппет. Если кому в будущем пригодится, вот получившийся код:

<?php
$vid 
2//Тут вписываем ID нашего словаря.
$terms taxonomy_get_tree($vid); // Массив терминов
$i 0;
print 
'<div id="country-navigation"><ul>'//Оформляем выводимый код HTML-тегами.
foreach ($terms as $term) {  
    
// четный нечетный элемент  
    
$numz = ($i%== 0)? 'views-row-odd':'views-row-even';

    

// ксс класс для флага страны (используется модуль transliteration)
    
$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++;
    }

}
print 

'</ul></div>';
?>
Аватар пользователя Andruxa Andruxa 28 сентября 2011 в 12:54

Если в будущем потребуется добавить еще страну/страны, то администратору сайта придется проделать следующие телодвижения:
1. Создать термин таксономии
2. Залить в папку с изображениями иконку флага
3. Понять, как друпал транслитерирует заголовок термина
4. Залезть в таблицу стилей и прописать новый стиль для li.flag-countryname

п.2 и 4 могут оказаться сложными (или невозможными из-за отсутствия ftp-доступа) для администратора (не разработчика) сайта.

имхо, проще создать для словаря с терминами-странами поле field_img_flag, и вставлять img-иконки в li при генерации меню
тогда, при добавлении новой страны потребуется:
1. Создать новый термин
2. При создании закачать иконку флага в админке

и никакого прямого доступа к фс хостинга

Аватар пользователя Egres Egres 29 сентября 2011 в 8:44

Хорошая мысль, а можно вопрос, как получить доступ к дополнительным полям данного термина? что бы получить путь до изображения