Плагины товаров minishop2 - предустановленные свойства

Здравствуйте!
Есть необходимость в заполнении свойств товара по-умолчанию при создании товара.
Реализую с помощью следующего плагина с привязкой к системному событию 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 пусто.
newbmod
25 ноября 2020, 18:48
modx.pro
497
0

Комментарии: 3

Артур Шевченко
27 ноября 2020, 22:29
0
Я бы повесил на событие onDocFormSave и проверял бы class_key если товар, то заполняем свойства, только возможно стоит получить именно объект msProduct, а не modResource. У последнего нет поля weight, поэтому оно и не заполняется.
    newbmod
    28 ноября 2020, 14:30
    0
    Спасибо за ответ!
    Но если вешать на событие onDocFormSave, то данное поле будет переписываться всегда при сохранении товара на дефолтное значение (5), даже если менеджер его изменит на отличное от дефолтного.
      Артур Шевченко
      28 ноября 2020, 14:36
      0
      Ну если не проверять, то да, но можно же сделать проверку равно default value или нет. И по вашей же логике на событие docformrender тоже самое должно происходить ведь это событие срабатывает при отрисовки формы в админке. И опять-таки если нужно чтобы всегда было какое-то значение, тогда ondocformsave с проверкой, а если только при создании нужно задавать свойства, тогда на событие «создание ресурса», не помню как называется, но в документации легко найдете.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3