Перестал работать плагин на событие OnDocFormSave

<?php
$priceusd = $modx->getObject('modTemplateVar', array('name'=>'priceUSD'));
$priceusd = $priceusd->getValue($id);
if ($priceusd > 0) {
    $usd = $modx->getOption('usd_course');
    $val = $priceusd * $usd;
    $val = round($val, -2);
    $tv = $modx->getObject('modTemplateVar', array('name'=>'price'));
    $tv->setValue($resource->get('id'), $val);
    $tv->save();
}
Нажимаю в документе [Сохранить] и жду… очень долго ждал, не дождался. error.log пуст на этот день.

Плагин работал… год назад наверное. Что изменилось в MODX 2.5.7 или PHP 7.0.1, что этот плагин перестал работать?
Павлик Мышкин
07 июля 2017, 16:01
modx.pro
1
1 145
0

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

Володя
07 июля 2017, 19:10
+1
как минимум нет банальной проверки а получен ли объект.
if (!$priceusd) {
	return;
}
    Павлик Мышкин
    07 июля 2017, 20:02
    0
    Спасибо за дельный совет. Действительно, если цены в долларах нет — то должен же сохранить документ без цен.

    Проверил — сохраняет без цен. Но с ценой висит…
    Павлик Мышкин
    07 июля 2017, 19:10
    0
    Забыл написать что плагин смотрит TV с ценой в долларах, умножает на значение системной опции, округляет и записывает в TV с ценой в рублях. Вернее он делал это.
      Павлик Мышкин
      07 июля 2017, 23:38
      0
      Оказалось, что TV был переименован. Всё работает.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4