Вывод новостей за определенный месяц (TPL) — различия между версиями
Материал из Umicms
Gordeev (обсуждение | вклад) (Новая страница: «== Задача == У нас есть страница ''<nowiki>http://.../test</nowiki>'', которая выводит новости при помощи мак…») |
Mad grant (обсуждение | вклад) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 12: | Строка 12: | ||
Создаем новый макрос, которые определит параметры запроса. | Создаем новый макрос, которые определит параметры запроса. | ||
− | Для этого в файле | + | Для этого в файле __custom.php модуля news (~/classes/modules/news/__custom.php) необходимо создать новый метод: |
<source lang="php"> | <source lang="php"> | ||
Строка 27: | Строка 27: | ||
После этого макрос можно прописать на необходимой странице: | После этого макрос можно прописать на необходимой странице: | ||
%news lastlistDate(2005, 02)% | %news lastlistDate(2005, 02)% | ||
+ | [[Категория:Написание кастомных макросов]][[Категория:Модуль Новости]] |
Текущая версия на 13:32, 5 июня 2013
Задача
У нас есть страница http://.../test, которая выводит новости при помощи макроса %news lastlist%. Мы хотим, чтобы она отобразила только новости за определенный месяц, например февраль 2005 года.
Решение
Задание параметров в адресной строке
Для этого мы должны просто перейти на эту страницу по ссылке с определенными параметрами, в нашем случае - http://.../test?year=2005&month=2
Создание нового макроса
Создаем новый макрос, которые определит параметры запроса. Для этого в файле __custom.php модуля news (~/classes/modules/news/__custom.php) необходимо создать новый метод:
public function lastlistDate( $year = NULL, $month = NULL, $day = NULL, $path = "", $template = "default",
$per_page = false, $ignore_paging = false, $sDaysInterval = '') {
if ($year) $_REQUEST['year'] = $year;
if ($month) $_REQUEST['month'] = $month;
if ($day) $_REQUEST['day'] = $day;
return $this->lastlist($path, $template, $per_page, $ignore_paging, $sDaysInterval);
}
После этого макрос можно прописать на необходимой странице:
%news lastlistDate(2005, 02)%