Избавляемся от ошибки «modAction support is deprecated» в старых пакетах
Если у вас есть дополнение, которое вы делали ещё на первой версии modExtra, то при его установке сейчас вы будете видеть такое сообщение об ошибке:
Исправить её не сложно, но раньше всё не доходили руки.
1. Находим файл-контроллер (simpleUpdater/core/components/simpleupdater/index.class.php), меняем в нём название класса на simpleUpdaterIndexManagerController и вносим прямо в него все методы из контроллера home (getPageTitle, loadCustomCssJs и getTemplateFile). Убираем слово abstract.
2. В файле simpleUpdater/_build/data/transport.menu.php меняем action на просто index (до этого там будет массив — array('controller' => 'index')). Удаляем всё, что связано с modAction. В массив для modMenu добавляем параметр namespace.
3. В файле simpleUpdater/_build/build.transport.php находим блок с BUILD_MENU_UPDATE и удаляем из него RELATED_OBJECTS и RELATED_OBJECT_ATTRIBUTES.
После этого меняем номер версии, changelog и собираем новый пакет.
Вот все изменения на одной странице: github.com/ilyautkin/simpleUpdater/commit/9e95decbd61a24025e2576aa1aff68a34469274e
UPD. Если на сайте стояла старая версия и пункт меню уже существовал, то эти действия пункт меню не поменяют. Чтобы при обновлении всё было ок, нужно добавить в папку _build/resolvers/ файл resolve.fixmenu.php:
И добавить новый резолвер в список резолверов (файл _build/build.config.php):
Вот эти изменения: github.com/ilyautkin/simpleUpdater/commit/cfad412ba4db0e9707306a25c072ef5babf39a9c
modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace simpleupdater to the routing based system.
Исправить её не сложно, но раньше всё не доходили руки.
1. Находим файл-контроллер (simpleUpdater/core/components/simpleupdater/index.class.php), меняем в нём название класса на simpleUpdaterIndexManagerController и вносим прямо в него все методы из контроллера home (getPageTitle, loadCustomCssJs и getTemplateFile). Убираем слово abstract.
2. В файле simpleUpdater/_build/data/transport.menu.php меняем action на просто index (до этого там будет массив — array('controller' => 'index')). Удаляем всё, что связано с modAction. В массив для modMenu добавляем параметр namespace.
3. В файле simpleUpdater/_build/build.transport.php находим блок с BUILD_MENU_UPDATE и удаляем из него RELATED_OBJECTS и RELATED_OBJECT_ATTRIBUTES.
После этого меняем номер версии, changelog и собираем новый пакет.
Вот все изменения на одной странице: github.com/ilyautkin/simpleUpdater/commit/9e95decbd61a24025e2576aa1aff68a34469274e
UPD. Если на сайте стояла старая версия и пункт меню уже существовал, то эти действия пункт меню не поменяют. Чтобы при обновлении всё было ок, нужно добавить в папку _build/resolvers/ файл resolve.fixmenu.php:
<?php
if ($object->xpdo) {
$modx =& $object->xpdo;
switch ($options[xPDOTransport::PACKAGE_ACTION]) {
case xPDOTransport::ACTION_INSTALL:
break;
case xPDOTransport::ACTION_UPGRADE:
if ($menu = $modx->getObject('modMenu', [
'text' => 'simpleupdater',
'namespace' => 'core'
])) {
$data = [
'namespace' => 'simpleupdater',
'action' => 'index'
];
$menu->fromArray($data);
$menu->save();
}
break;
case xPDOTransport::ACTION_UNINSTALL:
break;
}
}
return true;И добавить новый резолвер в список резолверов (файл _build/build.config.php):
// ...
$BUILD_RESOLVERS = array(
'tables',
'chunks',
'fixmenu', // Новый резолвер
);Вот эти изменения: github.com/ilyautkin/simpleUpdater/commit/cfad412ba4db0e9707306a25c072ef5babf39a9c
Комментарии: 12
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
У меня установлен SimpleUpdater
Но когда я в админке нажимаю «Пакеты — Обновление MODX» у меня вылетает 500 ошибка.
В логе:
Также, когда я жму на корзину ресурсов(управление удаленными ресурсами) вылетает «Доступ запрещён».
Из меню исчезла консоль (Console)
Переустановки не помогают =(
Это связанные проблемы?
Началось всё буквально на днях, как я понимаю. Вышло много обновлений. Обновился.
И, к сожалению, поздно заметил. Бэкап уже сильно не свежий будет =(
Если найдёшь, в чём причина — отпиши, пожалуйста, постараюсь исправить, если дело в моём дополнении.
ФаритПри установке AutoRedirrector такое:
А ошибки non well formed numeric value у меня нет. Вообще странная она, даже не знаю, в каком месте может появляться…
Но спасибо, постараюсь разобраться когда-нибудь)
Вот от этого как избавиться?
«modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace core to the routing based system»
log_deprecated в системных настройках можно отключить и все.