Динамический параметр фильтра в Views

Аватар пользователя Pan4eZzz Pan4eZzz 2 июня 2010 в 23:54

Возможна ли смена параметров в Views динамически исходя из передаваемых параметров(как передавать?). То есть если наш фильтр раскрыт то его значения может менять пользователь, а как выполнять автоопределение фильтра на основе куска url (например), либо поля в CCK, ну или просто типа материала.

ПРИМЕР:
У нас есть 10 типов материалов, и надо что-бы при просмотре ноды одного типа, отображался блок с ссылками на несколько материалов этого же типа. Придется делать 10 блоков в Views с разными фильтрами.

Немножко недопонимаю дополнительные опции в Views при открытии фильтра, возможно там все это есть?

Комментарии

Аватар пользователя Сьюз Сьюз 3 июня 2010 в 5:58

Вам надо сделать Похожие статьи? Это делается через таксономию и Associated Nodes
Или я чего-то не поняла?..

Аватар пользователя Pan4eZzz Pan4eZzz 3 июня 2010 в 11:54

Сьюз wrote:
Вам надо сделать Похожие статьи? Это делается через таксономию и Associated Nodes
Или я чего-то не поняла?..

Да, похожие статьи, но!, в Associated Nodes выводится тайтл ноды, а мне нужно доставать поле сск.

Аватар пользователя Oleksa@drupal.org Oleksa@drupal.org 3 июня 2010 в 8:34

"Pan4eZzz" wrote:
ПРИМЕР:
У нас есть 10 типов материалов, и надо что-бы при просмотре ноды одного типа, отображался блок с ссылками на несколько материалов этого же типа. Придется делать 10 блоков в Views с разными фильтрами.

Нет, нужен один блок. А узнавать о том к какому типу материала относится просматриваемая нода будет через node_load и соответственно фильтровать динамически содержимое блока. Т.е. нужен кастомный код, сама вьюшка это сделать не может. "копайте" в сторону node_load

Та же схема и с полем сск.

Аватар пользователя penexe penexe 3 июня 2010 в 12:05

АРГУМЕНТЫ
Node: Type -> Provide default argument -> PHP Code

if (($node = menu_get_object('node')) && !arg(2)) {
  return $node->type;
}
Аватар пользователя Oleksa@drupal.org Oleksa@drupal.org 3 июня 2010 в 13:27

"penexe" wrote:

интересно.

обычно я делаю так

<?php
if ( arg(0) == 'node' && is_numeric(arg(1)) ) {
$node node_load(arg(1));
return 
$node->type;
}

?>
Аватар пользователя Pan4eZzz Pan4eZzz 4 июня 2010 в 1:19

Спасибо, а я и не пытался въезжать в аргументы... А все там оказалось проще тем кажется.

Аватар пользователя Pan4eZzz Pan4eZzz 4 июня 2010 в 15:05

А как поступать в таком случае?
Есть нода site.ru/cat с типом материала title. На ней (в блоке views) нужно отобразить все материалы с типом cat.

То есть что сами эти страницы имеют разный тип, но у них одинаковый кусок url, это можно использовать?