Автоматическое заполнение поля title при создании раздела/объекта каталога — различия между версиями
Материал из Umicms
Kublan (обсуждение | вклад) (Новая страница: «'''Актуально 18 85081''' Для того чтобы при создании раздела/объекта каталога автоматически за…») |
Whoa (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Актуально 18 | + | '''Актуально для версии 18.''' |
− | Для того чтобы при создании | + | Для того, чтобы при создании раздела/объекта каталога автоматически заполнялось поле title, можно написать обработчик событий. |
Для этого создадим файл '''custom_events.php''' в папке /classes/components/catalog/ | Для этого создадим файл '''custom_events.php''' в папке /classes/components/catalog/ | ||
Строка 20: | Строка 20: | ||
public function onCreateCatalogObject(iUmiEventPoint $event) { | public function onCreateCatalogObject(iUmiEventPoint $event) { | ||
if ($event->getMode() != 'after') { | if ($event->getMode() != 'after') { | ||
− | + | return; | |
} | } | ||
Строка 26: | Строка 26: | ||
if (!$this->module->isCatalogObject($page)) { | if (!$this->module->isCatalogObject($page)) { | ||
− | + | return false; | |
} | } | ||
Строка 34: | Строка 34: | ||
$data = getRequest('data'); | $data = getRequest('data'); | ||
$name = $data['new']['h1']; | $name = $data['new']['h1']; | ||
+ | $title = $catalogObject->getValue('title'); | ||
− | if ($ | + | if (empty($title)) { |
− | + | $catalogObject->setValue('title', $name); | |
} | } | ||
} | } | ||
Строка 45: | Строка 46: | ||
− | [[category:Модуль Каталог]][[ | + | [[category:Модуль Каталог]][[category:Написание кастомных макросов]] |
Текущая версия на 10:51, 7 августа 2018
Актуально для версии 18.
Для того, чтобы при создании раздела/объекта каталога автоматически заполнялось поле title, можно написать обработчик событий.
Для этого создадим файл custom_events.php в папке /classes/components/catalog/
и добавим в него следующий код:
<?php
new umiEventListener("systemCreateElement", "catalog", "onCreateCatalogObject");
Теперь добавим код обработчика в файл /public_html/classes/components/catalog/customAdmin.php (после строки public $module;)
public function onCreateCatalogObject(iUmiEventPoint $event) {
if ($event->getMode() != 'after') {
return;
}
$page = $event->getRef('element');
if (!$this->module->isCatalogObject($page)) {
return false;
}
$umiHierarchy = umiHierarchy::getInstance();
$catalogObject = $umiHierarchy->getElement($page->getId(), true, true);
$data = getRequest('data');
$name = $data['new']['h1'];
$title = $catalogObject->getValue('title');
if (empty($title)) {
$catalogObject->setValue('title', $name);
}
}
Теперь при сохранении созданной страницы каталога, автоматически заполнится поле title.