Дополнение mixedImage из modStore ломает работу сайта — что делать?
Приветствую.
В modStore есть расширение под названием mixedImage и оно ломает нормальную работу сайта. Я долго возился с поиском этой ошибки, но нашел ее — ура, но как ее корректно исправить — я не знаю. Поэтому прошу вашей помощи.
Плагин типа этого работает нормально без установленного mixedImage:
И значением этого вывода в логе будет:
Что работает нештатно? — При активированном событии OnTVOutputRenderList в настройках mixedImage невозможно поймать любое другое состояние, к примеру, OnDocFormSave и другие, что делает невозможным изменять значения полей и пр. В настройках mixedImage отключил отслеживаемое событие OnTVOutputRenderList — все заработало штатно. Проверил работу и работу поля mixedImage — работет, вроде, нормально. Но я не знаю того, правильно ли я сделал и не повлечет ли отключение этого события в расширении mixedImage к каким-то другим ошибкам.
Проверял даже на чистой установке с одним лишь дополнением mixedImage на Modhost.
Если знаете что-то по теме вопроса, буду признателен за информацию.
В modStore есть расширение под названием mixedImage и оно ломает нормальную работу сайта. Я долго возился с поиском этой ошибки, но нашел ее — ура, но как ее корректно исправить — я не знаю. Поэтому прошу вашей помощи.
Плагин типа этого работает нормально без установленного mixedImage:
switch ($modx->event->name) {
case 'OnDocFormSave':
$modx->log(modX::LOG_LEVEL_ERROR, ':::::::::::::::: >>> '.$tv);
break;
}
Если же установить, просто установить, mixedImage, то плагин такого типа работать не будет. Я в плагине одной строкой вывел вывод в лог уточнение события, вот так:$modx->log(modX::LOG_LEVEL_ERROR, ':::::::::::::::: >>> '.$modx->event->name);
И значением этого вывода в логе будет:
OnTVOutputRenderList
Что работает нештатно? — При активированном событии OnTVOutputRenderList в настройках mixedImage невозможно поймать любое другое состояние, к примеру, OnDocFormSave и другие, что делает невозможным изменять значения полей и пр. В настройках mixedImage отключил отслеживаемое событие OnTVOutputRenderList — все заработало штатно. Проверил работу и работу поля mixedImage — работет, вроде, нормально. Но я не знаю того, правильно ли я сделал и не повлечет ли отключение этого события в расширении mixedImage к каким-то другим ошибкам.
Проверял даже на чистой установке с одним лишь дополнением mixedImage на Modhost.
Если знаете что-то по теме вопроса, буду признателен за информацию.
Комментарии: 7
НЕ могу повторить на рабочем сайте.
Какая у Вас версия MODX?
Какая версия php?
На MODX 3.0 + дополнение не тестировалось, про баги никто issue не писал.
Какая у Вас версия MODX?
Какая версия php?
На MODX 3.0 + дополнение не тестировалось, про баги никто issue не писал.
Вот вам тестовые данные:
Чистая установка MODX 2.8.5.
Установка расширения mixedImage.
Создание доп. поле: simple_tv
Создаем плагин:
Идем в ресурс.
Сохраняем ресурс.
Открываем журнал ошибок и видим все в нем.
Вот вам для наглядной демонстрации доступ в админку на тестовом хосте (будет работать день):
Админка: s33359.h2.modhost.pro/manager/
Логин: s33359
Пароль: boF7frvOPGeB
Чистая установка MODX 2.8.5.
Установка расширения mixedImage.
Создание доп. поле: simple_tv
Создаем плагин:
$tv = $resource->getTVValue('simple_tv');
$modx->log(modX::LOG_LEVEL_ERROR, ':::::::::::::::: >>> СНАРУЖИ.ТВ '.$tv);
$modx->log(modX::LOG_LEVEL_ERROR, ':::::::::::::::: >>> СНАРУЖИ.ТИП '.$modx->event->name);
switch ($modx->event->name) {
case 'OnDocFormSave':
$modx->log(modX::LOG_LEVEL_ERROR, ':::::::::::::::: >>> ВНУТРИ.ТИП '.$tv);
break;
}
Отмечаем событие плагина: OnDocFormSaveИдем в ресурс.
Сохраняем ресурс.
Открываем журнал ошибок и видим все в нем.
Вот вам для наглядной демонстрации доступ в админку на тестовом хосте (будет работать день):
Админка: s33359.h2.modhost.pro/manager/
Логин: s33359
Пароль: boF7frvOPGeB
Строка с получением ТВ поля снаружи события, без дополнительных проверок, ломает вам получение полей, а не mixedimage
$tv = $resource->getTVValue('simple_tv');
1. Каким образом по вашему нужно корректно получать/устанавливать значение поля?
2. Удаляем/Меняем/Не устанавливаем mixedimage — все работает. Вроде, логично же.
2. Удаляем/Меняем/Не устанавливаем mixedimage — все работает. Вроде, логично же.
1) Все манипуляции внутри события
2) Если удалить строчку $resource->getTVValue('simple_tv'); то тоже все работает.
Ну и вы всегда можете отказаться от использования любого пакета и заменить его на рабочий, например FastUploadTV
switch ($modx->event->name) {
case 'OnDocFormSave':
$tv = $resource->getTVValue('simple_tv');
// ....
break;
}
2) Если удалить строчку $resource->getTVValue('simple_tv'); то тоже все работает.
Ну и вы всегда можете отказаться от использования любого пакета и заменить его на рабочий, например FastUploadTV
1. Мне кажется это странным поведением. Я получаю поле и какая разница где я его получаю… ну, да ладно.
Спасибо, но все равно странное поведение.
Спасибо, но все равно странное поведение.
$resource не всегда существует, для некоторых событий там null и в модх возникает ошибка, поэтому все остальное дальше не работает, в том числе и mixedimage.
Возможно, если заменить mixedimage на другое дополнение с теми же событиями, то получится та же самая картина, но проверять это все нет времени
Возможно, если заменить mixedimage на другое дополнение с теми же событиями, то получится та же самая картина, но проверять это все нет времени
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.