wdrożenia PrestaShop

Dodawanie pliku JS do modułu

  • 5 Odpowiedzi
  • 2264 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline bejkrools

  • Nowy
  • *
  • 6
  • 0
  • prestashop
  • PrestaShop: PS
  • Status: Programista
Dodawanie pliku JS do modułu
« dnia: 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?

*

Offline design4VIP

  • user
  • Mieszkaniec
  • *****
  • 3,866
  • 131
    • design4VIP z innej strony...
  • PrestaShop: PS
  • Status: Programista
Odp: Dodawanie pliku JS do modułu
« Odpowiedź #1 dnia: 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).
design4VIP z innej strony...

*

Offline bejkrools

  • Nowy
  • *
  • 6
  • 0
  • prestashop
  • PrestaShop: PS
  • Status: Programista
Odp: Dodawanie pliku JS do modułu
« Odpowiedź #2 dnia: 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 :-)

*

Offline bejkrools

  • Nowy
  • *
  • 6
  • 0
  • prestashop
  • PrestaShop: PS
  • Status: Programista
Odp: Dodawanie pliku JS do modułu
« Odpowiedź #3 dnia: 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]

    *

    Offline bejkrools

    • Nowy
    • *
    • 6
    • 0
    • prestashop
    • PrestaShop: PS
    • Status: Programista
    Odp: Dodawanie pliku JS do modułu
    « Odpowiedź #4 dnia: 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');
        }

    *

    Offline bejkrools

    • Nowy
    • *
    • 6
    • 0
    • prestashop
    • PrestaShop: PS
    • Status: Programista
    Odp: Dodawanie pliku JS do modułu
    « Odpowiedź #5 dnia: 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


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