Есть словарь стран типа:
Египет
- Каир
- Александрия
Я хочу при заходе в страну вывести блок с ссылками на города. Во вьюсе делаю аргумент Taxonomy: Term ID (with depth) со значением Provide default argument - Taxonomy Term ID from URL и DEPTH - 1, но на странице Египет он мне выводит:
Каир
Александрия
Египет
Египет
и то при условии, что там есть ноды с этой страной. Если нод нет, то отображается:
Египет
Египет
Египет
Вопрос - почему и как это победить?
Комментарии
Запасной вариант.
Модуль taxonomy treemenu (D6) может создать блок для конкретного родительского термина. Ну а дальше сниппетом выводить блок когда пользователь открывает страницу термина.
Точнее не скажу.
Аргументы оставить в покое, они делают свое дело.
Вариант: Во вьюхе добавить в поле "заголовок" поле типа
Global: Text area
и толкать туда php код по перехвату и выводу всего того, что нужно.Вы столкнулись с любимой (и почему-то трудно решаемой) задачей Друпала - "каталог". Когда нужно сделать вывод родителей, а при переходе на конкретного родителя сделать отображение всех его дочерних элементов. Одно из решений ищите здесь: http://druit.ru/blogs/views/18 - решение не мое, но мне оно нравится. К слову сказать, после значительных доработок на одном из проектов в нужную мне сторону, от указанного кода у меня осталась не более 30%. Оптимизация и расширение функционала, понимаете ли...
В общем пилите, Шура, пилите (С).
Покопался. Сделал такой сниппет:
<?php
$tid = arg(2);
$vid = 1;
if (
is_numeric($tid)) {$terms = taxonomy_get_children($tid, $vid);
if (!empty($terms)) {
foreach ($terms as $tid => $term) {
$item = l($term->name, taxonomy_term_path($term));
$output .= $item.'<br />';
}
return $output;
}
}
?>
Даже вроде запросы к БД не понадобилось делать. Кстати такой вопрос - если нет запроса к БД и используются только встроенные функции - можно считать такой сниппет безопасным?
А почему он может считаться не безопасным? Хоть теоретически?
Ну где то читал, что все сниппеты небезопасны особенно с прямыми запросами к бд. А встроенные функции - там все оптимизировано уже.
А встроенные функция работают без обращений к БД?
Встроенные функции заточены как с точки зрения безопасности, так и с точки зрения оптимизации запроса. А кривые мои руки могут таких запросов наделать, что потом запаришься искать, почему сайт падает
Делайте бекапы и не парьтесь. Пользователь volocuga сказал, что Drupal трудно убить если не лезть в базу данных. Запрос, это не лезете, это извлекаете.