Polskie wsparcie PrestaShop

PrestaShop => PrestaShop 1.6 => Wątek zaczęty przez: bejkrools w Sierpień 31, 2015, 04:09:22 pm

Tytuł: Dodawanie pliku JS do modułu
Wiadomość wysłana przez: bejkrools w Sierpień 31, 2015, 04:09:22 pm
Witajcie, problem dotyczy braku ładowania dowolnego pliku javascript w module. Pliki CSS ładują się poprawnie! Robię to w podręcznikowy sposób:


public function install()
    {
        if (!parent::install() ||
                !$this->registerHook('header') ||
                !Configuration::updateValue('MINIMODULE_NAME', 'my friend')
        ) return false;
        return true;
    }

public function hookDisplayHeader()
    {
        $this->context->controller->addCSS($this->_path.'css/minimodule.css', 'all');
        $this->context->controller->addJS($this->_path.'js/minimodule.js');
    }
ale próbowałem też:
    public function hookDisplayHeader($params) / hookHeader() / hookHeader($params)
    {
        $this->context->controller->addCSS($this->_path.'css/minimodule.css', 'all');
        $this->context->controller->addJS($this->_path.'js/minimodule.js');
    }

zawsze ładuje się tylko plik css, pliki js nie chcą się wyświetlać w źródle, sprawdzałem też w firebugu, css poprawnie, JS niepoprawnie. Ścieżki i nazwy plików są prawidłowe. Gdzie szukać problemu?
Tytuł: Odp: Dodawanie pliku JS do modułu
Wiadomość wysłana przez: design4VIP w Sierpień 31, 2015, 06:14:26 pm
zaczynajac od podstaw, nie ma czegos takiego jak display w headrze ;) samo $this->registerHook('header') sugeruje, ze ma to byc hookHeader(). kazdego, czy potrzeba czy nie laduj z $params. 

po kazdej zmianie nazwy hook nalezy odinstalowac i zainstalowac na nowo modul (wyczysc).
Tytuł: Odp: Dodawanie pliku JS do modułu
Wiadomość wysłana przez: bejkrools w Wrzesień 01, 2015, 12:00:31 am
Dzięki, spróbuję jutro poprawić. Z tym hookDisplayHeader zasugerowałem się oficjalną dokumentacją dla tej wersji PS, gdzie jest właśnie hookDisplayHeader, poza tym zawsze  CSS ładował się poprawnie... Napisze jutro jak poszło :-)
Tytuł: Odp: Dodawanie pliku JS do modułu
Wiadomość wysłana przez: bejkrools w Wrzesień 01, 2015, 07:52:53 am
Dzięki, spróbuję jutro poprawić. Z tym hookDisplayHeader zasugerowałem się oficjalną dokumentacją dla tej wersji PS, gdzie jest właśnie hookDisplayHeader, poza tym zawsze  CSS ładował się poprawnie... Napisze jutro jak poszło :-)



Wszystko się zgadza JS ładują się poprawnie, podsumowując:[/size]
Tytuł: Odp: Dodawanie pliku JS do modułu
Wiadomość wysłana przez: bejkrools w Wrzesień 01, 2015, 08:16:33 am

A jednak jest coś nie tak kiedy uruchamiam kontroler modułu. Tam w nagłówku widoczne są tylko CSS.
modules/minimodule/controllers/front/showgame.php
include_once(_PS_ROOT_DIR_.'\config\config.inc.php');
include_once(_PS_ROOT_DIR_.'\header.php');
include_once(dirname(__FILE__).'/../../minimodule.php');


$module = new minimodule();
echo $module->showGame();


include_once(_PS_ROOT_DIR_.'\footer.php');
[size=78%]plik modules/minimodule/tpl/showgame.tpl[/size]
[/size]
<!-- Mini Module -->
<div id="mini-module">
    <div class="row">
        Próby z JSONP
    <>
    <div class="row-centered">
        <a href="#" class="button1 btn btn-default" role="button"><span>Button 1</span></a>></a>
        <div id="testLabel"><>
    <>
    <div class="row game-category">
        <h2>Popular</h2>
    <>
    <div class="row row-centered">
        {foreach from=$games_icon item=picture}
            <div class="col-lg-3 col-sm-4 col-xs-6 col-centered">
                <img src="{$picture|escape:'htmlall':'UTF-8'}" class="img-responsive"><br>
            <>
           
        {/foreach}
    <>
<>
<!-- /Mini Module -->
[size=78%]


plik modules/minimodule/minimodule.php


[/size]
public function showGame()
    {
        global $smarty;
       
        $pictures_scan = scandir(__DIR__.'/img/game_icons/');
        $pictures = array_diff($pictures_scan, array('.', '..'));
       
//        echo '<pre>';
//        var_dump($pictures);
//        echo '</pre>';
       
        foreach($pictures as $picture_name)
        {
            $games_icon[] = $this->context->link->protocol_content.Tools::getMediaServer($picture_name).$this->_path.'img/game_icons/'.$picture_name;


        }
                       
        $smarty->assign(array(
            'games_icon' => $games_icon,
        ));
       
        return $this->display(__FILE__, 'tpl/showgame.tpl');
    }
Tytuł: Odp: Dodawanie pliku JS do modułu
Wiadomość wysłana przez: bejkrools w Wrzesień 01, 2015, 10:35:31 am
I jeszcze raz ja, znalazłem rozwiązanie. Oprócz zastosowania poprzednich rad okazało się, że źle robiłem kontrolery, niezgodnie ze specyfikacją. po odpowiednich modyfikacjach wszystko działa jak należy.


Dla zainteresowanych: http://nemops.com/creating-new-pages-in-prestashop/#.VeVMaPntmko (http://nemops.com/creating-new-pages-in-prestashop/#.VeVMaPntmko)


Dla moderatora: możesz zmoderować moje posty w całość, sorry za bałagan, temat zamknięty :-)