kingbbq Posted October 14, 2010 Share Posted October 14, 2010 Salut à tousC'est mon premier site avec prestashop, mais je suis programmeur PHP confirmé.J'aimerais proposer un petit hack pour le système de pagination, s'il n'est pas déjà connu, si vous utilisez le nombre par défaut de produits à afficher sur une page et ce n'est pas 10 mais 12, 15, 16 etc.Dans le fichier pagination.php $nArray = intval(Configuration::get('PS_PRODUCTS_PER_PAGE')) != 10 ? array(intval(Configuration::get('PS_PRODUCTS_PER_PAGE')), 10, 20, 50) : array(10, 20, 50); asort($nArray); devient $hack_products_per_page = intval(Configuration::get('PS_PRODUCTS_PER_PAGE')); $nArray = array($hack_products_per_page, $hack_products_per_page * 2, $hack_products_per_page * 5); C'est tout simple mais très utile à mon avis.En faisant cette modification, une petite correction s'impose dans le template pagination.tpl //{if $nb_products > 10} {if $nb_products > $n} J'espère que ça va en intéresser plus d'un, merci pour vos commentairesPeace Link to comment Share on other sites More sharing options...
benj0612 Posted November 26, 2010 Share Posted November 26, 2010 hello,Un résultat en image svp ?Merci Link to comment Share on other sites More sharing options...
Sire-Sam Posted August 19, 2011 Share Posted August 19, 2011 Bonjour et merci pour cette astuce c'est exactement ce que je recherchais. Je suis actuellement en PS-1.4.4 et je me permet de mettre le topic à jour. 1.Ou est passé pagination.php ? Il semble que pagination.php n'existe plus pour retrouver la fuction pagination() vous devez vous rendre dans : /classes/FrontController.php (ligne 534 + ou -) 2. Syntaxe légèrement différente Le seul changement que j'ai pu repéré c'est intVal qui devient (int) nous avons donc ceci $nArray = (int)(Configuration::get('PS_PRODUCTS_PER_PAGE')) != 10 ? array((int)(Configuration::get('PS_PRODUCTS_PER_PAGE')), 10, 20, 50) : array(10, 20, 50); asort($nArray); qui devient cela $conf_prod_per_page = (int)(Configuration::get('PS_PRODUCTS_PER_PAGE')); $nArray = array($conf_prod_per_page, $conf_prod_per_page * 2, $conf_prod_per_page * 5); asort($nArray); C'est des petits détails mais tant qu'à faire, autant les partager ^^ Link to comment Share on other sites More sharing options...
Sire-Sam Posted August 19, 2011 Share Posted August 19, 2011 Pour aller plus loin / utilisation d'une boucle Je précise de suite que je ne suis pas un expert PHP, si vous avez des remarques ou que ma proposition vous semble aberrante (comme mon orthographe) je suis ouvert à la critique Comme nous avons pu le voir plus haut, il peut être utile de personnaliser les options d'affichage du nombre de produits par page, en fonction du nombre de produit par page configurés dans l'admin. J'ai imaginé la solution suivante //Récupération du nombre de produits par page $conf_prod_per_page = (int)(Configuration::get('PS_PRODUCTS_PER_PAGE')); //Définir les multiplicateurs pour les option d'affichage $conf_pagination_mult = array(1,2,4,10); //Compter le nombre de multiplicateurs demandé $conf_pagination_lenght = count($conf_pagination_mult); //Définir nArray comme un tableau $nArray = array(); //Faire une boucle avec le tout for ($i = 0; $i < $conf_pagination_lenght; $i++) { $nArray[$i] = $conf_prod_per_page * $conf_pagination_mult[$i]; } //Trier le résultat asort($nArray); J'espère que ma solution est correcte, si c'est le cas j'aimerais aller plus loin en pouvant définir le multiplicateur dans l'admin. exemple : - avoir un champ dans l'admin du type "définir les multiplicateurs de la pagination" - dans se champ pouvoir placer les valeur "1,2,4,10" séparés par une virgule - traité ses données pour obtenir une variable de configuration comme PS_PRODUCTS_PER_PAGE en tableau - et dès lors plutôt que de placer les multiplicateurs en dur pouvoir les récupérer de manière dynamique Quelqu'un à une piste pour moi ? (je rappel mon niveau de débutant et fait appel à votre clémence si ma demande n'à pas de sens) Merci Link to comment Share on other sites More sharing options...
Pyssou Posted July 23, 2012 Share Posted July 23, 2012 salut à tous, Je poste peut-etre au mauvais endroit même si ca concerne la pagination mais je n'arrive pas à trouver la solution: voila, mon soucis est que quand je met 10 dans la liste de produits à afficher et que ma categorie ne contient que 8 produits, la pagination disparait. Comment dois-je proceder pour que la pagination reste quand même. Merci 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