Всем привет.
У меня вопрос. Как можно сделать переключение вида список/сетка?
Есть каталог товаров (drupal 6), выводится через views (taxonomy/term/%), по умолчанию выводится сеткой. Как можно добавить вывод списком, чтобы пользователь сам мог выбрать, как ему будет удобнее.
Желательно без использования uc_catolog и uc_advenced_catalog
Спасибо.
Views Display Tabs частично решает проблему. Но, к сожалению, он не запоминает вид, т. е., если переходишь в другой раздел каталога, вид сбивается на первоначальный.
Комментарии
Появилась идея.
Создается два дисплея (страницы) для taxonomy/term/%. Одна - с отображением в виде списка, вторая - в виде сетки.
Создается шаблон page-taxonomy.tpl.php с примерно таким содержимым:
<?php
if($_SESSION['viewmode']=='grind'){
$viewDisplay = 'page_grind';
}else{
$viewDisplay = 'page_list';
}
print views_embed_view('taxonomy_term', $viewDisplay); //подсовываем нужный дисплей
?>
Далее создаем блок с формой:
<?php
<form id="form_1" action="<?php $_SERVER['REDIRECT_URL'];?>" accept-charset="UTF-8" method="GET" />
<input type="hidden" name="viewmode" value="grind" />
<input type="submit" value="grind" />
</form>
<form id="form_2" action="<?php $_SERVER['REDIRECT_URL'];?>" accept-charset="UTF-8" method="GET" />
<input type="hidden" name="viewmode" value="list" />
<input type="submit" value="list" />
</form>
if(isset(
$_GET['viewmode'])){ //проверяем есть ли в какие-то значения в адресной строке$_SESSION['viewmode'] = $_GET['viewmode']; // переписываем значение с GET в SESSION для хранения на протяжении всей сессии
}?
?>
Уверен, что можно реализовать как-то проще и изящнее.
На данный момент это все, что мне пришло в голову, но зато это реально работает.
А еще есть такая функция у views как меню, можно эти 2 дисплея просто добавить в меню типа вкладка и наслаждаться без лишнего кода )
А можно подробнее, где это находится?
Это не решает проблему так как после перезагрузки страницы вид сбивается.
Как это сбивается? Вы делаете ссылку в меню, следовательно при выборе типа отображения полностью меняется адрес страницы.
Если в представлениях выбрать menu->Menu tab. то появляются два таба на два представления. При переключении табов к адресу просто добавляется ?vdt=taxonomy_term%7Cpage
При переходе в другой раздел каталога вид сбивается.
Если без шаманств (page-taxonomy.tpl.php) views не даст сделать ссылку в меню на адрес taxonomy/term/% ))))
Хмм странно, версия views?
2.6
Мне не совсем понятно по какому принципу это может работать.
У каждого раздела каталога есть свои адреса (site,ru/taxonomy/term/1, site.ru/taxonomy/term/2 и т. д.).
Вьюшка "taxonomy_term" подхватывает все адреса терминов, так как ее у нее забит путь taxonomy/term/%.
Добавляем дисплей для "taxonomy_term" с таким же адресом "taxonomy/term/%" (при другом адресе подхватывать термины он не будет) но с форматированием сеткой. Получится, что две вкладки (два представления) ссылаются на одинаковый адрес "taxonomy/term/%". Как в таком случае будет что-то переключаться?
ладно давайте на пальцах:
создаете страницу во вьюс с адресом /catalog
настраиваете меню "Вкладка по умолчанию"
добавляете страницу с другим отображением элементов с адресом: /catalog/style
настраиваете меню "вкладка"
И хоть ты что делай со страницей перезагружай, добавляй аргументов и т.д. вид не изменится, т.к. адрес статичный.
Есть еще много вариантов как это сделать, но другие более сложные и не очень хорошо дружат с кэшэм друпала )
Все, понятно.
Дело в том, что мне нужен полноценный каталог (с иерархией).
Т. е. есть тип материала "товар" и есть словарь "каталог". Все ноды(товары) типа материала "товар" привязаны к словарю "каталог" для построения иерархии товаров и навигации по каталогу. Получается что за каждым термином закреплен один или несколько товаров и тизеры товаров доступны по адресу термина (например: taxonomy/term/1). В общем самый стандартный каталог. И для правильной работы данного каталога нужно представление taxonomy_term, т. к. с помощью taxonomy/term/% перехватываются адреса терминов.
В данном случае если адрес будет /catalog или /catalog/style это ничего не даст это просто будут одиночные страницы в которых будут отображаться все товары без навигации по ним (если не считать пейджер). Тут теряется сама концепция каталога. Если товаров будет несколько тысяч...
Конечно можно попробовать с помощью expoused filters + шаманства с javascript построить что-то наподобие навигации но тогда можно забыть про хлебные крошки и красивые адреса url. Но это уже не то...
Понял, тогда думаю переменная в куки и хук на views.
Но это уже из разряда шаманства и как я понял некоторую форму этого вы уже реализовали. Замените только сессии и аргументы на куки и все должно быть прекрасно ).