1

prestashop 1.5 で 1 つのモジュールを開発しています。私のモジュールが管理者パネルの管理者によってアクセスされたときに、いくつかのデザイン (css) を提供する必要があります。

4

3 に答える 3

3

hookHeader に追加するだけです:

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

これが役に立てば幸いです、マイク

于 2013-06-09T16:29:55.193 に答える
2

私はより良い方法を見つけました。これには、より具体的なフックがあります: displayBackOfficeHeader. これにより、コンテキストがバック オフィスのみになり、フロント オフィスになることはありません。また、特定の状況 (構成ページのみなど) でのみ機能することを確認するには、url vars を確認します。したがって、最初に install() に register 関数を追加します (フックが機能するようにモジュールを必ずリセットしてください)。

$this->registerHook('displayBackOfficeHeader');

また、uninstall() に登録解除コードを追加します。

$this->unregisterHook('displayBackOfficeHeader');

次に相対関数を追加します。この例では、構成ページにいるかどうかを確認しています (imagebanner はモジュールの名前です)。

    public function hookDisplayBackOfficeHeader($params){

       if(!(Tools::getValue('controller') == 'AdminModules' && Tools::getValue('configure') == 'imagebanner')){
          return;
       }

       $this->context->controller->addCSS($this->_path.'back-office.css', 'all');
    }

また、docs もご覧ください。それが役に立てば幸い!

[編集]

上記のコードは、スタックの最後ではなく最初にファイルを追加することがわかりました。これは、たとえば、BEFORE jquery を意味します。注入順序を制御する方法はないようです。とにかく、今のところ、私は簡単な解決策を見つけました.htmlコードを直接返します:

public function hookDisplayBackOfficeHeader($params){

    if(!(Tools::getValue('controller') == 'AdminModules' && Tools::getValue('configure') == 'homebanners')){
        return;
    }

    $html = '';
    $html .= '<link href="'.$this->_path.'back-office.css" rel="stylesheet" type="text/css" media="all" />';
    $html .= '<script src="'.$this->_path.'back-office.js" type="text/javascript" ></script>';

    return $html;
}

admin header.tpl を見ると、そのフックが実際には js/css incusion コードの後に​​配置されていることがわかります。だからそれはうまくいく。代わりに、addCSS/JS メソッドは独立して動作し、フックの位置をまったく考慮しません。

于 2013-07-25T09:07:58.357 に答える
1

私も同じ問題に直面しています...唯一の方法は [path-to-project]/[admin-path]/themes/default/template/helper/form/form.tpl にハッキングすることだと思います

ブロック {block name="before"}{/block} に追加します

このブロックをコントローラーテンプレートの form.tpl に追加します: [path-to-project]/[admin-path]/themes/default/template/controllers/[yourcontrollername]/helpers/form/form.tpl

{block name="before"}
<style>
/* your style here */
</style>
{/block}

詳細については、こちらのブログ記事を参照してください: http://mercstudio-tech.blogspot.com/2013/05/prestashop-form-field-type.html

于 2013-05-15T16:09:14.257 に答える