THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour amis théliens,

Je souhaiterais classer les produits en fonction de leur caractéristique, mais je n'arrive pas à trouver comment faire. Dans la boucle produit, on peut classer par ref, prixmin, prixmax, etc mais pas par caracdisp ou caracval.

Est-ce possible ?

Merci,

A.


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


Salut, oui c'est possible avec les entrées "caracteristique" et "caracdisp"

Exemple :

1: Couleur
--1: Blanc
--2: Bleu
2 : Diamètre
--3: grand
--4: petit
--5: moyen
3 : Hauteur
--6: grand
--7: petit
--8: moyen

boucle pour un produit blanc/grand/moyen

<THELIA_p type="PRODUIT" caracteristique="1-2-3" caracdisp="1-3-8">

La seule limite est que l'on ne peut pas demander de rechercher plusieurs caracdisp pour une même caractéristique

Impossible de cherche un produit bleu (et/ou) blanc par exemple.

<THELIA_p type="PRODUIT" caracteristique="1" caracdisp="1-2">

ne marche pas.

Aprèspour afficher tous les produits d'une ou plusieurs valeurs de caracteristique quelle que soit la valeur de caracdisp

<THELIA_PROD type="PRODUIT" caracteristique="3-" caracdisp="*-">

Pour afficher tous les produits d'une ou plusieurs valeur de caracteristique sans valeur de caracdisp

<THELIA_PROD type="PRODUIT" caracteristique="3-" caracdisp="--">

mon blog - http://etienne.roudeix.net

Offline


Je pousse la complexité : peut-on classer par caracdisp, dans l'ordre alphabétique ?
Si on reprend ton exemple ci-dessus :
1: Couleur
--1: Blanc
--2: Bleu
--3: Vert
--4: Rouge
--5: Jaune

Je voudrais avoir tous les produits classés dans l'ordre alphabétique :
Blanc / Bleu / Jaune / Rouge / Vert

j'ai essayé la boucle :

<THELIA_PROD type="PRODUIT" caracteristique="3-" caracdisp="*-" classement="alpha">

mais ça ne donne rien.


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


Il faut essayer, mais je pense que ça doit marcher.


mon blog - http://etienne.roudeix.net

Offline


Mais on ne peut toujours pas trier par "poids"
ou par "ecotaxe"
ou "référence"

en standard

n'est-il pas ?

Offline


Et bien on peut trier dans la boucle produit par (en 1.5.2) :

prixmin
prixmax
rubrique
manuel
inverse
date
titre
titreinverse
ref
promo

Et on peut les cumuler.


mon blog - http://etienne.roudeix.net

Offline


Par référence effectivement ça fonctionne.

Mais par poids ce serait bien aussi.

juste une petite ligne à ajouter :

 else if($listeClassement[$i] == "poids") $choixClassement[]= "poids";

smile

Offline


Voici ma boucle, pour afficher une liste de produits avec la caractéristique associée.

			<!-- affichage du produit -->
				<div class="petitBlocProduitDept">
					<THELIA_PROD type="PRODUIT" rubrique="#ID" id="#PRODUIT_ID" classement="ref" num="37">
						<table class="contenu">
							<tr class="description">
								<td width="220"><a href="#URL">#TITRE</a></td>
								<td width="200">#CHAPO</td>
									<td width="150"><!-- affichage du thème -->
									<THELIA_PROD type="PRODUIT" ref="#PRODUIT_REF" caracteristique="1" id="#ID" > 
										<THELIA_CARACTITRES type="CARACTERISTIQUE" produit="#ID" id="1" affiche="1" >
											<THELIA_CARACVALEURS type="CARACVAL" caracteristique="#ID" produit="#PRODUIT">
												#VALEUR
											</THELIA_CARACVALEURS>
										</THELIA_CARACTITRES>
									</THELIA_PROD>					   	
									</td>
								<td><a class="acheter" href="#URL"><span><span>::infosup::</span></span></a></td>
							</tr><!-- fin de description -->
						</table><!-- fin de contenu -->
					</THELIA_PROD>
        		</div><!-- fin de petitBlocProduit -->

Pour l'instant, j'ai mis un classement par ref, mais je voudrais trier par caractéristique dans l'ordre alphabétique, donc. J'ai essayé différentes combinaisons, mais je n'obtiens pas le résultat souhaité.
Peut-être est-ce ma boucle qui ne va pas ? Elle affiche pourtant bien ce que je veux... à part le tri ;-)


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


Bon j'ajoute le poids pour Thelia 1.5.3 smile

En fait ton code est bon mais pour le classement il ne cumule pas les boucles. Il classe chaque boucle indépendamment et les affiche l'une en dessous des autres dans l'ordre ou elles sont appelées. Tu ne peux pas avoir un classement - ni au passage une pagination - correct à partir du moment ou tu es obligée de faire plusieurs boucles produits.


mon blog - http://etienne.roudeix.net

Offline


Et pourtant, la pagination marche correctement. (voir le site : http://www.grandsudinsolite.fr, à peine mis en ligne et encore en finition)
Je vais donc continuer mon classement par ref. D'ailleurs, à ce sujet (mais peut-être devrais-je ouvrir un autre topic...), n'y a-t-il pas moyen de dupliquer une fiche avec ses photos (pour l'instant, quand je duplique une fiche, les photos ne suivent pas) ?

Merci beaucoup, Etienne, en tout cas.


v. 1.5.4 - v 2.3.4 - v 2.4.3

Offline


Merci Etienne,

ça m'évitera de patcher à nouveau.

Et je suis sûr que ça rendra service à d'autres personnes.

Créer un plugin pour une ligne de code ce n'est pas rentable.
En plus je ne me suis même pas posé la question de savoir si c'était possible.

Offline


alazais wrote:

D'ailleurs, à ce sujet (mais peut-être devrais-je ouvrir un autre topic...), n'y a-t-il pas moyen de dupliquer une fiche avec ses photos (pour l'instant, quand je duplique une fiche, les photos ne suivent pas) ?

Oui les images ne suivent pas dans la duplication de base, ni les caractéristiques ni rien, juste le bloc de description.

il y a le plugin duplicomp qui duplique intégralement les fiches produits.

http://pluginsthelia.svn.sourceforge.ne … duplicomp/


mon blog - http://etienne.roudeix.net

Offline


Léon wrote:

Par référence effectivement ça fonctionne.

Mais par poids ce serait bien aussi.

juste une petite ligne à ajouter :

 else if($listeClassement[$i] == "poids") $choixClassement[]= "poids";

smile

Cela ce met où ? Est-ce fonctionnel genre : "poids" et "poidsinverse" ?

etienne_ wrote:

Bon j'ajoute le poids pour Thelia 1.5.3 smile

Est-ce effectif ? Car dans le Wiki pas de trace de classement par poids pour les produits… snif.

Last edited by momo-fr (03-04-2014 10:25:43)

Offline


Exemple pour classement :

<p><a href="#URLFOND(rubrique)&amp;id_rubrique=#RUBRIQUE_ID&amp;classement=poids">::Poids::</a></p>

Offline


Ok mais là tu passes par une variable dans l'URL de la page, moi j'ai un menu tel que :

          <!-- Affichage menu de tri -->
          <div class="tri_menu">
            <form action="" method="post" id="trier">
              <strong>::tri_par:: :</strong>
              <select name="classement" onchange="document.getElementById('trier').submit();return false;">
                <option value="manuel" "selected">::tri_std::</option>
                <option value="prixmin" #FILTRE_egalite(#PRODUIT_CLASSEMENT||prixmin||selected="selected")>::prix_plus::</option>
                <option value="prixmax" #FILTRE_egalite(#PRODUIT_CLASSEMENT||prixmax||selected="selected")>::prix_moins::</option>
                <option value="titre" #FILTRE_egalite(#PRODUIT_CLASSEMENT||titre||selected="selected")>::nom_AZ::</option>
                <option value="titreinverse" #FILTRE_egalite(#PRODUIT_CLASSEMENT||titreinverse||selected="selected")>::nom_ZA::</option>
                <option value="poids" #FILTRE_egalite(#PRODUIT_CLASSEMENT||poids||selected="selected")>::par_poids::</option>
              </select>
            </form>
          </div>
          <!-- Fin affichage menu de tri -->

Qui va taper dans l'appel de la liste des produits tel que :

  <THELIA_PROD type="PRODUIT" classement="#PRODUIT_CLASSEMENT" rubrique="#RUBRIQUE_ID" nouveaute="#PRODUIT_NOUVEAUTE" promo="#PRODUIT_PROMO" num="#RUBRIQUE_LIEN" caracteristique="2-" caracdisp="8-">

Et là ce paramètre de "poids" ne fonctionne pas…

EDIT : boulshit ça marche !!! J'avais commis une horrible erreur de syntaxe… smile

Merci ! tongue

Last edited by momo-fr (03-04-2014 12:24:45)