[(#REM)*********************** Début de la zone d 'affichage des articles trouves dans la recherche multicritères.*********************]
Nouvelle recherche
[(#REM) On rappelle les mots clés sélectionnés par l'utilisateur. ] [(#REM) Ca ne s'affiche pas au chargement de la page. Ca ne s'affiche que si la boucle motcleM est appelée, càd si on a cliqué sur le submit du formulaire.] [(#REM) Si on n'a rien choisi dans les selects et qu'on clique submit, l'affichage renvoie "vous avez choisi d'utiliser 0 mot clé" et "0 article trouvé".] #SET{ajouteun,1} #SET{addition,0}

<:resultats_recherche:>

 

Dans votre recherche, vous avez choisi d'utiliser [(#GET{addition})] [(#GET{addition}|=={0}|?{'mot clé.',[(#GET{addition}|>{1}|?{'mots clés :','mot clé :'})]})]

  1. [(#TYPE|supprimer_numero)] : [(#TITRE|supprimer_numero)][(#LOGO_MOT|image_reduire{20,20})]
  2. #SET{addition, #GET{addition}|plus{#GET{ajouteun}}}

[(#REM) Puis on construit le tableau qui contient tous les articles qui correspondent à au moins 1 mot clé sélectionné] #SET{art_select,#ARRAY} #SET{art_select, #GET{art_select}|push{ #ID_ARTICLE }} [(#REM) Pour afficher le résultat du tableau, ajouter ici [(#GET{art_select}|foreach)] ] [(#REM) On finit par lister les articles qui apparaissent au moins une fois dans le tableau art_select (voir boucle BOUCLE_rangement) et le nombre de mots-clefs correspondant (voir boucle BOUCLE_ingr) ] #SET{un, 1} #SET{compteur_1, #ARRAY} #SET{compteur_2, #ARRAY} #SET{compteur_3, #ARRAY} #SET{compteur_4, #ARRAY} [(#REM) Chaque article nouveau qui passe dans la boucle BOUCLE_rangement vient du tableau art_select (càd que c'est un article relié à AU MOINS un mot clé parmi les mots clé sélectionnés).] [(#REM) Le compteur de mots clés sélectionnés reliés à l'article est une variable dont la valeur démarre à zéro pour chaque article nouveau qui passe dans la boucle BOUCLE_rangement.] #SET{compteur_sup,0} [(#REM) Pour chaque article qui passe, on récupère l'id de l'article dans la variable article ci-dessous.] #SET{article,#ID_ARTICLE} [(#REM) on regarde dans le tableau art_select si le même article apparaît plusieurs fois.] [(#REM) Explication : un même article peut appraître plusieurs fois, parce que art_select liste les articles qui on AU MOINS un mot clé parmi les mots clé sélectionnés ;] [(#REM) donc si un article a 4 mots clés (A, B, C et D), il apparaît 1 fois pour A, 1 fois pour A+B, 1 fois pour A+B+C, 1 fois pour A+B+C+D ; donc ça fait 4 fois.] [(#REM) #VALEUR correspond à un #ID_ARTICLE dans le tableau art_select (on peut l'afficher avec #CLE=>#VALEUR) .] [(#REM) On récupère l'id de l'article dans la variable valeur.] #SET{valeur,#VALEUR} [(#REM) Chaque fois que la soustraction des 2 id d'articles est égale à zéro, ça veut dire que les id étaient identiques.] [(#REM) On fait la soustraction.] #SET{dif, #GET{valeur}|moins{#GET{article}}} [(#REM) Si le résiultat = 0, alors on incrémente la variable compteur_sup de 1 grâce à son addition avec la variable un. ] [(#GET{dif}|=={0}|oui) #SET{compteur_sup, #GET{compteur_sup}|plus{#GET{un}}}] [(#REM) A la fin (au sortir de BOUCLE_ingr), compteur_sup a une valeur maximale, qui correspond au nombre maximum de mots clés sélectionnés auxquels l'article qui passe dans BOUCLE_rangement est relié.] [(#REM) On peut aussi afficher ici #GET{compteur_sup} pour vérifier combien il vaut.] [(#REM) Ci-dessous, j'ai une ligne par compteur numéroté.] [(#REM) Ca va me permettre de classer l'article en fonction du nombre maximum de mots clés sélectionnés auxquels il est relié.] [(#REM) Chaque compteur numéroté est un tableau ARRAY vide au départ.] [(#REM) La boucle BOUCLE_ingr m'a donné le nombre maximal de mots clé reliés à l'article en train de passer dans la boucle BOUCLE_rangement.] [(#REM) Ce nombre, c'est la valeur de compteur_sup. ] [(#REM) Si la valeur de compteur_sup = 4, je colle le id de l'article dans le tableau compteur_4. Si sa valeur = 3, je colle le id de l'article dans le tableau compteur_3. Etc. ] [(#GET{compteur_sup}|=={4}|oui) #SET{compteur_4, #GET{compteur_4}|push{#ID_ARTICLE}}] [(#GET{compteur_sup}|=={3}|oui) #SET{compteur_3, #GET{compteur_3}|push{#ID_ARTICLE}}] [(#GET{compteur_sup}|=={2}|oui) #SET{compteur_2, #GET{compteur_2}|push{#ID_ARTICLE}}] [(#GET{compteur_sup}|=={1}|oui) #SET{compteur_1, #GET{compteur_1}|push{#ID_ARTICLE}}] [(#REM) Mon formulaire contient 4 select, chacun pour un groupe de mots, les options des select c'est pour les mots du groupe).] [(#REM) Mes select ne sont pas multiples, donc un seul mot de chaque groupe sera sélectionné. Cela me fait 4 mots clés sélectionnables au max.] [(#REM) C'est pour ça qu'ici j'ai fait 4 compteurs numérotés.] [(#REM) Si les selects étaient multiples (plusieurs mots sélectionnables dans un select-groupe), ou si on avait des cases à cocher, on pourrait s'amuser à proposer des centaines de mots clés sélectionnables.] [(#REM) Donc il faudrait remplacer 4 par le nombre maxi de mots clés sélectionnables (ex: 150), puis créer des compteurs numérotés dégressifs (149,148, etc.).] [(#REM) Mais intellectuelmlement, l'utilisateur ne peut suivre que si on lui propose que peu de critères-groupes de choix. ] [(#REM) Avec des selects multiples, ou des cases à cocher, il faudrait donc, si les mots clés sont nombreux, ranger ces mots clés dans des critères-groupes de choix au sein desquels un seul choix n'est possible.] [(#REM) L'important, c'est de s'organiser pour ne pas avoir trop de mots clés à gérer ici.] [(#REM) Si je modifie mon formulaire, je dois ajouter (ou enlever des compteurs numérotés ci-dessous. ] [(#REM) Pour voir le tableau des compteurs numérotés écrire ici : [(#GET{compteur_4}|foreach)]
[(#GET{compteur_1}|foreach)]
[(#GET{compteur_2}|foreach)]
[(#GET{compteur_3}|foreach)]
]
[(#REM) Code optionnel "après" de la boucle B_motcleM (ne s'affiche que si la boucle B_motcleM contient au moins une réponse).] [(#REM) Ca ne s'affiche pas au chargement de la page. ] [(#REM) Ca ne s'affiche que si la boucle motcleM est appelée (càd si on a cliqué sur le submuit du formulaire).] [(#REM) On affiche le nombre d'articles trouvés dans la boucle rangement.]

[(#_rangement:GRAND_TOTAL)] [(#_rangement:GRAND_TOTAL|>{1}|?{'articles trouvés :','article trouvé.'})]


[(#REM) On affiche les articles trouvés en fonction des mots clés correspondants à ceux sélectionnés par l'utilisateur.] [(#REM) Pour le faire, on va chercher les résultats dans les tableaux compteurs numérotés. On a donc ci-dessous 4 boucles affichage groupe numérotées.] [(#REM) rappel #GET{addition}, c'est le Total des mots clés cochés dans la recherche.] [(#REM) --------------- Affichage groupe 4: articles reliés à 4 mots clés. ---------------------] [(#REM) --------------------------------------------------------------------------------------- ]
[(#ANCRE_PAGINATION|vide)]

[(#_affichage_groupe4:TOTAL_BOUCLE)] [(#_affichage_groupe4:TOTAL_BOUCLE|>{1}|?{'articles ont','article a'})] une correspondance de 4 mots clés sur [(#GET{addition})] :

 

  • [(#LOGO_ARTICLE{#URL_ARTICLE}|image_reduire{50,50})]

    [(#TITRE|supprimer_numero)]

    [(#DATE|affdate_jourcourt)][, <:par_auteur:> (#LESAUTEURS)]
  • [(#REM) Ci-dessous, les mots clé sélectionnés qui sont associés à l'article.] [(#REM) Pour que l'utilisateur sache sur la base de quel(s) mot(s) clé(s) cet article peut être intéressant à aller voir.] Mots correspondants : [(#REM) On reliste les mots clés sélectionnés par l'utilisateur, mais on ne les affiche pas de suite.] [(#REM) Pour les lister, on reprend la même boucle mots qu'au début, mais on lui ajoute le critère {id_article=#ID_ARTICLE} .] [(#TITRE|supprimer_numero)] -

[

(#PAGINATION{page})

]

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

[(#REM) Pas d'articles reliés. ] [(#REM) --------------- Affichage groupe 3: articles reliés à 3 mots clés. ---------------------] [(#REM) --------------------------------------------------------------------------------------- ]
[(#ANCRE_PAGINATION|vide)]

[(#_affichage_groupe3:TOTAL_BOUCLE)] [(#_affichage_groupe3:TOTAL_BOUCLE|>{1}|?{'articles ont','article a'})] une correspondance de 3 mots clés sur [(#GET{addition})] :

 

  • [(#LOGO_ARTICLE{#URL_ARTICLE}|image_reduire{50,50})]

    [(#TITRE|supprimer_numero)]

    [(#DATE|affdate_jourcourt)][, <:par_auteur:> (#LESAUTEURS)]
  • [(#REM) Ci-dessous, les mots clé sélectionnés qui sont associés à l'article.] [(#REM) Pour que l'utilisateur sache sur la base de quel(s) mot(s) clé(s) cet article peut être intéressant à aller voir.] Mots correspondants : [(#REM) On reliste les mots clés sélectionnés par l'utilisateur, mais on ne les affiche pas de suite.] [(#REM) Pour les lister, on reprend la même boucle mots qu'au début, mais on lui ajoute le critère {id_article=#ID_ARTICLE} .] [(#TITRE|supprimer_numero)] -

[

(#PAGINATION{page})

]

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

[(#REM) Pas d'articles reliés. ] [(#REM) --------------- Affichage groupe 2: articles reliés à 2 mots clés. ---------------------] [(#REM) --------------------------------------------------------------------------------------- ]
[(#ANCRE_PAGINATION|vide)]

[(#_affichage_groupe2:TOTAL_BOUCLE)] [(#_affichage_groupe2:TOTAL_BOUCLE|>{1}|?{'articles ont','article a'})] une correspondance de 2 mots clés sur [(#GET{addition})] :

 

  • [(#LOGO_ARTICLE{#URL_ARTICLE}|image_reduire{50,50})]

    [(#TITRE|supprimer_numero)]

    [(#DATE|affdate_jourcourt)][, <:par_auteur:> (#LESAUTEURS)]
  • [(#REM) Ci-dessous, les mots clé sélectionnés qui sont associés à l'article.] [(#REM) Pour que l'utilisateur sache sur la base de quel(s) mot(s) clé(s) cet article peut être intéressant à aller voir.] Mots correspondants : [(#REM) On reliste les mots clés sélectionnés par l'utilisateur, mais on ne les affiche pas de suite.] [(#REM) Pour les lister, on reprend la même boucle mots qu'au début, mais on lui ajoute le critère {id_article=#ID_ARTICLE} .] [(#TITRE|supprimer_numero)] -

[

(#PAGINATION{page})

]

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

[(#REM) Pas d'articles reliés. ] [(#REM) --------------- Affichage groupe 1: articles reliés à 1 mot clé. ---------------------] [(#REM) --------------------------------------------------------------------------------------- ]
[(#ANCRE_PAGINATION|vide)]

[(#_affichage_groupe1:TOTAL_BOUCLE)] [(#_affichage_groupe1:TOTAL_BOUCLE|>{1}|?{'articles ont','article a'})] une correspondance de 1 mot clé sur [(#GET{addition})] :

 

  • [(#LOGO_ARTICLE{#URL_ARTICLE}|image_reduire{50,50})]

    [(#TITRE|supprimer_numero)]

    [(#DATE|affdate_jourcourt)][, <:par_auteur:> (#LESAUTEURS)]
  • [(#REM) Ci-dessous, les mots clé sélectionnés qui sont associés à l'article.] [(#REM) Pour que l'utilisateur sache sur la base de quel(s) mot(s) clé(s) cet article peut être intéressant à aller voir.] Mots correspondants : [(#REM) On reliste les mots clés sélectionnés par l'utilisateur, mais on ne les affiche pas de suite.] [(#REM) Pour les lister, on reprend la même boucle mots qu'au début, mais on lui ajoute le critère {id_article=#ID_ARTICLE} .] [(#TITRE|supprimer_numero)] -

[

(#PAGINATION{page})

]

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

[(#REM) Pas d'articles reliés. ] [(#REM) Balises de fin de la boucle B_motcleM. ]
[(#REM)*********************** Fin de la zone d 'affichage des articles trouves dans la recherche multicritères.*********************]