Динамическое изменение количества объектов на странице — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
Строка 26: Строка 26:
 
В итоге, при выборе параметра из выпадающего списка, он отобразится в адресной строке.
 
В итоге, при выборе параметра из выпадающего списка, он отобразится в адресной строке.
 
Кастомным макросом мы получим значение этого параметра и подставим в макрос getObjectsList.
 
Кастомным макросом мы получим значение этого параметра и подставим в макрос getObjectsList.
[[Категория:Написание кастомных макросов]]
+
[[Категория:Модуль Каталог]][[Категория:Написание кастомных макросов]]

Текущая версия на 12:55, 5 июня 2013

В 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.