Настройка Views

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

Аватар пользователя VRaptor VRaptor 26 февраля 2007 в 16:29

У меня на сайте есть один view, выводящий список страниц. Нужно чтобы при открытии какой-либо категории выводилась таблица принадлежащих ей нод. Насколько я понял, делать это нужно через фильтры. Но в настройках вида можно указать только конкретную категорию. Экспортнул вид в php-код. Такой вопрос - как получить id открытой категории в данный момент категории? Одна нода может пренадлежать нескольким категориям из разных контейнеров.

Да, и второй вопрос. Можно ли как нибудь вывести таблицу, в которой все подходящие ноды сгруппированы по категориям из другого словаря? Например, как здесь - http://petrotour.ru/kt2.php. Туры разбиты по странам.

Комментарии

Аватар пользователя VRaptor VRaptor 5 марта 2007 в 13:37

Да не совсем честно говоря. Можно ли как нибудь сделать один вид на все категории, но чтобы в каждой отображались свои ноды? И чтобы при этом не надо было в каждую категорию вписывать PHP код?

Аватар пользователя xlcq xlcq 5 марта 2007 в 13:55

Да можно. Для этого нужно использовать не фильтры, а аргументы. Там есть отдельный блок для их настройки. Аргументом может являться как раз ID категории и тогда View будет отбирать данные из переданных ему аргументов.
Сам вчера с этим разбирался. И наткнулся на одну проблему - когда View выполнен в виде страницы аргументы работают как надо. но если View выполнен в виде блока, то начинабются проблемы см. мой пост в форум http://www.drupal.ru/node/4152

Аватар пользователя VRaptor VRaptor 7 марта 2007 в 14:32

Фиг знает, не получается с аргументами разобраться. Взял часть кода с http://drupal.ru/node/2943.

Собственно такой код обработки аргументов:

<?php
$view->query = $view->countquery = "";
foreach($view->filter as $num => $item )
if($item['id'] == 'term_node.tid')
$view->filter[$num]['value'][0]= $node -> nid;
?>

Но друпалу на самом деле на это пофик, как выводил все ноды так и выводит (т.е. не выбирает те, которые принадлежат открытой категории). Что я не верно сделал? о_О

Аватар пользователя xlcq xlcq 7 марта 2007 в 19:44

Нужно добавить аргумент Taxonomy: Term ID.
Кода никакого не надо, так как мапинг аргументов в случае если View работает как Page делаеться автоматически (позиционно).

Я так понимаю ты вызываешь свой View примерно так
http://host/myview/4

Где 4 это ID категории (оно меняеться в зависимости от того на какой пункт меню кликнешь)

После этого при вызове твой view будет отбирать данные уже в соответствии с переданной категорией.

Аватар пользователя VRaptor VRaptor 9 марта 2007 в 15:30

Нет. У меня есть меню со ссылками типа http://site/rossiya и тп ссылающиеся на категории. К каждой из этих категорий привязан вид. Мне нужно сделать чтобы для каждой категории выводился список принадлежащих ей нод. Но делать для каждой свой вид - гемор.

Аватар пользователя xlcq xlcq 9 марта 2007 в 16:40

Ну все равно я что-то не допонял.

Смотри у тебя есть View, к нему можно обратиться по сслыке http://site/myview

Ты добавляешь в этот view аргумент как я писал выше.
Потом делаешь URL aliases которые ссылаются на твой вид:
Russia /myview/1
Latvia /myview/2

и т.д.

После этого у тебя будет один view который отбирает данные из разных категорий.

Аватар пользователя VRaptor VRaptor 11 марта 2007 в 16:01

Дело в том, что меню у меня создается автоматически. Возможно сайт будут обновлять люди, которые в этом ничего не смыслят, поэтому очень желательно, чтобы все было максимально автоматизировано. Не думаю, что это хороший вариант заставлять их править альясы и искать ИДы категорий.

Аватар пользователя VRaptor VRaptor 23 марта 2007 в 15:08

С категориями разобрался вроде. Но так и не понял, можно ли группировать в таблице ноды по категориям?