Динамическое изменение количества объектов на странице

Материал из Umicms
Версия от 12:55, 5 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

В tpl-шаблонах, стандартными средствами не реализовать динамическое изменение количества отображаемых объектов каталога на странице. Но решить данную задачу можно с помощью небольшого кастомного макроса. В файле classes/modules/custom.php пропишем следующий метод:

public function getcount(){
     $count = (int)htmlspecialchars(getRequest('count');
     if(!$count) $count =15;
     return $count;
}

А в шаблоне, который выводит форму фильтрации, допустим в файле: tpls/catalog/search.tpl в блоке search_block, добавим в форму еще один фильтр:

На одной странице:
<select name="count">
<option value="15">15</option>
<option value="30">30</option>
</select>

В шаблоне tpls/catalog/default.tpl в блоке category, макрос getObjectsList пропишем следующим образом:

%catalog getObjectsList('default', '%category_id%', %custom getcount()%)%

В итоге, при выборе параметра из выпадающего списка, он отобразится в адресной строке. Кастомным макросом мы получим значение этого параметра и подставим в макрос getObjectsList.