Вывод новостей за определенный месяц (TPL) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «== Задача == У нас есть страница ''<nowiki>http://.../test</nowiki>'', которая выводит новости при помощи мак…»)
 
 
(не показана 1 промежуточная версия 1 участника)
Строка 12: Строка 12:
  
 
Создаем новый макрос, которые определит параметры запроса.
 
Создаем новый макрос, которые определит параметры запроса.
Для этого в файле [[__custom.php]] [[Модуль news|модуля news]]) (~/classes/modules/news/__custom.php) необходимо создать новый метод:
+
Для этого в файле __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)%