THELIA Forum

Welcome to the THELIA support and discusssion forum

Offline


Bonjour,
Je n'arrive pas à faire fonctionner une boucle page en phase avec la boucle meilleures ventes (plugin). D'habitude, il y a toujours une astuce mais ici, je bloque. Quelqu'un a-t-il la solution ?


Y a surement un truc.

Offline


Je me réponds à moi-même :
On peut réaliser une alternative à la boucle page en utilisant le plugin FILTRECALCUL, des variables et une boucle REPETER.
C'est simple et clair, et on n'est pas limité par les paramètres de la boucle produit.
Voici le code pour un affichage de 12 produits par page :

#SET{compteur,0}
#SET{min,#FILTRE_calcul(#ENV{page,1},*,12)}
#SET{min,#FILTRE_calcul(#GET{min},-,12)}
#SET{max,#FILTRE_calcul(#GET{min},+,13)}
<THELIA_PROD type="PRODUIT">
    <TEST_selection variable="xxx" test="egal" valeur="yyy">
        #SET{compteur,#FILTRE_calcul(#GET{compteur},+,1)}
        <TEST_min variable="#GET{compteur}" test="superieur" valeur="#GET{min}">
            <TEST_max variable="#GET{compteur}" test="inferieur" valeur="#GET{max}">
<div class="produit grid_3">
</div><!-- .produit -->
            </TEST_max>
            <//TEST_max>
        </TEST_min>
        <//TEST_min>
    </TEST_selection>
    <//TEST_selection>
</THELIA_PROD>

<TEST_page variable="#GET{compteur}" test="superieur" valeur="12">
#SET{dern,#FILTRE_calcul(#GET{compteur},+,6)}
#SET{dern,#FILTRE_calcul(#GET{dern},/,12,0)}
#SET{prec,#FILTRE_calcul(#ENV{page,1},-,1)}
#SET{suiv,#FILTRE_calcul(#ENV{page,1},+,1)}
<div id="pager" class="grid_12">
    <ul>
        <TEST_prec variable="#ENV{page,1}" test="superieur" valeur="1">
        <li class="pagePrec"><a href="#URLFOND(zzz,selection=#ENV{selection}&page=#GET{prec})">::pageprecedente::</a></li>
        </TEST_prec>
        <//TEST_prec>
        <REPETER_numero debut="1" fin="#GET{dern}">
            <TEST_actuelle variable="#INDEX" test="egal" valeur="#ENV{page,1}">
        <li class="page current"><a href="" onclick="return false;">#INDEX</a></li>
            </TEST_actuelle>
        <li class="page"><a href="#URLFOND(zzz,selection=#ENV{selection}&page=#INDEX)">#INDEX</a></li>
            <//TEST_actuelle>
        </REPETER_numero>
        <TEST_suiv variable="#ENV{page,1}" test="inferieur" valeur="#GET{dern}">
        <li class="pageSuiv"><a href="#URLFOND(zzz,selection=#ENV{selection}&page=#GET{suiv})">::pagesuivante::</a></li>
        </TEST_suiv>
        <//TEST_suiv>
    </ul>
</div><!-- #pager -->
</TEST_page>
<//TEST_page>


Y a surement un truc.