Пользовательская сортировка данных во VIEWS

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

Аватар пользователя sbatyrov sbatyrov 10 марта 2012 в 13:00

Добрый день,

Вывожу каталог с помощью views.
Возникла задача организовать пользовательскую сортировку выводимых данных.
Вопрос как это сделать ? В стандартных средствах VIEWS можно только жестко задать как сортировать.
В мне необходимо что бы пользователь при просмотре мог указать как он хочет сортировать данные.

Комментарии

Аватар пользователя Лексей Лексей 10 марта 2012 в 22:31

О чем вы говорите?...Стандартно можно сделать, чтобы сортировалось при нажатии на Заголовок столбца. Для этого добавьте в Критерии сортировки эти столбцы, затем в Настройках стиля таблицы поставьте галочки Сортируется...или вам что-то другое нужно...?

Аватар пользователя sbatyrov sbatyrov 11 марта 2012 в 18:42

Лексей wrote:
О чем вы говорите?...Стандартно можно сделать, чтобы сортировалось при нажатии на Заголовок столбца. Для этого добавьте в Критерии сортировки эти столбцы, затем в Настройках стиля таблицы поставьте галочки Сортируется...или вам что-то другое нужно...?

Насчет сортировки, в случае если стиль будет ТАБЛИЦА я в курсе. Меня немного не устраивает этот стиль.
У меня используется стиль Сетка. И мне нужно что бы пользователь в итоге мог наверху нажать ссылку сортировать по популярности и получить отсортированный каталог, ну и помимо популярности другие варианты сортировки тоже будут.

Решение предварительно нашел но ещё не реализовал.
Решение будет такое. В примере сортировка по цене. Остальные варианты сортировки ещё не добавил.
Правда пришлось свой модуль добавить, что бы эту хрень вставить. В template.php данный хук работать не будет.

<?php
function views_bp_sort_views_query_alter(&$view, &$query) {
    if (
$view->name == 'test'){
        if (isset(
$_GET["sort"]) && $_GET["sort"]=='pu'$query->orderby[0]='uc_products_sell_price ASC';
        if (isset(
$_GET["sort"]) && $_GET["sort"]=='pd'$query->orderby[0]='uc_products_sell_price DESC';
      } 
}
?>