Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum osCommerce-fr _ Echanges développeurs _ [RESOLU]nombre de résultats par page

Écrit par : mosaic 12 Apr 2005, 00:20

http://www.cafepress.com/shop/democrat/browse/Ne-25_N-3949_bt-2_pv-

Sur cette page ( ce n'est pas mon site ), en bas de page, ils proposent le choix d'affichage du nombre de résultats par page

results per page: 15 | 30 | 60

Clairement, ils proposent le choix au client

Existe-t'il une contrib pour celà ?

Ou quelqu'un peut-il me guider un peu dans les démarches à effectuer

Merci par avance blush.gif

Écrit par : manmachine 12 Apr 2005, 08:38

j'ai également fait ca sur un site .

http://www.toolboxrecords.com ( login : demo@demo.com pass : demodemo , c'est un site B2B , pour les pros )


la methode est la suivante :

dans product listing on modifie le listing split comme ca par exemple :

CODE

if (!isset($_GET['resultdisplay']) || $_GET['resultdisplay'] == 0 ) {
    $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS , 'p.products_id');
 } else {
    $listing_split = new splitPageResults($listing_sql, $_GET['resultdisplay'] , 'p.products_id');
 }


on vient d'ajouter une variable $resultdisplay

pour la controler un va ensuite placer une liste deroulante dans index.php

du type :

CODE

$nbr_result = array(array('id' => '10',
                                'text' => '10' ) ,
                array('id' => '20',
                                'text' => '20' ) ,
                array('id' => '30',
                                'text' => '30' ) ,
                array('id' => '40',
                                'text' => '40' ) ,
                array('id' => '50',
                                'text' => '50' ) ,
                      array('id' => '60',
                                'text' => '60' ) ,
                array('id' => '70',
                                'text' => '70' ) ,
                array('id' => '80',
                                'text' => '80' ) ,
                array('id' => '90',
                                'text' => '90' ) ,
                   array('id' => '100',
                                'text' => '100' ));
 
echo tep_draw_form('resultdisplay',tep_href_link(FILENAME_DEFAULT),'GET') .  RECORDS_PER_PAGE;
echo tep_draw_hidden_field('cPath', $cPath);
echo tep_draw_pull_down_menu('resultdisplay',$nbr_result , MAX_DISPLAY_SEARCH_RESULTS , 'onchange="this.form.submit()"') . tep_hide_session_id();
echo '</form>' . "\n";



biensur si tu as d'autre variables a garder tu ajoute des champs caché pour ces dernieres .

wink.gif

Écrit par : Element 12 Apr 2005, 09:47

manmachine, je te félicite pour le site en question !

Écrit par : mosaic 12 Apr 2005, 19:12

Merci, celà fonctionne parfaitement blush.gif

Et en effet, très beau site

Écrit par : pjg 8 May 2005, 16:12

bonjour,

voici une fonction qui m'interesse fortement, mais si j'ai bien compris ou s'intégre le code dans le product listing, je ne vois pas ou mettre le deuxième code (dans index.php)
unsure.gif
Quelqu'un peut-il me préciser ?

Écrit par : mosaic 8 May 2005, 16:47

CODE
<div class="right"><?php $nbr_result = array(array('id' => '4',
                               'text' => '4' ) ,
               array('id' => '8',
                               'text' => '8' ) ,
               array('id' => '12',
                               'text' => '12' ) ,
               array('id' => '40',
                               'text' => '40' ) ,
               array('id' => '50',
                               'text' => '50' ) ,
                     array('id' => '60',
                               'text' => '60' ) ,
               array('id' => '70',
                               'text' => '70' ) ,
               array('id' => '80',
                               'text' => '80' ) ,
               array('id' => '90',
                               'text' => '90' ) ,
                  array('id' => '100',
                               'text' => '100' ));

echo tep_draw_form('resultdisplay',tep_href_link(FILENAME_DEFAULT),'GET') .  RECORDS_PER_PAGE;
echo tep_draw_hidden_field('cPath', $cPath);
echo tep_draw_pull_down_menu('resultdisplay',$nbr_result , MAX_DISPLAY_SEARCH_RESULTS , 'onchange="this.form.submit()"') . tep_hide_session_id();
echo '</form>' . "";            
?></div>  


juste au-dessus de l'appel au module product_listing :

<?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING_COL); ?>

Écrit par : pjg 8 May 2005, 22:52

Merci Mozaic

j'ai pas le COL à la fin de "FILENAME_PRODUCT_LISTING_COL)" mais j'imagine que cela doit être une modification de ta part ou de la crelod.

Je vais essayer, je verrais bien de toute façon....


Écrit par : mosaic 9 May 2005, 01:10

oui, désolé pour cette petite erreur mais, en effet, pour toi, celà correspond à FILENAME_PRODUCT_LISTING blush.gif

Écrit par : wen 14 May 2005, 11:51

Bonjour
Merci pour cette astuce qui est pas mal du tout.
Mais comment fait-on pour placer le choix à l'endroit où on veut dans la page ?
En effet, sur ma page de résultats, ce choix est tout en haut et cela est moche.
Merci
Wen

Écrit par : fissiaux 14 May 2005, 12:32



Peut-être que le div (nouveau joujou de mosaic) doit être encadré dans des balises tr et td, et ce à l'endroit où tu veux.

mosaic est un adepte de ccs2, où l'on travaille par div à la place de table et où les balises "se mettent dans le flux comme ils disent".

Écrit par : wen 14 May 2005, 13:45

Merci
Comme d'habitude Fissiaux t'es le roi
Wen

Écrit par : mosaic 14 May 2005, 14:50

tu peux carrément enlever les balises div d'ailleurs car dans ton cas elle ne te serve à rien blush.gif

désolé, j'arrive après la guerre mellow.gif

Écrit par : wen 14 May 2005, 16:19

Merci Mosaic
Je les avais déjà enlevées.
Fissiaux est peut-être le roi, mais tous les intervenants de ce forum sont des dieux du php et d'osc.
Enfin pour être sérieux, merci à vous tous qui nous aident tant.
Wen

Écrit par : lordbdp 25 Jan 2006, 18:34

QUOTE (manmachine @ 12 avr 2005, 08:38)
dans product listing on modifie le listing split comme ca par exemple :

CODE

if (!isset($_GET['resultdisplay']) || $_GET['resultdisplay'] == 0 ) {
    $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS , 'p.products_id');
 } else {
    $listing_split = new splitPageResults($listing_sql, $_GET['resultdisplay'] , 'p.products_id');
 }


on vient d'ajouter une variable $resultdisplay

J'ai beau chercher, je trouve pas le "listing split" ! shock.gif Il est où ? Il doit bien être dans le index.php ?

Écrit par : lordbdp 2 May 2006, 00:47

J'ai enfin trouvé ! Falait aller dans catalog/includes/modules/ pour le trouver rolleyes.gif

En revanche j'ai complété le code de mosaic après :

CODE
<td align="right"><?php echo tep_image(DIR_WS_IMAGES . $image, HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>

qui se trouve sous // Get the right image for the top-right

Ce qui me donne :
CODE
<!-- Nb produits a afficher //-->
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<div class="right" align="center"><?php $nbr_result = array(array('id' => '1',
                               'text' => '' ) ,
               array('id' => '10',
                               'text' => '10' ) ,
               array('id' => '40',
                               'text' => '40' ) ,
               array('id' => '50',
                               'text' => '50' ) ,
                     array('id' => '60',
                               'text' => '60' ) ,
               array('id' => '70',
                               'text' => '70' ) ,
               array('id' => '80',
                               'text' => '80' ) ,
               array('id' => '90',
                               'text' => '90' ) ,
                  array('id' => '100',
                               'text' => '100' ));

echo tep_draw_form('resultdisplay',tep_href_link(FILENAME_DEFAULT),'GET') .  RECORDS_PER_PAGE;
echo tep_draw_hidden_field('cPath', $cPath);
echo tep_draw_pull_down_menu('resultdisplay',$nbr_result , MAX_DISPLAY_SEARCH_RESULTS , 'onchange="this.form.submit()"') . tep_hide_session_id();
echo '</form>' . "";
?></div><br>
</tr>
</table></td>
<!-- Fin Nb produits a afficher //-->

J'ai retiré la 1ère valeur afin d'avoir la case vide au début de la liste déroulante wink.gif

Résultat visuel :
Image IPB

Voilà ! Merci à tous !

Écrit par : lordbdp 27 May 2006, 17:02

Il manque juste une fonction : Proposer uniquement le nb de produit selon disponibilité. Je m'explique, le client choisi les films DVD / Action , normalement il n'y en a que 9. Quand il veut choisir le nb de produits à afficher, il serait bien de n'avoir que les choix inférieurs ou égaux à ceux qui sont trouvés (dans cet exemple : 9).

Merci d'avance.

Écrit par : jahora 20 Jun 2006, 07:02

Quand je clic sur la page deux, celle ci ne contient pas le code et tous les produits sont affiche...
quelqu un ?

Écrit par : lordbdp 22 Jun 2006, 10:54

Tu faits appeler la commande dans quelle page ? Car je pense que tu as due te tromper de pages pour intégrer le code.

Écrit par : lordbdp 29 Aug 2006, 13:20

Pour modifier la taille du texte, il faut aller dans la CSS car je n'ai pas vu où ?

Merci d'avance.

Écrit par : Apaccy 9 Oct 2007, 06:57

Bonjour a tous smile.gif

Je me permet d'apporter moi aussi ma petite touche personnel tongue.gif ( c'est pas forcement du chipotage ... )
Si je tape dans la barre d'adresse : h**p://www.domaine.fr/catalog/index.php?cPath=24_25&resultdisplay=P , que se passe t'il ?

CODE
// in file : includes/modules/product_listing.php
// @version : MS2.2

// @instead of :
//  $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id');

  if( isset($_GET['resultdisplay']) && is_numeric($_GET['resultdisplay']) && $_GET['resultdisplay']>0 )
    $listing_split = new splitPageResults($listing_sql, $_GET['resultdisplay'] , 'p.products_id');
  else
    $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS , 'p.products_id');

Écrit par : AL1 14 Mar 2012, 15:23

Bonjour à tous,

Un peut de déterrage... J'essayes d'adapter cet excelent code sur "advanced_search_result.php", à priori la page n'est pas construite de la même manière. Quelqu'un aurait-il une piste?

Merci à tous

Alain

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)