Prestashop 1.6.1.4 - Добавить CSS на страницу CMS модуля - PullRequest
0 голосов
/ 18 декабря 2018

Я делаю модуль, который добавляет новую вкладку на странице редактирования продукта.Установка Prestashop 1.6.1.4.Модуль добавляет вкладку с некоторыми полями ввода, которые отправляют данные в таблицы MySQL, но я хочу немного стилизовать поля, чтобы они хорошо выглядели.Я добавляю это в мой файл module.php:

public function install() {
    if ($this->psversion() == 5 || $this->psversion() == 6)
    {
        if (parent::install() == false or !$this->registerHook('displayHeader') or !$this->registerHook('productFooter') or !$this->registerHook('displayAdminProductsExtra') or !$this->registerHook('actionProductUpdate') or !$this->registerHook('displayBackOfficeHeader'))
        {
            return false;
        }
    }

    return true;
}

Затем ниже этого я помещаю этот код:

public function hookDisplayBackOfficeHeader($params) {
    $this->context->controller->addCSS($this->_path.'views/css/adminsportsnutritionfadd.css');
}

Но не могу заставить файл .css появляться.Файл находится в нужном месте, у него есть соответствующие разрешения, и владельцем файла является www-data: www-data, так что это не должно быть проблемой с разрешениями.Я отключил объединение CSS в Prestashop, а также кэширование.Перед перезагрузкой страницы я также на всякий случай удаляю кеш Prestashop, а также кеш своего браузера.Может ли кто-нибудь помочь мне в этом?

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Не уверен, что вы отсортировали это или нет, но ...

Я использую эту функцию в большинстве своих модулей для добавления jQuery, Font-awesome, CSS & JS, а затем показываю ТОЛЬКО настраница этого модуля ...

public function hookDisplayBackOfficeHeader($params)
{
    if(!(Tools::getValue('controller') == 'AdminModules' 
      && Tools::getValue('configure') == 'MyModuleName')
    ){
        return;
    }
    else
    {
        if ( method_exists($this->context->controller, 'addJquery') )
        {
            $this->context->controller->addJquery();
            $this->context->controller->addCss('//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
            $this->context->controller->addCss($this->_path.'views/css/back.css');
            $this->context->controller->addJs($this->_path.'views/js/back.js');
        }
    }
}
0 голосов
/ 18 декабря 2018

Сделайте так:

 public function hookBackOfficeHeader()
    {
      $this->context->controller->addCSS($this->_path.'views/css/adminsportsnutritionfadd.css');        
    }

Для меня это работает так:

    $this->context->controller->addCSS($this->_path . 'views/css/back.css');

Так что единственное отличие - это имя файла css.

...