saetine Posted October 9, 2012 Share Posted October 9, 2012 Bonjour, Sur ma page d'accueil j'ai un module pour mes produits phares (différent du natif prestashop) cependant celui-ci ne prend pas en compte la préférence de tri des produits par position. Les produits restent bloqués sur le tri par le numéro des produits. Quelqu'un aurait'il la ligne de code à insérer dans mon tpl pour prendre en compte la position des produits? Je vous remercie par avance pour ce petit coup de pouce Link to comment Share on other sites More sharing options...
math_php Posted October 9, 2012 Share Posted October 9, 2012 (edited) Bonjour, C'est pas vraiment dans le tpl qu'il faut faire ça, c'est plutot dans le php du fichier nom_du_module.php qu'il faut faire une modification. Si c'est un 'produits phares' customisé il faut nous montrer le code précité. Cordialement Edited October 9, 2012 by math_php (see edit history) Link to comment Share on other sites More sharing options...
saetine Posted October 9, 2012 Author Share Posted October 9, 2012 merci pour votre réponse, voici le php du module concerné if (!defined('_PS_VERSION_')) exit; class HomeFeatured extends Module { private $_html = ''; private $_postErrors = array(); function __construct() { $this->name = 'homefeatured'; $this->tab = 'front_office_features'; $this->version = '0.9'; $this->author = 'PrestaShop'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Featured Products on the homepage'); $this->description = $this->l('Displays Featured Products in the middle of your homepage.'); } function install() { if (!Configuration::updateValue('HOME_FEATURED_NBR', 8) OR !parent::install() OR !$this->registerHook('home')) return false; return true; } public function getContent() { $output = '<h2>'.$this->displayName.'</h2>'; if (Tools::isSubmit('submitHomeFeatured')) { $nbr = (int)(Tools::getValue('nbr')); if (!$nbr OR $nbr <= 0 OR !Validate::isInt($nbr)) $errors[] = $this->l('Invalid number of products'); else Configuration::updateValue('HOME_FEATURED_NBR', (int)($nbr)); if (isset($errors) AND sizeof($errors)) $output .= $this->displayError(implode('<br />', $errors)); else $output .= $this->displayConfirmation($this->l('Settings updated')); } return $output.$this->displayForm(); } public function displayForm() { $output = ' <form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post"> <fieldset><legend><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Settings').'</legend> <p>'.$this->l('In order to add products to your homepage, just add them to the "home" category.').'</p><br /> <label>'.$this->l('Number of products displayed').'</label> <div class="margin-form"> <input type="text" size="5" name="nbr" value="'.Tools::safeOutput(Tools::getValue('nbr', (int)(Configuration::get('HOME_FEATURED_NBR')))).'" /> <p class="clear">'.$this->l('The number of products displayed on homepage (default: 10).').'</p> </div> <center><input type="submit" name="submitHomeFeatured" value="'.$this->l('Save').'" class="button" /></center> </fieldset> </form>'; return $output; } function hookHome($params) { global $smarty; $category = new Category(1, Configuration::get('PS_LANG_DEFAULT')); $nb = (int)(Configuration::get('HOME_FEATURED_NBR')); $products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10)); $smarty->assign(array( 'products' => $products, 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'homeSize' => Image::getSize('home'))); return $this->display(__FILE__, 'homefeatured.tpl'); } } Link to comment Share on other sites More sharing options...
math_php Posted October 10, 2012 Share Posted October 10, 2012 Bonjour, Normalement l'affichage doit déjà se faire par défaut en position ( par rapport au code source de la version 1.4.9) Sinon vous pouvez essayer de modifier la ligne $products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10)); par $products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10),'position'); Si ça ne marche pas : Là c'est dans la classe Category de Prestashop que ça se joue, regardez la méthode getProducts pour voir si il y a le paramètre optionnel $orderBy. Ca peut dépendre de votre version de Prestashop. Link to comment Share on other sites More sharing options...
saetine Posted October 10, 2012 Author Share Posted October 10, 2012 Merci pour cette réponse, J'ai testé en modifiant le php du module, ça ne fonctionne toujours pas. Effectivement dans category je n'ai pas $orderby. pourriez-vous me donner la ligne de code à insérer? mes connaissances sur le php sont extrèmement limitées Merci d'avance! Link to comment Share on other sites More sharing options...
math_php Posted October 10, 2012 Share Posted October 10, 2012 Je peux voir le code de la méthode getProducts en entier ? Ca servira à modifier le module directement, sans chambouler le reste de prestashop. Ca va marcher Link to comment Share on other sites More sharing options...
Virtu Posted October 10, 2012 Share Posted October 10, 2012 (edited) Bonjour a tous pour ma part le module homefeatured refuse de centrer l'image du produit je n'arrive même pas a ouvrir les fichers .php .tpl donc je ne peut pas le modifier et je n'en trouve pas d'autres à telecharger je ne serais pas contre un coup de main. Cordialement, Virtu. http://www.universel-informatique.fr/ Edited October 10, 2012 by Virtu (see edit history) Link to comment Share on other sites More sharing options...
math_php Posted October 10, 2012 Share Posted October 10, 2012 Bonjour a tous pour ma part le module homefeatured refuse de centrer l'image du produit je n'arrive même pas a ouvrir les fichers .php .tpl donc je ne peut pas le modifier et je n'en trouve pas d'autres à telecharger je ne serais pas contre un coup de main. Bonjour Virtu, Tu n'as pas d'accès ftp à ton site ? Si tu ne peux pas modifier les fichiers php, tpl ou css c'est plus que compliqué. Pour 'Un coup de main' il faut des informations comme la version de ton Prestashop, l'origine de ton module s'il n'est pas standard, savoir si tu peux accéder aux fichiers, centrage par rapport à la hauteur, la largeur, etc... Link to comment Share on other sites More sharing options...
saetine Posted October 11, 2012 Author Share Posted October 11, 2012 Voici le catégory.php include(dirname(__FILE__).'/config/config.inc.php'); ControllerFactory::getController('CategoryController')->run(); Et le catégory.tpl {include file="$tpl_dir./breadcrumb.tpl"} {include file="$tpl_dir./errors.tpl"} {if isset($category)} {if $category->id AND $category->active} {if $scenes} <!-- Scenes --> {include file="$tpl_dir./scenes.tpl" scenes=$scenes} {else} <!-- Category image --> {if $category->id_image} <div class="align_center"> <img src="{$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category')}" alt="{$category->name|escape:'htmlall':'UTF-8'}" title="{$category->name|escape:'htmlall':'UTF-8'}" id="categoryImage" width="{$categorySize.width}" height="{$categorySize.height}" /> </div> {/if} {/if} {if $category->description} <div class="cat_desc">{$category->description}</div> {/if} {if isset($subcategories)} <!-- Subcategories --> <div id="COLLECTIONS"> <h3>{l s=' '}</h3> <ul class="inline_list"> {foreach from=$subcategories item=subcategory} <li> <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}" title="{$subcategory.name|escape:'htmlall':'UTF-8'}"> {if $subcategory.id_image} <img src="{$link->getCatImageLink($subcategory.link_rewrite, $subcategory.id_image, 'medium')}" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" /> {else} <img src="{$img_cat_dir}default-medium.jpg" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" /> {/if} </a><br /> <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}">{$subcategory.name|escape:'htmlall':'UTF-8'}</a> </li> {/foreach} </ul> <br class="clear"/> </div> {/if} {if $products} {include file="$tpl_dir./product-sort.tpl"} {include file="$tpl_dir./product-list.tpl" products=$products} {include file="$tpl_dir./product-compare.tpl"} {include file="$tpl_dir./pagination.tpl"} {elseif !isset($subcategories)} <p class="warning">{l s='There are no products in this category.'}</p> {/if} {elseif $category->id} <p class="warning">{l s='This category is currently unavailable.'}</p> {/if} {/if} Merci encore! Link to comment Share on other sites More sharing options...
math_php Posted October 11, 2012 Share Posted October 11, 2012 Presque, sauf qu'il nous faut le classes/category.php qui se trouve dans le dossier classes. Si tu cliques sur more reply options tu peux meme nous joindre le fichier. Cordialement. Link to comment Share on other sites More sharing options...
saetine Posted October 11, 2012 Author Share Posted October 11, 2012 voilà ^^' category.php Link to comment Share on other sites More sharing options...
Virtu Posted October 11, 2012 Share Posted October 11, 2012 Bonjour Virtu, Tu n'as pas d'accès ftp à ton site ? Si tu ne peux pas modifier les fichiers php, tpl ou css c'est plus que compliqué. Pour 'Un coup de main' il faut des informations comme la version de ton Prestashop, l'origine de ton module s'il n'est pas standard, savoir si tu peux accéder aux fichiers, centrage par rapport à la hauteur, la largeur, etc... Bonjour math_PHP si si bien sur que j'ai un acces FTP manquerais plus que cela je ne peu juste pas ouvrir les fichier je crois que je ne dispose pas du logiciel pour le faire et ces vrais que j'ai pas pense a citer ma versoins de prestashop qui et PrestaShop™ 1.4.9.0 en te remerciant Cordialement, Virtu www.universel-informatique.fr Link to comment Share on other sites More sharing options...
math_php Posted October 11, 2012 Share Posted October 11, 2012 Ok bonne nouvelle, il n'y a rien a faire. Par défaut les articles sont obligatoirement trié par position. C'est peut être juste un renouvellement de cache qui ne se fait pas et qui t'affiche les anciennes positions. Dans l'onglet 'Préférences/Performances force la compilation, désactive le cache, visualise les changements et remets les réglages comme avant. Tu peux aussi éventuellement vider le dossier /tools/smarty/compile en sortant tous les xxxx.tpl.php Cordialement Link to comment Share on other sites More sharing options...
math_php Posted October 11, 2012 Share Posted October 11, 2012 Bonjour math_PHP si si bien sur que j'ai un acces FTP manquerais plus que cela je ne peu juste pas ouvrir les fichier je crois que je ne dispose pas du logiciel pour le faire et ces vrais que j'ai pas pense a citer ma versoins de prestashop qui et PrestaShop™ 1.4.9.0 en te remerciant Cordialement, Virtu www.universel-informatique.fr En fait toi c'est le zoom au survol que tu veux "centré sur l'écran". Ton module n'est pas standard ou j'ai loupé quelque chose ? Pour ouvrir un fichier tpl ou php prend notepad++ qui est gratuit. Link to comment Share on other sites More sharing options...
Virtu Posted October 11, 2012 Share Posted October 11, 2012 ok merci pour notepad++ , je ne sais pas si le module et standard mais mon probleme et que dans les produits phares j'ai l'image du produit qui ce decale du cadre tu peut le voir sur mon site www.universel-informatique.fr je trouve que cela n'ai pas presentable pour commencer les ventes cela ne fait pas trés sérieux Virtu je suis également sur TeamSpeak si tu souhaite nous rejoindre voilà l'adresse: 176.31.226.59:9987 Mot de passe: enclosure Link to comment Share on other sites More sharing options...
saetine Posted October 11, 2012 Author Share Posted October 11, 2012 (edited) j'avais déjà vidé le cache et forcé la compile, supprimé les fichiers... mais rien n'y fait :/ Les produits du module produits phares sont toujours triés par leur numéro et non par leur position... Edited October 11, 2012 by saetine (see edit history) Link to comment Share on other sites More sharing options...
saetine Posted October 13, 2012 Author Share Posted October 13, 2012 personne a une petite idée??? Link to comment Share on other sites More sharing options...
math_php Posted October 13, 2012 Share Posted October 13, 2012 Sur ma page d'accueil j'ai un module pour mes produits phares (différent du natif prestashop) cependant celui-ci ne prend pas en compte la préférence de tri des produits par position. Bonjour Saetine, Il y a une solution, mais ce que tu nous montres c'est du code standard pas 'différent du natif'. Peut etre qu'effectivement tu as un homefeatured différent, mais tu nous donne les codes du standard ? On peut voir le site ? As tu d'autres éléments ? Cordialement Link to comment Share on other sites More sharing options...
saetine Posted October 15, 2012 Author Share Posted October 15, 2012 bonjour, alors le site: www.allure-animale.com Que souhaite tu comme code sur le standard pour comparer? Sachant que le standard n'est pas installé dans mon back office mais je l'ai conservé à coté dans des documents. J'avoue que je desespere un peu car j ai vraiment besoin d'organiser ma page d'accueil... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now