попытка загрузить файлы js и css в модуле администратора prestashop 1.7

попытка загрузить файлы js и css в модуле администратора prestashop 1.7

27.07.2017 02:02:16 Просмотров 47 Источник

Я учусь писать модули в prestashop 1.7, в настоящее время я пытаюсь загрузить css и js-файлы, которые будут использоваться, когда пользователь попытается настроить модуль.

это код моего модуля:

class TuxInModComments extends Module
{

    function __construct()
    {
        $this->name = 'tuxinmodcomments';
        $this->tab = 'quick_bulk_update';
        $this->version = '0.1';
        $this->author = 'Kfir Ozer';
        $this->displayName = 'Tux-In Comments and Ranks';
        $this->description = 'With this module, your costumers will be able to grade and comment your products';
        $this->bootstrap = true;

        parent::__construct();
    }

    public function install() {
        parent::install();
        $this->registerHook('actionAdminControllerSetMedia');
        return true;
    }

    public function processConfiguration()
    {
        if (Tools::isSubmit('mymod_pc_form')) {
            $enable_grades = Tools::getValue('enable_grades');
            $enable_comements = Tools::getValue('enable_comments');
            $csvFile = Tools::getValue('csv_file');
            die(var_export($csvFile));
            Configuration::updateValue('MYMOD_GRADES', $enable_grades);
            Configuration::updateValue('MYMOD_COMMENTS', $enable_comements);
            $this->context->smarty->assign('confirmation', 'ok');
        }
    }

    public function assignConfiguration()
    {
        $enable_grades = Configuration::get('MYMOD_GRADES');
        $enable_comments = Configuration::get('MYMOD_COMMENTS');
        $this->context->smarty->assign('enable_grades', $enable_grades);
        $this->context->smarty->assign('enable_comments', $enable_comments);
    }

    public function hookActionAdminControllerSetMedia($params){
        $this->registerStylesheet('module-tuxinmodcomments-css','modules/tuxinmodcomments/js/getcontent.css');
        $this->registerJavascript('module-tuxinmodcomments-js','modules/tuxinmodcomments/js/getcontent.js');
    }


    public function getContent() {
        $this->processConfiguration();
        $this->assignConfiguration();
        return $this->display(__FILE__,'getContent.tpl');
    }

}

поэтому я зарегистрировал админ набора носителей крюк с именем actionAdminControllerSetMedia но кажется, что он не имеет функции, таблицы стилей и JavaScript, потому что я получаю ту же ошибку для обоих: Uncaught Symfony\Component\Debug\Exception\UndefinedMethodException: Attempted to call an undefined method named "registerStylesheet" OR "registerJavascript" of class "AdminModulesController".

Я действительно Новичок в этом.. Я читал, что мне нужно установить его в передний контроллер.. но разве это не означает, что он будет отображаться на обычной странице, а не на странице конфигурации?

не знаю, как решить эту проблему и немного запутался, поэтому любая информация по этому вопросу будет очень признательна.

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

Ответы - попытка загрузить файлы js и css в модуле администратора prestashop 1.7 / trying to load js and css files in prestashop 1.7 admin module

Является ответом!
sarcom

27.07.2017 02:11:06

Для загрузки CSS или JS вы должны использовать этот крюк, с этим фрагментом кода:

public function hookDisplayBackOfficeHeader()
{
    $this->context->controller->addCSS($this->_path.'pathtocss/module.css', 'all');
    $this->context->controller->addJS($this->_path.'pathtojs/module.js', 'all');
}

Наслаждаться :)

PS: вы должны зарегистрироваться на дисплей вспомогательную заголовок крючок

Maksim T.

05.11.2018 07:38:15

Поскольку вам нужно зарегистрировать активы для бэк-офиса, т. е. для AdminController, то вам нужно использовать addJSметоды addJS и addCSS. Итак, правильный пример для добавления файлов JS и CSS через класс модуля-это:

addCSS

Вот подробная информация, как зарегистрировать JavaScript в бэк-офисе (на страницах администратора).

Если вам нужно зарегистрировать активы для фронт-офиса (т. е. public function hookActionAdminControllerSetMedia($params) { // Adds your's CSS file from a module's directory $this->context->controller->addCSS($this->_path . 'views/css/example.css'); // Adds your's JavaScript file from a module's directory $this->context->controller->addJS($this->_path . 'views/js/example.js'); } ) в PrestaShop 1.7, то вам нужно использовать FrontControllerи registerJavascript:

registerStylesheet
https://stackoverflow.com/questions/45348922/trying-to-load-js-and-css-files-in-prestashop-1-7-admin-module/53148423#comment103520560_53148423
У меня есть точный этот код в моем hookActionAdminControllerSetMedia() и он отображает мне ту же ошибку (неопределенный метод с именем "registerStylesheet" класса "AdminModulesController"). Ваш ответ неверен. Также в ссылке вы предоставляете его состояния, чтобы использовать метод addJS в этом крючке, а не registerJS.
https://stackoverflow.com/questions/45348922/trying-to-load-js-and-css-files-in-prestashop-1-7-admin-module/53148423#comment103546896_53148423
Я обновил этот ответ, и я также ответил на ваш вопрос .
Закрыть X