Локализация плагина в backend

Добрый день!

Пишу свой плагин, у которого очень много настроек и они разбиты по группам.
Чтобы не перегружать страницу огромным количеством настроек, решил сделать по типу настроек "Типы и характеристики товаров" в настройках магазина. Т.е. слева названия групп настроек в виде ссылок, справа сами настройки выбранной группы.
Что сделано:
1. Через хук backend_settings на странице настроек магазина добавил ссылку на настройки плагина ?action=settings#/mypluginparamsload/
2. Создал экшен wa-apps/shop/plugins/myplugin/lib/actions/shopSettingsMypluginparamsload.action.php
3. Создал wa-apps/shop/plugins/myplugin/templates/actions/Mypluginparamsload.html
Вроде все работает, но локализация в шаблоне не работает ни [`word`] ни _wp('word'). В файлах локализации все есть и .po и .mo файлы.
Не работает не только в шаблоне но и в файле экшена shopSettingsMypluginparamsload.action.php
В файле экшена работает такой вариант
waLocale::loadByDomain(array('shop', 'userparams'));
waSystem::pushActivePlugin('userparams', 'shop');
$word = _wp('word')
waSystem::popActivePlugin();
но это не устраивает.
Подозреваю, что это потому что файл экшена, как бы, не принадлежит шаблону.
Пробовал разные варианты (перечислять здесь не буду) и пришел к выводу, что отбразить можно только так. Но тогда не работают локали.
Зачем делать такой хук, который не дает плагину полноценно работать.
Что посоветуете?

2 ответа

  • 1
    enso_studio@mail.ru 7 июля 2019 14:08 #

    в контроллерах/экшенах нужно плагин активировать вначале:

    wa('app')->getPlugin('plugin', true) или wa()->pushActivePlugin('plugin', 'app')

  • 0
    Markus 7 июля 2019 17:41 #

    Спасибо огромное.

    Судя по всему wa('app')->getPlugin('plugin', true) работает правильнее. Работает локализация и в экшене и в шаблоне.

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

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