Показать мой модуль JS в нижнем колонтитуле в prestashop

Показать мой модуль JS в нижнем колонтитуле в prestashop

06.08.2015 01:34:31 Просмотров 33 Источник

Я разрабатываю модуль в prestashop. У меня есть страница конфигурации JS для моего модуля. Я использую displayBackOfficeHeaderкрюк, чтобы добавить мой JS в заголовке. Но после установки моего модуля, когда я настраиваю свой модуль, это дает мне Jquery

Вопрос 1) Как управлять тем, что мой JS должен добавить в заголовок после jquery.js?

Que 2) Если мы не можем управлять так же, как que Ist, то как добавить JS в нижний колонтитул?

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/31853519/show-my-module-js-at-footer-in-prestashop#comment51668524_31853519
Что вы используете, чтобы добавить js к этому крючку прямо сейчас? "$этом->контекст->контроллер->addJS(($этом->_path).'myjavascript.с JS');" ?

Ответы - Показать мой модуль JS в нижнем колонтитуле в prestashop / Show my module JS at footer in prestashop

Eric

09.11.2015 04:59:55

Если вы перейдете в" модули " > "позиции крюка" в BO, вы можете заказать загрузку модулей.

Maksim T.

05.11.2018 05:59:48

В большинстве случаев для добавления какого-либо ресурса (JavaScript или CSS) в бэк-офис (страницы администратора) следует использовать Хук actionAdminControllerSetMedia(). Подробные инструкции по регистрации правильно файл JavaScript являются:

Шаг 1. Регистрация крючка на установке модуля:

public function install()
{
    if (!parent::install()) {
        return false;
    }

    // After a module installation, register the hook
    if (!$this->registerHook('actionAdminControllerSetMedia')) {
        return false;
    }

    return true;
}

Шаг 2. Затем добавьте свой ресурс JavaScript:

public function hookActionAdminControllerSetMedia()
{
    // Adds jQuery and some it's dependencies for PrestaShop
    $this->context->controller->addJquery();

    // Adds your's JavaScript from a module's directory
    $this->context->controller->addJS($this->_path . 'views/js/example.js');
}

Существуют различные способы и несколько методов, которые могут быть использованы для регистрации активов в бэк-офисе (страницы администратора) (они перечислены в порядке выполнения):

  1. Крючок hookDisplayBackOfficeHeader()
  2. Метод AdminControllerCore::setMedia()
  3. Крючок actionAdminControllerSetMedia()
  4. Метод модуля Module::getContent()
  5. Крючок hookDisplayBackOfficeFooter()

Чтобы добавить встроенный код, лучше всего использовать hook hookDisplayBackOfficeFooter(). Например:

public function hookDisplayBackOfficeFooter()
{
    return '
        <script type="text/javascript">
            var EXAMPLE_VARIABLE = "Hello, Zapalm!";
        </script>
    ';
}

Еще один пример для случая, когда вам нужно добавить ресурс JavaScript, но в дочернем классе AdminController вашего модуля (для PrestaShop 1.7):

public function setMedia($isNewTheme = false)
{
    parent::setMedia($isNewTheme);

    $this->addCSS(_MODULE_DIR_ . $this->module->name . '/views/css/example.css');
    $this->addJS(_MODULE_DIR_ . $this->module->name . '/views/js/example.js');
}

Для PrestaShop 1.6 и 1.5 вы можете сделать также, как в этом примере, но вам нужно удалить параметр $isNewTheme из определения метода и вызова родительского метода.

Рекомендации:

  1. Управление активами в PrestaShop 1.7.

  2. Как добавить внешний актив на страницу фронт-офиса в PrestaShop 1.7.

  3. Объяснение, какие методы использовать: addJS или registerJavascript.

https://stackoverflow.com/questions/31853519/show-my-module-js-at-footer-in-prestashop/53147760#comment103520838_53147760
Если я буду использовать $этом -> контекст -> контроллер ->registerJavascript() в hookActionAdminControllerSetMedia(), затем я получаю ошибку "неопределенный метод "registerStylesheet" класса "AdminModulesController""
https://stackoverflow.com/questions/31853519/show-my-module-js-at-footer-in-prestashop/53147760#comment103546930_53147760
Я обновил этот ответ, и я также ответил на ваш вопрос .
Закрыть X