Skocz do zawartości

combinesom

Members
  • Zawartość

    6
  • Rejestracja

  • Ostatnia wizyta

O combinesom

  • Tytuł
    Początkujący
  1. [(STARY)TUTORIAL] Jak stworzyć moduł dla PrestaShop

    mam slider jgalleryview2 i chcę żeby pokazywał się nie tylko na pierwszej stronie ale także na stronie kategorii. Pomóżcie mi jak możecie bo sam tego nie dam rady ogarnąć. Wydaje mi się że to kwestia registerHook's, nie mam pojęcia jak to się ma do strony kategorii. jgalleryview2.php wygląda tak: <?php/** * Module jGalleryView2 * uses JavaScript from http://spaceforaname.com/galleryview * Creation author: Joel Gaujard * management inspired by module LinkSlideText by www.devedition.com * **/class JGalleryView2 extends Module{ protected $maxImageSize = 307200; protected $imageDir = 'slides/'; protected $_defaultLanguage; protected $_languages; protected $_xml; public function __construct() { $this->name = 'jgalleryview2'; $this->tab = 'Home'; $this->version = '1.3.2'; /* compatible PS 1.2.x, 1.3.x */ parent::__construct(); $this->page = basename(__FILE__,'.php'); $this->displayName = $this->l('jGallery View 2'); $this->description = $this->l('Add a jGallery View on your homepage.'); /* initiate values for translation */ $this->_defaultLanguage = intval(Configuration::get('PS_LANG_DEFAULT')); $this->_languages = Language::getLanguages(); /* put xml in cache */ $this->_xml = $this->_getXml(); } public function install() { if (!parent::install() OR !$this->registerHook('home') OR !$this->registerHook('header') ) return false; return true; } public function getContent() { $this->_html = '<h2>'.$this->displayName.' - '.$this->l('version').' '.$this->version.'</h2>'; $this->_html .= $this->_postProcess(); $this->_html .= $this->_displayForm(); return $this->_html; } protected function putContent($xml_data, $key, $field) { $field = stripslashes(htmlspecialchars($field,ENT_QUOTES,"UTF-8")); if (!$field) return 0; return ("\n\t\t<".$key.">".$field."</".$key.">"); } private function _postProcess() { if (Tools::isSubmit('submitUpdate')) { $newXml = '<'.'?'.'xml version="1.0" encoding="utf-8" '.'?'.'>'; $newXml .= "\n<items>"; $i = 0; foreach (Tools::getValue('item') AS $item) { $newXml .= "\n\t<item>"; foreach ($item AS $key => $field) { if ($line = $this->putContent($newXml, $key, $field)) $newXml .= $line; } if (isset($_FILES['item_'.$i.'_img']) AND isset($_FILES['item_'.$i.'_img']['tmp_name']) AND !empty($_FILES['item_'.$i.'_img']['tmp_name'])) { Configuration::set('PS_IMAGE_GENERATION_METHOD', 1); if ($error = checkImage($_FILES['item_'.$i.'_img'], $this->maxImageSize)) return $error; elseif (!$tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS') OR !move_uploaded_file($_FILES['item_'.$i.'_img']['tmp_name'], $tmpName)) return false; elseif (!imageResize($tmpName, dirname(__FILE__).'/'.$this->imageDir.'slide'.$i.'.jpg')) return $this->displayError($this->l('An error occurred during the image upload.')); unlink($tmpName); } if ($line = $this->putContent($newXml, 'img', $this->imageDir.'slide'.$i.'.jpg')) $newXml .= $line; $newXml .= "\n\t</item>\n"; $i++; } $newXml .= "\n</items>\n"; if ($fd = @fopen(dirname(__FILE__).'/'.$this->getXmlFilename(), 'w')) { if (!@fwrite($fd, $newXml)) return $this->displayError($this->l('Unable to write to the editor file.')); if (!@fclose($fd)) return $this->displayError($this->l('Can\'t close the editor file.')); } else return $this->displayError($this->l('Unable to update the editor file. Please check the editor file\'s writing permissions.')); /* refresh XML */ $this->_xml = $this->_getXml(); return $this->displayConfirmation($this->l('Items updated.')); } } static private function getXmlFilename() { return 'data.xml'; } private function _getXml() { $file = dirname(__FILE__).'/'.$this->getXmlFilename(); if (file_exists($file)) { if ($xml = @simplexml_load_file($file)) { return $xml; } } return false; } public function _getFormItem($i, $last) { $divLangName = 'title'.$i.'¤cpara'.$i; $output = ' <div class="item" id="item'.$i.'"> <h3>'.$this->l('Item #').($i+1).'</h3> <label>'.$this->l('Label').'</label> <div class="margin-form">'; foreach ($this->_languages as $language) { $output .= ' <div id="title'.$i.'_'.$language['id_lang'].'" style="display:'.($language['id_lang'] == $this->_defaultLanguage ? 'block' : 'none').';float: left;"> <input type="text" name="item['.$i.'][title_'.$language['id_lang'].']" id="item_title_'.$i.'_'.$language['id_lang'].'" size="64" value="'.(isset($this->_xml->item[$i]->{'title_'.$language['id_lang']}) ? stripslashes(htmlspecialchars($this->_xml->item[$i]->{'title_'.$language['id_lang']})) : '').'" /> </div>'; } $output .= $this->displayFlags($this->_languages, $this->_defaultLanguage, $divLangName , 'title'.$i, true); $output .= ' <div class="clear"></div> </div> <label>'.$this->l('Text').'</label> <div class="margin-form">'; foreach ($this->_languages as $language) { $output .= ' <div id="cpara'.$i.'_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $this->_defaultLanguage ? 'block' : 'none').';float: left;"> <textarea cols="64" rows="3" name="item['.$i.'][text_'.$language['id_lang'].']" id="item_text_'.$i.'_'.$language['id_lang'].'">'.(isset($this->_xml->item[$i]-> {'text_'.$language['id_lang']}) ? stripslashes(htmlspecialchars($this->_xml->item[$i]-> {'text_'.$language['id_lang']})) : '').'</textarea> </div>'; } $output .= $this->displayFlags($this->_languages, $this->_defaultLanguage, $divLangName , 'cpara'.$i, true); $output .= ' <div class="clear"></div> </div> <label>'.$this->l('Picture').'</label> <div class="margin-form"> [img='.$this->_path.$this->imageDir.] <input type="file" name="item_'.$i.'_img" /> <p style="clear: both"></p> </div> <label>'.$this->l('Link').'</label> <div class="margin-form"> <input type="text" name="item['.$i.'][url]" size="64" value="'.(isset($this->_xml->item[$i]->url) ? stripslashes(htmlspecialchars($this->_xml->item[$i]->url)) : '').'" /> <p style="clear: both"></p> </div> <div class="clear pspace"></div> '.($i > 0 ? '[url="javascript:{}"][img='._PS_ADMIN_IMG_.]l('delete').'" />'.$this->l('Delete this item').'[/url]' : '').' <hr/> '.($last ? '<a id="clone'.$i.'" href="javascript:cloneIt(\'clone'.$i.'\')" style="color:#488E41">[img='._PS_ADMIN_IMG_.]l('add').'" />[b]'.$this->l('Add a new item').'[/b]</a>' : '').' </div>'; return $output; } public function _displayForm() { $output = ''; $xml = false; if (!$xml = $this->_xml) $output .= $this->displayError($this->l('Your data file is empty.')); $output .= ' <script type="text/javascript"> function removeDiv(id) { $("#"+id).fadeOut("slow"); $("#"+id).remove(); } function cloneIt(cloneId) { var currentDiv = $("#"+cloneId).parent(".item"); var id = $(currentDiv).attr("id").match(/[0-9]+/gi); var nextId = parseInt(id) + 1; $.get("'._MODULE_DIR_.$this->name.'/ajax.php?id="+nextId, function(data) { $(currentDiv).after(data); }); $("#"+cloneId).remove(); } </script> <form method="post" action="'.$_SERVER['REQUEST_URI'].'" enctype="multipart/form-data"> <fieldset style="width: 900px;"> <legend>[img='.$this->_path.]'.$this->displayName.'</legend>'; $i = 0; foreach ($xml->item as $item) { $last = ($i == (count($xml->item)-1) ? true : false); $output .= $this->_getFormItem($i, $last); $i++; } $output .= ' <div class="margin-form clear"> <input type="submit" name="submitUpdate" value="'.$this->l('Save').'" class="button" /> </div> </fieldset> </form>'; return $output; } function hookHeader($params) { return $this->display(__FILE__, 'header.tpl'); } function hookHome($params) { if ($xml = $this->_xml) { global $cookie, $smarty; $smarty->assign(array( 'xml' => $xml, 'title' => 'title_'.$cookie->id_lang, 'text' => 'text_'.$cookie->id_lang )); return $this->display(__FILE__, $this->name.'.tpl'); } return false; } private function _displayTranslators() { $translators = array( "lt" => array( "fullname" => "Evaldas Belevicius", "url" => "mailto:evaboy@gmail.com" ) ,"tj" => array( //"fa" => array( "fullname" => "Roozbeh Aghabaighi", "url" => "http://www.embed.ir/eshop" ) ,"it" => array( "fullname" => "Di Giuseppe Luigi", "url" => "http://www.libridipsicologia.it/" ) ,"pl" => array( "fullname" => "Jakub Gzyl", "url" => "mailto:jakub6@gmail.com" ) ,"tr" => array( "fullname" => "Safa AL", "url" => "mailto:safa_al18@hotmail.com" ) ,"fr" => array( "fullname" => "Joël Gaujard", "url" => "http://www.joelgaujard.info" ) ); if (empty($translators) OR count($translators) < 1) return ''; $output = ' <p> <h3>'.$this->l('Translators list!').'</h3> [list]'; foreach ($translators AS $lang_iso => $translator) { $output .= ' <li style="line-height: 24px;"> [img=http://www.google.com/images/flags/] <a target="_blank" href="'.$translator["url"].'">[b]'.$translator["fullname"].'[/b] - '.preg_replace('/^mailto:/', '',$translator["url"]).'</a>'; $output .= ''; } $output .= '[/list] </p> <p> '.$this->l(' !').' </p> '; return $output; }}?> jqalleryview2.tpl wygląda tak: <span class="syntaxhtml"><span class="syntaxdefault"></span><span class="syntaxkeyword"><!--</span><span class="syntaxdefault"> Module Editorial </span><span class="syntaxkeyword">--><</span><span class="syntaxdefault">link href</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"{$base_dir}themes/element/modules/jgalleryview2/prod.css"</span><span class="syntaxdefault"> rel</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"stylesheet"</span><span class="syntaxdefault"> type</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"text/css"</span><span class="syntaxdefault"> media</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"all"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">/></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><!--</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> blindX </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> blindY </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> blindZ </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> cover </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> curtainX </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> curtainY </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> fade </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> fadeZoom </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> growX </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> growY </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> scrollUp </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> scrollDown </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> scrollLeft </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> scrollRight </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> scrollHorz </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> scrollVert </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> shuffle </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> slideX </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> slideY </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> toss </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> turnUp </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> turnDown </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> turnLeft </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> turnRight </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> uncover </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> wipe </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> zoom</span><span class="syntaxkeyword">--><!--</span><span class="syntaxdefault"> include Cycle plugin </span><span class="syntaxkeyword">--><</span><span class="syntaxdefault">script type</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"text/javascript"</span><span class="syntaxdefault"> src</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.2.74.js"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"></script></span>{literal}<script type="text/javascript" charset="utf-8"> $(window).load(function() { init_slideshow() }) init_slideshow = function() { $('#home_slides').cycle({ fx:'scrollRight', timeout:12000, pager:'#slide_navigation', after:update_slide_caption, before:fade_slide_caption }) } fade_slide_caption = function(next, previous) { caption_container = $('#project_caption') caption_container.fadeOut('fast') } update_slide_caption = function(next, previous) { caption_container = $('#project_caption') caption = $('span.slide_caption', previous) caption_container.fadeIn('fast') caption_container.html(caption.html()) }</script>{/literal}<div id="home_slideshow"> <ul style="position: relative; width: 687px; height: 455px;" id="home_slides"> {foreach from=$xml->item item=my_item name=loop} <li style="position: absolute; top: 0px; left: 0px; display: none; z-index: 2; opacity: 0;"> {if $my_item->img}<a href="{$my_item->url}">[img={$module_dir}{$my_item->img}]</a>{/if} <span class="slide_caption"> {if $my_item->$title} <h3> {if $my_item->url}<a href="{$my_item->url}">{/if} {$my_item->$title} {if $my_item->url}</a>{/if} </h3> {/if} {if $my_item->$text}<p>{$my_item->$text}</p>{/if} </span> {/foreach} [/list] <div id="home_slideshow_violator" class="clearfix"> <div style="display: block;" id="project_caption"></div><div id="slide_navigation" class="clearfix"></div> </div> </div></span> w pliku category.tpl umieściłem linijkę wywołującą zawartość pliku jgalleryview2.tpl: <span class="syntaxdefault"></span><span class="syntaxkeyword">{</span><span class="syntaxdefault">include file</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$tpl_dir</span><span class="syntaxkeyword">./</span><span class="syntaxdefault">modules</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">jgalleryview2</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">jgalleryview2</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">tpl</span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span> Na stronie kategorii pojawia się obszar w którym powinien pokazać się lider ale obrazy się nie pokazują widać tylkko tyle: <span class="syntaxdefault"></span><span class="syntaxkeyword"><</span><span class="syntaxdefault">div id</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"home_slideshow"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">ul id</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"home_slides"</span><span class="syntaxdefault"> style</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"position: relative; width: 687px; height: 455px;"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"></</span><span class="syntaxdefault">ul</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">div class</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"clearfix"</span><span class="syntaxdefault"> id</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"home_slideshow_violator"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">div id</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"project_caption"</span><span class="syntaxdefault"> style</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"display: block;"</span><span class="syntaxkeyword">></</span><span class="syntaxdefault">div</span><span class="syntaxkeyword">><</span><span class="syntaxdefault">div class</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"clearfix"</span><span class="syntaxdefault"> id</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"slide_navigation"</span><span class="syntaxkeyword">></</span><span class="syntaxdefault">div</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"></</span><span class="syntaxdefault">div</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"></</span><span class="syntaxdefault">div</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span>
  2. [(STARY)TUTORIAL] Jak stworzyć moduł dla PrestaShop

    Siemka,Pracuję nad Slideshowem, który ma się pokazywać tylko na stronie kategorii. Jaki TAB i HOOK ustawić aby moduł odnosił się do strony kategorii? Jakie parametry powinien mieć taki moduł?
  3. Paginacja produktów modułu Homefeatured

    Działa.
  4. Paginacja produktów modułu Homefeatured

    Tak jak obiecałem. Nie obeszło się bez kombinacji ale działa tak jak należy. Pierwszym krokiem jest utworzenie dwóch plików; jeden w roocie presty o nazwie homefeaturedto.php a drugi w themach o nazwie homefeaturedto.tpl. Następnie modyfikujemy pliki: modules/homefeatured/homefeatured.tpl - usuwamy całą treść. plik index.php w roocie wygląda tak: <span class="syntaxhtml"><span class="syntaxdefault"><?php</span><span class="syntaxkeyword">include(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">).</span><span class="syntaxstring">'/config/config.inc.php'</span><span class="syntaxkeyword">);if(</span><span class="syntaxdefault">intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">Configuration</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'PS_REWRITING_SETTINGS'</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> $rewrited_url </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> __PS_BASE_URI__</span><span class="syntaxkeyword">;include(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">).</span><span class="syntaxstring">'/header.php'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">$smarty</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assign</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'HOOK_HOME'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> Module</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">hookExec</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'home'</span><span class="syntaxkeyword">));</span><span class="syntaxdefault">$smarty</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">display</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">_PS_THEME_DIR_</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'index.tpl'</span><span class="syntaxkeyword">);include(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">).</span><span class="syntaxstring">'/homefeaturedto.php'</span><span class="syntaxkeyword">);include(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">).</span><span class="syntaxstring">'/footer.php'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">?></span></span> plik homefeatured.php w roocie wygląda tak: <span class="syntaxhtml"><span class="syntaxdefault"><?php</span><span class="syntaxkeyword">include(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">).</span><span class="syntaxstring">'/product-sort.php'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> $category </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new Category</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> $nbProducts </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $category</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">getProducts</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">NULL</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> NULL</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> NULL</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $orderBy</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $orderWay</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> include</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">).</span><span class="syntaxstring">'/pagination.php'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> $smarty</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assign</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'nb_products'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $nbProducts</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> $cat_products </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $category</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">getProducts</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$cookie</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">id_lang</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$p</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$n</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> $orderBy</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $orderWay</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> $smarty</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assign</span><span class="syntaxkeyword">(array(</span><span class="syntaxdefault"> </span><span class="syntaxstring">'products'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$cat_products</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> AND $cat_products</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> $cat_products </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> NULL</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'id_category'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$category</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">id</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> </span><span class="syntaxstring">'id_category_parent'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$category</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">id_parent</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> </span><span class="syntaxstring">'return_category_name'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Tools</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">safeOutput</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">Category</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">hideCategoryPosition</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$category</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">name</span><span class="syntaxkeyword">)),</span><span class="syntaxdefault"> </span><span class="syntaxstring">'path'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Tools</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">getPath</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$category</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">id</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> $category</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">name</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">));</span><span class="syntaxdefault"> $smarty</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">display</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">_PS_THEME_DIR_</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'homefeaturedto.tpl'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">?></span> </span> plik homefeaturedto.tpl w themach dostaje treść pliku homefeatured.tpl z modułów plus wiersz z paginacją. Wygląda to następująco: <span class="syntaxdefault"></span><span class="syntaxkeyword"><!--</span><span class="syntaxdefault"> MODULE Home Featured Products </span><span class="syntaxkeyword">--><</span><span class="syntaxdefault">div id</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"featured-products_block_center"</span><span class="syntaxdefault"> class</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"block products_block"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">h4</span><span class="syntaxkeyword">>{</span><span class="syntaxdefault">l s</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'New arrivals'</span><span class="syntaxkeyword">}</</span><span class="syntaxdefault">h4</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">if isset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$products</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> AND $products</span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">div class</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"block_content"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">assign var</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'liHeight'</span><span class="syntaxdefault"> value</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">342</span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">assign var</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'nbItemsPerLine'</span><span class="syntaxdefault"> value</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">assign var</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'nbLi'</span><span class="syntaxdefault"> value</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$products</span><span class="syntaxkeyword">|@</span><span class="syntaxdefault">count</span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">assign var</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'nbLines'</span><span class="syntaxdefault"> value</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$nbLi</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">$nbItemsPerLine</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">ceil</span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">assign var</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'ulHeight'</span><span class="syntaxdefault"> value</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$nbLines</span><span class="syntaxkeyword">*</span><span class="syntaxdefault">$liHeight</span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">ul style</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"height:{$ulHeight}px;"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">foreach from</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">$products item</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">product name</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">homeFeaturedProducts</span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">li class</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"ajax_block_product {if $smarty.foreach.homeFeaturedProducts.first}first_item{elseif $smarty.foreach.homeFeaturedProducts.last}last_item{else}item{/if} {if $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 0}last_item_of_line{elseif $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 1}clear{/if} {if $smarty.foreach.homeFeaturedProducts.iteration > ($smarty.foreach.homeFeaturedProducts.total - ($smarty.foreach.homeFeaturedProducts.total % $nbItemsPerLine))}last_line{/if}"</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">h5</span><span class="syntaxkeyword">><</span><span class="syntaxdefault">a href</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"{$product.link}"</span><span class="syntaxdefault"> title</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"{$product.name|truncate:32:'...'|escape:'htmlall':'UTF-8'}"</span><span class="syntaxkeyword">>{</span><span class="syntaxdefault">$product</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">name</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">truncate</span><span class="syntaxkeyword">:</span><span class="syntaxdefault">27</span><span class="syntaxkeyword">:</span><span class="syntaxstring">'...'</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">escape</span><span class="syntaxkeyword">:</span><span class="syntaxstring">'htmlall'</span><span class="syntaxkeyword">:</span><span class="syntaxstring">'UTF-8'</span><span class="syntaxkeyword">}</</span><span class="syntaxdefault">a</span><span class="syntaxkeyword">></</span><span class="syntaxdefault">h5</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">p class</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"product_desc"</span><span class="syntaxkeyword">><</span><span class="syntaxdefault">a href</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"{$product.link}"</span><span class="syntaxdefault"> title</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"{l s='More'}"</span><span class="syntaxkeyword">>{</span><span class="syntaxdefault">$product</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">description_short</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">strip_tags</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">truncate</span><span class="syntaxkeyword">:</span><span class="syntaxdefault">130</span><span class="syntaxkeyword">:</span><span class="syntaxstring">'...'</span><span class="syntaxkeyword">}</</span><span class="syntaxdefault">a</span><span class="syntaxkeyword">></</span><span class="syntaxdefault">p</span><span class="syntaxkeyword">></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault">a href</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"{$product.link}"</span><span class="syntaxdefault"> title</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"{$product.name|escape:html:'UTF-8'}"</span><span class="syntaxdefault"> class</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"product_image"</span><span class="syntaxkeyword">><</span><span class="syntaxdefault">img </span><span class="syntaxkeyword">></span><span class="syntaxdefault">getImageLink</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$product</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">link_rewrite</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $product</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">id_image</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'home'</span><span class="syntaxkeyword">)}</span><span class="syntaxstring">" height="</span><span class="syntaxkeyword">{</span><span class="syntaxdefault">$homeSize</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">height</span><span class="syntaxkeyword">}</span><span class="syntaxstring">" width="</span><span class="syntaxkeyword">{</span><span class="syntaxdefault">$homeSize</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">width</span><span class="syntaxkeyword">}</span><span class="syntaxstring">" alt="</span><span class="syntaxkeyword">{</span><span class="syntaxdefault">$product</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">name</span><span class="syntaxkeyword">|</span><span class="syntaxdefault">escape</span><span class="syntaxkeyword">:</span><span class="syntaxdefault">html</span><span class="syntaxkeyword">:</span><span class="syntaxstring">'UTF-8'</span><span class="syntaxkeyword">}</span><span class="syntaxstring">" /></a> <div> <p class="</span><span class="syntaxdefault">price_container</span><span class="syntaxstring">"><span class="</span><span class="syntaxdefault">price</span><span class="syntaxstring">">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span></p> <a class="</span><span class="syntaxdefault">button</span><span class="syntaxstring">" href="</span><span class="syntaxkeyword">{</span><span class="syntaxdefault">$product</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">link</span><span class="syntaxkeyword">}</span><span class="syntaxstring">" title="</span><span class="syntaxkeyword">{</span><span class="syntaxdefault">l s</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'View'</span><span class="syntaxkeyword">}</span><span class="syntaxstring">">{l s='View'}</a> {if ($product.quantity > 0 OR $product.allow_oosp) AND $product.customizable != 2} <a class="</span><span class="syntaxdefault">exclusive ajax_add_to_cart_button</span><span class="syntaxstring">" rel="</span><span class="syntaxdefault">ajax_id_product_</span><span class="syntaxkeyword">{</span><span class="syntaxdefault">$product</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">id_product</span><span class="syntaxkeyword">}</span><span class="syntaxstring">" href="</span><span class="syntaxkeyword">{</span><span class="syntaxdefault">$base_dir</span><span class="syntaxkeyword">}</span><span class="syntaxdefault">cart</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">php</span><span class="syntaxkeyword">?</span><span class="syntaxdefault">qty</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">&</span><span class="syntaxdefault">id</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">_product</span><span class="syntaxkeyword">={</span><span class="syntaxdefault">$product</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">id_product</span><span class="syntaxkeyword">}&</span><span class="syntaxdefault">token</span><span class="syntaxkeyword">;={</span><span class="syntaxdefault">$static_token</span><span class="syntaxkeyword">}&</span><span class="syntaxdefault">add</span><span class="syntaxkeyword">;</span><span class="syntaxstring">" title="</span><span class="syntaxkeyword">{</span><span class="syntaxdefault">l s</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'Add to cart'</span><span class="syntaxkeyword">}</span><span class="syntaxstring">">{l s='Add to cart'}</a> {else} <span class="</span><span class="syntaxdefault">exclusive</span><span class="syntaxstring">">{l s='Add to cart'}</span> {/if} </div> {/foreach} [/list] </div> {else} <p>{l s='No new arrivals'}</p> {/if} <!-- Pagination --> {if $products} {include file=$tpl_dir./pagination.tpl} {/if}</div><!-- /MODULE Home Featured Products --> </span> Wiem, że lepszym rozwiązaniem byłoby stworzenie zmodyfikowanego modułu homefeatured, ale mnie to przerasta... kończyłem ekonomie a nie informatykę. Na pewno znajdzie się programista, który to ogarnie.
  5. Paginacja produktów modułu Homefeatured

    ten przykład pokazuje że to jest możliwe: http://www.prestashop.com/forums/viewth ... my_product chciałbym jednak żeby to było w bardziej cywilizowany sposób wykonane. Drugi dzień zarywam noc i już mi głowa pęka. Przed chwilą to znalazłem ale już dzisiaj nie dam rady tego przerobić. Jak mi się uda to się podzielę. Pozdr.
  6. Dzięki użytkownikom tego forum zmodyfikowałem Homefeatured.php tak żeby wyświetlał wszystkie produkty ze swojej kategorii na pierwszej stronie. Problem w tym ze nie potrafie zrobić do tego paginacji. Moze ktoś mi podpowie co dalej? Aha i jeszcze jest problem z wyświetlaniem miniaturek. Tak to wygląda w homefeatured.php : <span class="syntaxdefault">function hookHome</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$params</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> global $smarty</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $category </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new Category</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> $nb </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> intval</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">Configuration</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">get</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'HOME_FEATURED_NBR'</span><span class="syntaxkeyword">));</span><span class="syntaxdefault"> $products </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Product</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">getProducts</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$params</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'cookie'</span><span class="syntaxkeyword">]-></span><span class="syntaxdefault">id_lang</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> NULL</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'ASC'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> include</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">).</span><span class="syntaxstring">'/pagination.php'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> $smarty</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assign</span><span class="syntaxkeyword">(array(</span><span class="syntaxstring">'products'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> $products</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'homeSize'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Image</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">getSize</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'home'</span><span class="syntaxkeyword">)));</span><span class="syntaxdefault"> return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">display</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'homefeatured.tpl'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span> Proszę o pomoc!!
×