Ajouter une pagination à la place de foreach dans Virtuemart.

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Ajouter une pagination à la place de foreach dans Virtuemart.

    Bonjour, J'utilise Joomla 2.5.11 et Virtuemart 2.0.20b.

    Je veux ajouter la pagination dans les sous-catégories de Virtuemart, j'ai cherché depuis l'administration mais je n'a pas trouver aucune option qui permet de faire ça.

    J'ai beaucoup des sous-catégories dans plusieurs catégories (exemple 55 sous catégories) donc la page a devient tellement long et pas beau.

    J'ai décidé de modifier le code source de Virtuemart, donc je suis allé à:
    /component /com_virtuemart/views/catégorie/tmpl/default.php pour ajouter la pagination, mais je ne peux pas le faire seul, quelqu'un peut-il m'aider?

    il ya donc un foreach sous la div : <div class="category-view"> qui a pour fonction de montrer toutes les catégories:

    Code PHP:
    <?php
    foreach ($this->category->children as $category) {
                
    // Show the horizontal seperator
                
    if ($iCol == && $iCategory $categories_per_row) {
                   
    ?>
                   <div class="horizontal-separator"></div>
                   <?php
                
    }

                
    // this is an indicator wether a row needs to be opened or not
                
    if ($iCol == 1) {
                   
    ?>
             <div class="row">
             <?php
                
    }

                
    // Show the vertical seperator
                
    if ($iCategory == $categories_per_row or $iCategory $categories_per_row == 0) {
                   
    $show_vertical_separator ' ';
                } else {
                   
    $show_vertical_separator $verticalseparator;
                }

                
    // Category Link
                
    $caturl JRoute::('index.php?option=com_virtuemart&view=category&virtuemart_category_id=' $category->virtuemart_category_id);

                
    // Show Category
                
    ?>
                <div class="category floatleft<?php echo $category_cellwidth $show_vertical_separator ?>"">
                   <div class="spacer">
                      <h2>
                         <a class="sous_cat" href="<?php echo $caturl ?>" title="<?php echo $category->category_name ?>">
                            
                            
                         <div >   <?php // if ($category->ids) {
                            
    echo $category->images[0]->displayMediaThumb (""FALSE);
                            
    //} ?><br/></div>
                            <div class="titre_cat"><?php echo $category->category_name ?> </div>
                         </a>
                      </h2>
                   </div>
                </div>
                <?php
                $iCategory
    ++;

                
    // Do we need to close the current row now?
                
    if ($iCol == $categories_per_row) {
                   
    ?>
                   <div class="clear"></div>
          </div>
             <?php
                   $iCol 
    1;
                } else {
                   
    $iCol++;
                }
                
    $i $i+;
             }
    Quelqu'un peut me conseiller ce qu'il faut faire pour laisser cette foreach affiche par exemple 6 sous-catégories par page? S'il est possible de le faire sans rafraîchir la page sera si bon.

    Merci
    www.tunisiesocial.com

  • #2
    Re : Ajouter une pagination à la place de foreach dans Virtuemart.

    Bien, le problème est réglé,

    J'ai modifié le foreach par un boocle while et j'ai envoyé un paramètre dans l'url pour tester la page courant, donc les boutons Suivant et Précédant renvoi la page courante JURI::current(); en plus la variable calculé (+6 et -6)

    Dans le while j'ai testé si ( la page courante +6) est valide j'affiche les sous catégorie k

    Bon si qulqu'un est besoin du code voici :

    Code PHP:
    <?php
    $saut 
    ;
            
    $page_courante $_GET["paged"] ;
            if (isset(
    $page_courante) == false $page_courante 0;
            
    $monUrl JURI::current();
            
            
    $next_page $page_courante $saut  ;
            
    $prevous_page $page_courante -$saut ;
            
            
    $NbrSouCat count($this->category->children);
            
            
            echo 
    "<div class=\"page_cour\">" ;
            if ( 
    $page_courante $saut >= -){
            if (
    $page_courante <= $prevous_page 0;
            echo 
    "<span>
                <a href=\"
    $monUrl?paged=$prevous_page\"> <button class=\"prevous_page bouton_red\"> Précédant</button></a>
                </span>"
    ;
                }
            if ( 
    $page_courante $saut $NbrSouCat )    {
            echo 
    "<span class=\"floutright\">
                <a href=\"
    $monUrl?paged=$next_page\"><button class=\"next_page bouton_red\"> Suivant </button></a>
                </span> "
    ;
                }
            echo 
    "</div>
            <div style=\"clear:both\"></div>
            " 
    ;
            
    $k$page_courante ;
            while(
    $k $page_courante $saut && $this->category->children[$k]->virtuemart_category_id != null){
                

                    
    // Show the horizontal seperator
                    
    if ($iCol == && $iCategory $categories_per_row) {
                        
    ?>
                        <div class="horizontal-separator"></div>
                        <?php
                    
    }

                    
    // this is an indicator wether a row needs to be opened or not
                    
    if ($iCol == 1) {
                        
    ?>
                <div class="row">
                <?php
                    
    }

                    
    // Show the vertical seperator
                    
    if ($iCategory == $categories_per_row or $iCategory $categories_per_row == 0) {
                        
    $show_vertical_separator ' ';
                    } else {
                        
    $show_vertical_separator $verticalseparator;
                    }

                    
    // Category Link
                    
    $caturl JRoute::('index.php?option=com_virtuemart&view=category&virtuemart_category_id=' $this->category->children[$k]->virtuemart_category_id);

                    
    // Show Category
                    
    ?>
                    <div class="category floatleft<?php echo $category_cellwidth $show_vertical_separator ?>"">
                        <div class="spacer">
                            <h2>
                                <a class="sous_cat" href="<?php echo $caturl ?>" title="<?php echo $this->category->children[$k]->category_name ?>">
                                    
                                    
                                <div class="img_sous_cat">    <?php // if ($category->ids) {
                                    
    echo $this->category->children[$k]->images[0]->displayMediaThumb (""FALSE);
                                    
    //} ?><br/></div>
                                    <div class="titre_cat"><?php echo $this->category->children[$k]->category_name ?> </div>
                                </a>
                            </h2>
                        </div>
                    </div>
                    <?php
                    $iCategory
    ++;

                    
    // Do we need to close the current row now?
                    
    if ($iCol == $categories_per_row) {
                        
    ?>
                        <div class="clear"></div>
            </div>
                <?php
                        $iCol 
    1;
                    } else {
                        
    $iCol++;
                    }
                    
    $k++ ;
                }

    ?>
    A plus.
    www.tunisiesocial.com

    Commentaire

    Annonce

    Réduire
    Aucune annonce pour le moment.

    Partenaire de l'association

    Réduire

    Hébergeur Web PlanetHoster
    Travaille ...
    X