Вопросы по modExtra
Всем привет. Кто-нибудь может подсказать 2 момента при разработке своего компонента на заготовке modExtra?
1. Как создать свои события при сборке пакета?
2. Как добавить дополнительный тип ресурса через ExtJS?
1. Как создать свои события при сборке пакета?
2. Как добавить дополнительный тип ресурса через ExtJS?
Комментарии: 4
События
а вот второй вопрос не понятен
а вот второй вопрос не понятен
Тип ресурса у документа как в miniShop2 Категория товара и товар.
в компоненте siteDev есть:
И обрати внимание на файл build.php в нем есть метод:
Extras/modExtra/_build/elements/_events.php
через который можно создать свое событие. И обрати внимание на файл build.php в нем есть метод:
/**
* Add events
*/
protected function events()
{
/** @noinspection PhpIncludeInspection */
$events = include($this->config['elements'] . 'events.php');
if (!is_array($events)) {
$this->modx->log(modX::LOG_LEVEL_ERROR, 'Could not package in System events');
return;
}
$attributes = [
xPDOTransport::UNIQUE_KEY => 'name',
xPDOTransport::PRESERVE_KEYS => true,
xPDOTransport::UPDATE_OBJECT => !empty($this->config['update']['events']),
xPDOTransport::RELATED_OBJECTS => false,
];
foreach ($events as $name => $data) {
/** @var modEvent $event */
$event = $this->modx->newObject('modEvent');
$event->fromArray([
'name' => $data,
'service' => 6,
'groupname' => $this->config['name_lower'],
], '', true);
$vehicle = $this->builder->createVehicle($event, $attributes);
$this->builder->putVehicle($vehicle);
}
$this->modx->log(modX::LOG_LEVEL_INFO, 'Packaged in ' . count($events) . ' System events');
}
Который как раз подхватывает: Extras/modExtra/_build/elements/events.php
Спасибо, разобрался. Добавил таким образом дефольтные данные в свои таблицы)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.