Автоматическое формирование даты начала активности при создании и сохранении новости.

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 2.9.1

Задача

Сделать так, чтобы после создания новости автоматически устанавливалась дата начала активности в соответствии с текущей датой.


Решение

Разместить кастомный макрос, перехватывающий событие создания страницы, в директорию ~/classes/modules/news/

__custom_adm.php:

<?php
	abstract class __custom_adm_news {

		public function onCreateNews(iUmiEventPoint $event)

		{if( $event->getMode()==="after")

		{$news=$event->getRef("element");

		$time=$news->getValue('publish_time');

		$news->setValue('begin_time',$time);

		 $news->commit();

                return true;}
		}
	};
?>

custom_events.php:

<?php
 new umiEventListener('systemCreateElement', 'news', 'onCreateNews');
?>

permissions.custom.php:

<?php
$permissions = Array(
		'lists' => Array('onCreateNews')
	);
?>

Было проверено на localpack версии 2.9.1.