Что происходит с движком? Есть решение

Пишу новый плагин и столкнулся с тем, что install.php не отрабатывается. При этом в логах ничего нет.

Заглянул в логи консоли и вижу там 'Localization failed: Plugins wa.core.js:411' .... причем это как на тестовом стенде, так и на боевом магазине, где я вообще ничего не трогал.

Как я понимаю, install не отрабатывается из-за этой ошибки? (Хотя все остальное, вроде, работает. Настройки сохраняются). С чем может быть связана такая ошибка?

5 ответов

  • 1

    В общем разобрался.

    Поставил wa('shop')->getPlugin('myplugin') в начале экшена настроек.

    Теперь install отрабатывает, все создается, сохраняется и выводится в настройках при первой загрузке страницы Настройки.

  • 1

    install.php отрабатывает только при первой инициализации плагина

    Возможно вы сначала включили плагин, а потом уже добавили install.php
    Смотрите в таблицу wa_app_settings, что там указано для плагина вашего, попробуйте удалить оттуда запись и почистить кэш, тогда install.php должен запуститься при инициализации плагина.

    Так же имейте ввиду что запуск страницы настроек плагина сам по себе не инициализирует плагин, для этого нужно вызвать wa('shop')->getPlugin('myplugin')

    Ошибка js не может влиять на запуска install.php - это очевидно, и странно вообще такие предположения слышать от разработчика плагинов.

  • 1

    Мне тоже странно слышать от Вас подобное. Но все же:

    1. Хм .... а где я написал, что это js ошибка? Как я понимаю, там просто выплевывается чей-то ответ. Просто ничего другого ни в каких логах нет.

    2. Я не первый год замужем и, разумеется, все предварительные манипуляции (очистка wa_apps_settings и кеша) выполняются перед каждой попыткой установки, если я жду установки плагина с нуля.

    3. Кто и когда вызывает wa('shop')->getPlugin('myplugin')? Если у меня пока нет назначенных методов под какие-либо хуки ... данная конструкция вызывается? Где вообще почитать про механизм install

  • 1

    Хм, прикольно. Действительно, пока не сработает хук и не будет вызван метод, который этот хук обрабатывает (даже если он пустой), install.php не отработает.

    Остается вопрос ... а что, если мне НЕ надо использовать никаких хуков? =)

    • +3

      Вызвать wa('shop')->getPlugin('myplugin') перед тем кодом где вы ожидаете что install.php отработал.

      Еще раз повторяю: install.php вызывается при первой инициализации класса вашего плагина shopMypluginPlugin:
      происходит это либо при вызове хука, который он отрабатывает
      либо при вызове wa('shop')->getPlugin('myplugin')



Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите