Автоматическое формирование анонса новости
Актуально для версии 20
Если анонс новости из себя представляет первые несколько предложений из полной новости, то для его формирования можно использовать кастомный метод, работающий по событиям systemCreateElement и systemModifyElement. Добавим вызов нашего будущего метода в файл ~/classes/components/news/custom_events.php
<?php
new umiEventListener('systemCreateElement', 'news', 'anonsGenerate');
new umiEventListener('systemModifyElement', 'news', 'anonsGenerate');
после этого напишем сам обработчик в файл ~/classes/components/news/customAdmin.php
public function anonsGenerate(iUmiEventPoint $oEventPoint){
if ($oEventPoint->getMode() === "after"){
$object = $oEventPoint->getRef("element");
$content = $object->getValue('content');
$limit = 199;
$result = substr($content, 0, $limit) . '...';
$object->setValue('anons', $result);
$object->commit();
return true;
}
}
в данной функции происходит получение содержимого поля content новости, и в поле anons записывается первые 199 символов содержимого поля content, это ограничение указывается в переменной $limit. Для правильной работы, необходимо не забыть добавить запись об этой функции в файл permissions.custom.php. Теперь, при добавлении/редактировании новости, анонс будет формироваться автоматически.
Данный функционал был проверен на работоспособность в версии системы 2.8.5.2.