Prestashop добавить CSS в модуль - PullRequest
3 голосов
/ 11 августа 2011

Я создаю модуль в prestashop 1.4, скажем, blocktest

modules / blocktest / blocktest.php:

...

public function hookLeftColumn($params)
{
    global $smarty;
    $smarty->assign(array(
        'test' => 'test'
    ));
    return $this->display(__FILE__, 'blocktest.tpl');
}

public function hookHeader()
{
    Tools::addCSS($this->_path.'blocktest.css', 'all');
}

modules / blocktest / blocktest.css:

* { background-color: red; }


Проблема:

Мой css не включен.

Что я пробовал:

В admin > preferences > performances > smarty, я установилкэшировать до no и принудительно компилировать до yesadmin > preferences > performances > smarty для кэша установлено значение no.

В существующих модулях используется то же самое включение CSS: Tools::addCSS($this->_path.'blocktest.css', 'all');, но файл CSS находится в <themeName>/css/modules/<moduleName>/<moduleName>.css.Что странно, потому что путь $ this -> _ указывает на папку модуля: modules/<moduleName>/.

Но в любом случае я попытался поместить свой файл css в <themeName>/css/modules/blocktest/blocktest.css, что не работает.Может быть, я что-то упустил

Ответы [ 3 ]

5 голосов
/ 12 августа 2011

Помните ли вы о регистрации хука для заголовка при установке модуля?

function install() {
    if (!parent::install())
        return false;
    if (!$this->registerHook('header'))
        return false;
    return true;
}

Без этого вам нужно будет использовать функцию «трансплантат модуля» из Admin> Modules> Positions, чтобы сделать это. Всегда проверяйте с помощью таких инструментов, как Firebug, чтобы убедиться, что ваши файлы там есть.

Кроме того, я думаю, что чего-то не хватает, можете ли вы предоставить нам полный код вашего модуля? Пожалуйста, предоставьте нам версию Prestashop, которую вы также используете.

3 голосов
/ 04 октября 2013

Другое решение:

$this->context->controller->addCSS(($this->_path).'style.css', 'all'); 
$this->context->controller->addJs(($this->_path).'script.js', 'all'); 

Привет,

информация об источнике:

http://www.prestashop.com/forums/topic/235476-solucionadoerror-en-mi-1ra-web-warning-function-addcss-is-deprecated-in/

1 голос
/ 19 февраля 2012

Что странно, потому что путь $ this -> _ указывает на папку модуля: modules //

да, это (странно), но ... в функции addCSS,переопределяется с (модулем) темами css folder

public static function addCSS($css_uri, $css_media_type = 'all')
{
  global $css_files;
   ...
  $css_uri = str_replace(__PS_BASE_URI__.'modules/', __PS_BASE_URI__.'themes/'._THEME_NAME_.'/css/modules/', $css_uri, $different);
   ...
}
...