Вопрос знатокам views и аргументов

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

Аватар пользователя digital_sword digital_sword 18 февраля 2009 в 19:36

Допустим, есть материал "фигуры".
У них 3 CCK параметра:

  • треугольники и круги
  • черный, белый, зеленый, красный
  • цены: 1руб, 2руб, 3руб, и т.д. Цены разные

С выводом проблем нет: указываю фильтр: материал: фигуры. Поля: тип, цвет, цена. Все выводится.

А как это аргументами это сделать? (обязательно ими)

Комментарии

Аватар пользователя digital_sword digital_sword 19 февраля 2009 в 9:28

Umls.ru. Форма поиска на первой странице. Надо именно так, а не exposed фильтром. Данные формы формируют адресную строку, и выдается вид. Это же только аргументами...
Финал: http://umls.ru/1.jpg
http://umls.ru/listing.jpg .

ФОрум читал. Но так и не понял что за аргументы и что с ними делать.

Аватар пользователя batbug batbug 19 февраля 2009 в 10:20

"digital_sword" wrote:
Финал: http://umls.ru/1.jpg[/quote]
Такой вид достигается именно через exposed filters, а не через аргументы. Аргументы для другого нужны, например с ними можно сделать вот так: http://liveangarsk.ru/doska

Аватар пользователя digital_sword digital_sword 19 февраля 2009 в 10:38

нет, exposed фильтром нельзя сделать раскрывающийся список по числовым полям, и чекбоксы нельзя.
Аргументы нужны, чтобы получить строку 8/1000/235 ... . Как это с ними делается.

Аватар пользователя _FeliX_ _FeliX_ 19 февраля 2009 в 10:49

ну как вариант можно сделать так.. в настройках views есть Arguments там Argument Handling Code. Вот там можно легко написать пхп скрип который берет параметры с адресной строки добавляет на основе их фильтры и применяет их.
Вот например

$type = arg(1);
if(isset($type)){
$filter[type][vid] = 3;
$filter[type][tablename] = '';
$filter[type][field] = 'term_node_1.tid';
$filter[type][value][0] = $type;
$filter[type][operator] = 'OR';
$filter[type][options] = '';
$filter[type][position] = 2;
$filter[type][id] = 'term_node_1.tid';
$view->filter[2]=$filter[type];
$view->is_cacheable = 0;
}

Эт если все "ручками" Smile

Аватар пользователя digital_sword digital_sword 19 февраля 2009 в 10:59

_FeliX_ , спасибо, конечно, только я ничего не понял. А мне для своей формы переделывать...
Параметры надо брать не из адресной строки, а из формы.

Вот тут сначала вопрос задал:
http://drupal.ru/node/24172
И по совету решил делать форму API и аргументы views. Форму сделал. По аргументам подробнее не напишете?

Аватар пользователя _FeliX_ _FeliX_ 19 февраля 2009 в 11:30

"digital_sword" wrote:
Параметры надо брать не из адресной строки, а из формы.

Так если надо брать из формы Smile то параметры брать не из адресной строки а из масива $_POST. Самый просто вариант добавить фильтры какие все какие вам нужны, далее Argument Handling Code написать print_r(#view); на странице увидите структуру ваших фильтров. Затем в Argument Handling Code создать теже самые фильтры а значения их брать из массива $_POST, в котором будут параметры после submit формы. Smile

Аватар пользователя batbug batbug 19 февраля 2009 в 11:53

"digital_sword" wrote:
нет, exposed фильтром нельзя сделать раскрывающийся список по числовым полям, и чекбоксы нельзя.

1. можно.
2. а где у вас там раскрывающийся список по числовым полям???

Аватар пользователя digital_sword digital_sword 19 февраля 2009 в 13:55

_FeliX_, Фильтры стоят. А что за Argument Handling Code? При щелчке на + напротив аргументов у меня открывается поле выбора. Там то же, что и для фильтров. Добавил один аргумент: цена. А дальше что?

batbug, чекбоксы по числовым полям. Я допустил описку. А что данную форму можно сделать exposed фильтром? (ну или примерно такую же, чтобы или селек листы или чекбоксы были). Я вижу нашел только как поставить текстовые поля...

Аватар пользователя batbug batbug 19 февраля 2009 в 14:03

"digital_sword" wrote:
batbug, чекбоксы по числовым полям.

Вы имеет в виду поле КОМНАТЫ?

"digital_sword" wrote:
А что данную форму можно сделать exposed фильтром? (ну или примерно такую же, чтобы или селек листы или чекбоксы были).

Да, можно.