Динамическое изменение количества объектов на странице — различия между версиями
Материал из Umicms
VITL' (обсуждение | вклад) (Новая страница: «В tpl-шаблонах, стандартными средствами не реализовать динамическое изменение количества …») |
Mad grant (обсуждение | вклад) |
||
Строка 26: | Строка 26: | ||
В итоге, при выборе параметра из выпадающего списка, он отобразится в адресной строке. | В итоге, при выборе параметра из выпадающего списка, он отобразится в адресной строке. | ||
Кастомным макросом мы получим значение этого параметра и подставим в макрос getObjectsList. | Кастомным макросом мы получим значение этого параметра и подставим в макрос getObjectsList. | ||
+ | [[Категория:Написание кастомных макросов]] |
Версия 12:54, 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.