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> <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
:moduły prestashop, prestashop