Выбор количества отображаемых товаров в каталоге
Во view отвечающем за вывод категории/бренда или поиск товара view/ProductsView.php есть следующие строки
// Показать все страницы сразу if($this->request->get('page') == 'all') $items_per_page = $products_count; $pages_num = ceil($products_count/$items_per_page); $this->design->assign('total_pages_num', $pages_num); $filter['page'] = $current_page; $filter['limit'] = $items_per_page;
Т.е. продолжая эту тему мы может сами назначать количество выводимых товаров. Для этого вы добавим вместо вышеприведенного кода другой код с обработчиком количества
// Показать все страницы сразу if($this->request->get('page') == 'all') $items_per_page = $products_count; elseif($this->request->get('limit','integer') > 0) $items_per_page = $this->request->get('limit','integer'); $filter['limit'] = $items_per_page; $filter['page'] = $current_page; $pages_num = ceil($products_count/$items_per_page); $this->design->assign('total_pages_num', $pages_num);
Теперь добавим вызов в наш шаблон design/[ваш_шаблон]/products.tpl в нужном Вам месте добавить переключатель (можете вывести его в том месте где сортировка например)
<div class="limit"> Выводить по <a {if !$smarty.get.limit || $smarty.get.limit == 20} class="selected"{/if} href="{url limit=20 page=null}">20</a> <a {if $smarty.get.limit == 50} class="selected"{/if} href="{url limit=50 page=null}">50</a> <a {if $smarty.get.limit == 100} class="selected"{/if} href="{url limit=100 page=null}">100</a> <a {if $smarty.get.page == 'all'} class="selected"{/if} href="{url limit=null page=all}">все</a> </div>
Немного поясню: раз мы переключаем количество на страницу - значит нам надо возвращаться на первую страницу, чтобы не получать неверный пустых страниц.
Ну как-то так... Пробуйте :) и все получится.
Update 23.11.2013 Исправил обнаруженные недочеты.
Комментарии
Ваш отзыв будет первым