Плагины товаров minishop2 - предустановленные свойства
Здравствуйте!
Есть необходимость в заполнении свойств товара по-умолчанию при создании товара.
Реализую с помощью следующего плагина с привязкой к системному событию OnDocFormRender
Есть необходимость в заполнении свойств товара по-умолчанию при создании товара.
Реализую с помощью следующего плагина с привязкой к системному событию OnDocFormRender
<?php
$eventName = $modx->event->name;
switch($eventName) {
case 'OnDocFormRender':
if ($mode == modSystemEvent::MODE_NEW) {
//устанавливаем значения по умолчанию
if ($resource->get('class_key') == 'msProduct') {
$resource->set('description', 'Description');
$resource->set('content', 'Content');
$resource->set('weight', 5);
$weight = $resource->get('weight');
$resource->set('introtext', $weight);
}
}
break;
}
Description, Content заполняются для товара спокойно, а вот Свойства товара НЕТ. Introtext выводит свойство weight, т.е. 5, а в самом поле свойства товара weight пусто. Комментарии: 3
Я бы повесил на событие onDocFormSave и проверял бы class_key если товар, то заполняем свойства, только возможно стоит получить именно объект msProduct, а не modResource. У последнего нет поля weight, поэтому оно и не заполняется.
Спасибо за ответ!
Но если вешать на событие onDocFormSave, то данное поле будет переписываться всегда при сохранении товара на дефолтное значение (5), даже если менеджер его изменит на отличное от дефолтного.
Но если вешать на событие onDocFormSave, то данное поле будет переписываться всегда при сохранении товара на дефолтное значение (5), даже если менеджер его изменит на отличное от дефолтного.
Ну если не проверять, то да, но можно же сделать проверку равно default value или нет. И по вашей же логике на событие docformrender тоже самое должно происходить ведь это событие срабатывает при отрисовки формы в админке. И опять-таки если нужно чтобы всегда было какое-то значение, тогда ondocformsave с проверкой, а если только при создании нужно задавать свойства, тогда на событие «создание ресурса», не помню как называется, но в документации легко найдете.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.