Привет всем! Ситуация такая: используя модуль Page Manager (search-node), переопределяю страницу поиска, на которой использую как раз представление с контекстным фильтром Search: Search terms, в результате чего при выдаче результатов поиска вижу нужное мне представлением. Но есть проблема: если я использую поиск с возможностью указания типа материала для поиска, то в качестве аргумента представление получает не просто слово введенное в строку поиска, но еще и добавку в виде type:<типа материала>. В результате контекстный фильтр не срабатывает.
Вопрос как можно и использовать выбор типа материала и чтобы контекстный фильтр работал. Если нет соответсвующих настроек у модулей, может быть можно как-то программно решить проблему. В программной архитектуре Drupal, разбираюсь слабо, но в любом случае буду благодарен, если хотя бы пнете в нужном направлении.
Комментарии
Оказывается все не так уж и сложно. Это если знать тонкости Views конечно. Оказывается просто нужно задать Validation criteria в виде PHP Code (я уже тыкаясь во всюда случайно заметил, что оказывается здесь можно не только проверить аргумент, но и изменить его. В общем вставляем в поле PHP Code вот такой код:
$mystring = $argument;
$pos = strpos($mystring, 'type:');
if ($pos !== False) {
$handler->argument = substr_replace($mystring, '', $pos);
} else {
$handler->argument = $argument;
}
return TRUE;
и требуемое поведение достигнуто.
P.S. Может быть опытныю люди прокомментируют, есть ли недостатки у такого решения.
Так, так, мучаюсь с этим впросом уже пару дней. Сейчас попробую!) Спасибо.
Так, так, мучаюсь с этим впросом уже пару дней. Сейчас попробую!) Спасибо.