Автоматическое формирование даты начала активности при создании новости.
Материал из Umicms
Версия от 14:52, 31 октября 2013; Williwaw (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9.1''' == Задача == Сделать так, чтобы после создания новости автомати…»)
Актуально для версии 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.