Наследование свойств от родительского элемента — различия между версиями
Davidov (обсуждение | вклад) |
Mad grant (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | '''Актуально для версии 2.9''' | ||
+ | |||
При наполнении сайта, может возникнуть необходимость в автоматическом наследовании свойств родительского элемента. Для реализации наследования свойств родительского элемента напишем кастомный обработчик события, который будет наследовать свойство "Исключить из поиска". | При наполнении сайта, может возникнуть необходимость в автоматическом наследовании свойств родительского элемента. Для реализации наследования свойств родительского элемента напишем кастомный обработчик события, который будет наследовать свойство "Исключить из поиска". | ||
Для начала, напишем вызов обработчика по событию создания элемента в файле ~/classes/modules/content/custom_events.php | Для начала, напишем вызов обработчика по событию создания элемента в файле ~/classes/modules/content/custom_events.php |
Версия 09:29, 5 июня 2013
Актуально для версии 2.9
При наполнении сайта, может возникнуть необходимость в автоматическом наследовании свойств родительского элемента. Для реализации наследования свойств родительского элемента напишем кастомный обработчик события, который будет наследовать свойство "Исключить из поиска". Для начала, напишем вызов обработчика по событию создания элемента в файле ~/classes/modules/content/custom_events.php
<?php
new umiEventListener('systemCreateElement', 'content', 'inheritance_properties');
?>
А вот и сам код обработчика, который нужно поместить в файл ~/classes/modules/content/__custom_adm.php после строки //TODO: Write here your own macroses
<?php
public function inheritance_properties(iUmiEventPoint $oEventPoint) {
if ($oEventPoint->getMode() === "after"){
$object = $oEventPoint->getRef("element");
$id=$object->id;
$parentId=$object->getParentId();
$hierarchy = umiHierarchy::getInstance();
$parent=$hierarchy->getElement($parentId);
$object=$hierarchy->getElement($id);
$value=$parent->getValue('is_unindexed');
$object->setValue('is_unindexed',$value);
$object->commit();
return true;
}
}
?>
здесь is_unindexed - идентификатор поля "Исключить из поиска". После занесения записи об этом методе в файл ~/classes/modules/content/permissions.custom.php он будт работать для всех пользователей, которые имеют доступ к панели администрирования.
Данный функционал был проверен на работоспособность в версии системы 2.8.5.2.
данная статья проверена на версии 2.8.5.3