Может кто знает решение! как во втором вьюсе раскрыть (Exposing) критерии сортировки и количество записей на странице (10, 20, 30,) в третем вьюсе все это есть я знаю но переход на него связан с кучей других нестыковок помню гдето встречал или модуль или патч специально для реализации данного функционала! Заранее спасибо если кто подскажет куда копать !
Комментарии
пропатченые файлы views2 вот здесь уже есть
http://www.drupal.ru/node/37100#comment-393749
может тебе подойдет решение с переписыванием табличного вида...
правда пока не знаю как быть с выводом по 10 20 30 на странице.
там все просто ... в запросе два параметра - идентификатор фильтра (надо предварительно добавить, и посмотреть в Экспорте его название) и направление сортировки DESC ASC, в хуке вьюса собираем панельку сортировки и приаттачиваем ее к вьюсу
как-то так:
<?php
$links = array(
$path = $_GET['q'];
function butik_view_views_pre_build(&$view) {
if (
strpos('butik_view',$view->name)===FALSE && $view->current_display == 'page_1') {$sorts = $view->display['page_1']->display_options['sorts'];
'totalcount' => array(
'title' => t('Popular'),
'sort' => 'ASC',
'order' => 'totalcount',
),
'title' => array(
'title' => t('Title sort'),
'sort' => 'ASC',
'order' => 'title',
),
'sell_price_dorogo' => array(
'title' => t('Dorogo'),
'sort' => 'DESC',
'order' => 'sell_price_1',
),
'sell_price_deshevo' => array(
'title' => t('Deshevo'),
'sort' => 'ASC',
'order' => 'sell_price',
),
'changed' => array(
'title' => t('Newed'),
'sort' => 'DESC',
'order' => 'changed',
),
);
$curr_order=$_GET['order'];
$curr_sort=$_GET['sort'];
$sort_block = '<div class="clr"></div><div id="otbor">';
$sort_block .= '<ul><li class="first">'.t('Sort by').'</li>';
foreach ($links as $key => $link) {
$args = array('query'=>array('order'=> $link['order'] , 'sort'=> $link['sort']));
$active = '';
if($link['sort'] == $curr_sort && $link['order'] == $curr_order){
$active = 'active';
}
$class = str_replace('_', '-', $key);
$sort_block.='<li class="' . "$class $active" . '">';
$sort_block.= '<a href="'. check_url(url($path, $args)) .'">'. $link['title'] .'</a>';
$sort_block.='</li>';
}
$sort_block.='</ul></div>';
$view->attachment_before = $sort_block;
}
}
?>
результат: http://www.butik-postel.ru/catalog/komplekty-belya/evro-standart
про кол-во материалов на странице http://www.drupal.ru/node/31064
Классный выход.
Сори, может за тупой вопрос...
уточните пожалуйста
Я так понял что
в template.php прописываем этот хук.
Далее поля в Вашем коде
например
'sell_price_dorogo' => array(
'title' => t('Dorogo'),
'sort' => 'DESC',
'order' => 'sell_price_1',
sell_price_dorogo и sell_price_1- что из них что?
sell_price_1 - это идентификатор фильтра?
sell_price_dorogo - это что?
ну butik_view - это название вьюхи, я так понял.
походу
sell_price_dorogo - это определение класса ссылки.
и получается в вьюхе должны быть
поля
или фильтр
или Sort criteria
с id sell_price_1
чето я запутался
orion76 Вы могли бы четко написать пример...
вот есть такая вьюха, в ней есть фильтр с ИД ( или не фильтр) вот сюда это пишем и ура все получилось
при чем вьюха - в виде таблицы или в виде сетки. ( так как в виде таблицы там уже есть похожая организация сортировки)...
заранее спасибо большое, это правда полезная инфа - потому как куча патчей и прочей дребедени для организации exposed sort filter
Вы все правильно поняли
на самом деле задача была сделать покрасившее сортировку для табличного вида
вот что получилось:http://www.butik-postel.ru/catalog/komplekty-belya/15-spalnoe
Да..
Добавил нужные критерии сортировки во вьюсе.. данный код просто формирует ссылки с нужными аргументами для выбора сортировки.
сделайте табличный вид с сортировкой, и посмотрите структуру ссылок сортировки в заголовках... и все станет понятнее...
Да... вроде такой нюансик был.. если поля нет в выводе(например статистика просмотров) то фильтр по нему (Популярность) не работает.. Добавляем поле, скрываем и все.
Спасибо, за внимание. Буду пробовать.
для третьей вьюхе есть подобное решение?