2016-03-25 10 views
1

Ich habe mein Prestashop-Modul mit einem Haken erstellt, um meine spezifische Suchmaske anzuzeigen.Prestashop 1.6 benutzerdefiniertes Modul: addJS/addCSS funktioniert nicht richtig

public function hookDisplayTopColumn($params) 
{ 

    $this->context->controller->addCSS($this->_path.'css/modelfilter.css', 'all'); 
    $this->context->controller->addJS($this->_path.'js/modelfilter.js'); 


    $marque = $this->getSubCategories($this->marquesCategory); 

    $this->context->smarty->assign(array(
     'marques' => $marque, 
    )); 
    return $this->display(__FILE__, 'form_model.tpl'); 
} 

JS- und CSS-Dateien sind nicht enthalten. Zu finden, warum, habe ich eine Parse-Linie in Klassen/Controller/FrontController.php:

public function addMedia($media_uri, $css_media_type = null, $offset = null, $remove = false, $check_path = true) 
{ 
    echo 'addMedia '.$media_uri."<br/>\n"; 

Und das Ergebnis ist: alle css/js Dateien erscheinen vor Beginn der Seite (kurz nach <body>), aber meine Dateien kommen kurz vor der Anzeige von form_model.tpl

Bitte, wie Sie meine Dateien in der guten Zeit aufgerufen werden?

Antwort

2

Sie dürfen $this->context->controller->addCSS und addJS nicht außerhalb von hookDisplayHeader() verwenden.

Wenn die Kopfzeile Ihrer Seite erstellt wird, wird hookDisplayHeader() aufgerufen, um Kopfzeilenelemente hinzuzufügen. Sobald dieser Haken fertig ist, wird der Header erstellt und kann nicht geändert werden.

Also, wenn der Haken hookDisplayTopColumn() aufgerufen wird, ist der Header bereits gebaut.

Um Ihre Dateien hinzufügen, haben Sie die hookDisplayHeader() in Ihrem Modul zu implementieren:

public function hookDisplayHeader($params) 
{ 
    $this->context->controller->addCSS($this->_path.'css/modelfilter.css', 'all'); 
    $this->context->controller->addJS($this->_path.'js/modelfilter.js'); 
} 

Und diese Zeilen aus hookDisplayTopColumn() entfernen.

+0

OK, danke. Sieht aus, dass ich heute Morgen nicht wach genug war. Jetzt scheint es so offensichtlich ... – Nathanael

+0

Wenn diese Antwort Ihr Problem gelöst hat, können Sie es bitte akzeptieren? [Wie funktioniert die Annahme einer Antwort?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

Verwandte Themen