Что нужно изменить в modExtra чтоб не было modAction support is deprecated?

Собираюсь писать новый компонент и как всегда на основе modExtra. Но он давно не обновлялся, а в MODX 2.7 что-то изменили и появляется сообщение
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 organizations to the routing based system.
Что в MODX 2.7 поменяли и что нужно поменять в modExtra?

UPD 29.01.2019
Разобрался :) В общем в modExtra менять ничего не нужно.

Посмотрел код modmenu.class.php.
public function rebuildCache($start = '') {
    ...
    $menus = $this->getSubMenus($start);
....

public function getSubMenus($start = '') {
    ...
     /* 2.2 and earlier support */
        $c->leftJoin('modAction','Action');
        $c->select(array(
            'action_controller' => 'Action.controller',
            'action_namespace' => 'Action.namespace',
        ));
    ...
        // allow 2.2 and earlier actions
            $deprecatedNamespace = $menu->get('action_namespace');
            if (!empty($deprecatedNamespace)) {
                $this->xpdo->deprecated('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 ' . $deprecatedNamespace . ' to the routing based system.', 'modAction support');
                $namespace = $deprecatedNamespace;
            }
            if ($namespace != 'core') {
                $this->xpdo->lexicon->load($namespace.':default');
            }
Ошибка modAction support is deprecated выбрасывается при построении кеша всех меню. То есть, если на сайте есть старые компоненты с меню, то на них и ругается при сохранении любого меню. В том числе и при установке новых компонентов. У меня на тестовом сайте 4 старых компонента и вот на них и ругалась.
Александр Туниеков
27 января 2019, 23:01
modx.pro
1 426
0
Поблагодарить автора Отправить деньги

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

    Александр Туниеков
    28 января 2019, 06:03
    0
    Я это читал перед тем как тему создать :(, но увы нефига не понял :(. Какие-то ссылки на коммиты Tickets, в которые я смотрю и не вижу никаких modAction. Смотрю код build modExtra и тоже не нахожу никаких modAction.
    Я в том как генерируется и устанавливается транспортный пакет внутри кода MODX практически ничего не знаю. Просто тупо брал modExtra переименовывал и писал что нужно в нем :). А теперь прямо засада.
      Александр Туниеков
      28 января 2019, 06:21
      0
      квест найди отличия этого
      <?php
      /** @var modX $modx */
      /** @var array $sources */
      
      $menus = array();
      
      $tmp = array(
          'emailqueue' => array(
              'description' => 'emailqueue_menu_desc',
              'action' => 'home',
              //'icon' => '<i class="icon icon-large icon-modx"></i>',
          ),
      );
      
      foreach ($tmp as $k => $v) {
          /** @var modMenu $menu */
          $menu = $modx->newObject('modMenu');
          $menu->fromArray(array_merge(array(
              'text' => $k,
              'parent' => 'components',
              'namespace' => PKG_NAME_LOWER,
              'icon' => '',
              'menuindex' => 0,
              'params' => '',
              'handler' => '',
          ), $v), '', true, true);
          $menus[] = $menu;
      }
      unset($menu, $i);
      
      return $menus;
      от этого
    Александр Туниеков
    29 января 2019, 05:47
    0
    Кто-нибудь может помочь?
      Александр Туниеков
      29 января 2019, 08:04
      0
      Для проверки установил Tickets. На modAction ругается 3 раза. А должно 1 раз на это
      if ($action = $modx->getObject('modAction', array('namespace' => 'tickets'))) {
                      $action->remove();
                      /** @var modMenu $menu */
                      if ($menu = $modx->getObject('modMenu', array('text' => 'tickets'))) {
                          $menu->remove();
                      }
      Похоже наши гуру и сами не знают, что там такого нужно поменять, чтоб не ругалось :)
      Баха Волков
      29 января 2019, 11:46
      +1
      Похоже наши гуру и сами не знают, что там такого нужно поменять, чтоб не ругалось :)
      Я это тут просто оставлю
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7