DEVart

Tworzenie modułu Prestashop 1.3.1

by intro on cze.02, 2011, under Moduły Prestashop

Tworzenie modułu – Część druga Frontend

Pierwszym krokiem będzie utworzenie szablonu dla naszej listy nowych produktów. W tym celu tworzymy plik szablonu o następującej ścieżce /modules/blocknewproducts/blocknewproducts.tpl oraz zawartości:

1
2
3
4
5
6
7
8
9
10
11
12
<div id="newProducts">
  <a href="{$base_dir}new-products.php" title="{l s='New products' mod='blocknewproducts'}">{l s='New products' mod='blocknewproducts'}</a>
  <div class="block_content">
    <dl class="products">
    {foreach from=$new_products item=newproduct name=myLoop}
            <dt class="{if $smarty.foreach.myLoop.first}first_item{elseif $smarty.foreach.myLoop.last}last_item{else}item{/if}"><a href="{$newproduct.link}" title="{$newproduct.name|escape:html:'UTF-8'}">{$newproduct.name|strip_tags|escape:html:'UTF-8'}</a></dt>
            {if $newproduct.description_short}<dd class="{if $smarty.foreach.myLoop.first}first_item{elseif $smarty.foreach.myLoop.last}last_item{else}item{/if}"><a href="{$newproduct.link}">{$newproduct.description_short|strip_tags:'UTF-8'|truncate:50:'...'}</a>&nbsp;<a href="{$newproduct.link}"><img alt=">>" src="{$img_dir}bullet.gif"/></a></dd>{/if}
    {/foreach}
    </dl>  
    <p><a href="{$base_dir}new-products.php" title="{l s='All new products' mod='blocknewproducts'}" class="button_large">{l s='All new products' mod='blocknewproducts'}</a></p>
  </div>
</div>

Teraz potrzebujemy utworzyć Hook, który pobierze odpowiednią ilość nowych produktów oraz przekaże je do wyżej utworzonego szablonu. Tworzymy zatem metodę hookRightColumn

1
2
3
4
5
6
7
8
9
  public function hookLeftColumn($params) {
    global $smarty;
    //Pobieramy nowe produkty przy pomocy wbudowanej petody Product::getNewProducts()
    $newProducts = Product::getNewProducts(intval($params['cookie']->id_lang), 0, intval(Configuration::get('NEW_PRODUCTS_NBR')));
    //Przypisujemy tablicę pobranych produktów do zmiennej smartowej, która zostanie przekazana do szablonu
    $smarty->assign(array('new_products' => $newProducts, 'mediumSize' => Image::getSize('medium')));
    //Wyświetlamy szablon(box) z nowymi produktami
    return $this->display(__FILE__, 'blocknewproducts.tpl');
  }

W tym przypadku metoda getNewProducts przyjmuje kolejno 3 parametry:

  • $id_lang – identyfikator aktualnie używanej wersji jezykowej
  • $pageNumber – numer strony (w naszym przypadku 0 bo wypada zacząć od początku;-) )
  • $nbProducts – liczba produktów do pobrania/wyświetlenia (tutaj pobrana ze zmiennej konfiguracyjnej NEW_PRODUCTS_NBR)

Teraz wystarczy wejść do panelu administracyjnego naszego sklepu, następnie w listę modułów i odszukać pozycję „Blok nowych produktów” lub „New products block” oraz kliknąć przycisk „Instaluj”. Po przeładowaniu strony naszym oczom powinien ukazać się zielony komunikat informujący o pomyślnym zainstalowaniu nowego modułu:-) Po przejściu na stronę główną, w lewej kolumnie na ostatniej pozycji powinien pokazać się dodatkowy boks z nowymi produktami.

Wszelkie uwagi i sugestie oczywiście mile widziane, tak więc jeżeli popełniłem gdzieś błąd, lub piszę głupoty to proszę o info w komentarzu;-)

Strony: 1 2

:,

Leave a Reply

Security Code:

Szukasz informacji?

Skorzystaj z formularza poniżej aby przeszukać stronę:

W dalszym ciągu nie jesteś w stanie znaleźć interesujących Cię informacji? Skontaktuj się ze mną!

Polecane strony

Kilka adresów stron które powinieneś odwiedzić:

Archiwum

Wszystkie wpisy, chronologicznie: