CMS Automne
http://www.automne-cms.org/forum/

[Résolu] Modele de rangées listant les catégories.
http://www.automne-cms.org/forum/viewtopic.php?f=2&t=750
Page 1 sur 1

Auteur:  celesta [ Ven Déc 17, 2010 8:31 am ]
Sujet du message:  [Résolu] Modele de rangées listant les catégories.

Bonjour,

J'ai créé un polymod appelé "psites_web"
Le module contient entre autre une catégorie appelé "Type"

Le souhaite créé une rangé contenant la liste des catégories avec pour chacune les objets la contenant.


Voici l'apparence souhaitée

<Catégorie1>
------------------------------------------------------------------------------------
<objet1> <objet2> <objet3> ...

<Catégorie2>
------------------------------------------------------------------------------------
<objet4> <objet5> <objet6> ...

...


Je n'arrive pas pour l'instant a créer simplement la liste des catégories (la page est vide).
Voici le code que j'ai mis:

<row>
<block module="psites_web" id="psites_web" language="fr">
<atm-function function="categoriesTree" object="{Sites_Web:Type}" root="0" >
<item><li class="{lvl}"> ... {id} ... {label} ... {sublevel} ... </li></item>
<itemselected><li class="{lvl}"> ... {id} ... {label} ... {sublevel} ... </li></itemselected>
<template><ul>{sublevel}</ul></template>
</atm-function>
</block>
</row>

Pourriez vous me dire ou se situe mon erreur ?

Merci par avance

Auteur:  Sébastien [ Ven Déc 17, 2010 9:32 am ]
Sujet du message:  Re: Modele de rangées listant les catégories.

Ton attribut root dans ton tag atm-function ne doit pas être à 0. Il te faut l'identifiant d'une catégorie servant de racine à tes catégories à lister.

Mais de toute manière, cette méthode n'est pas la bonne pour faire que que tu souhaite.

Il faut plutôt le faire de cette manière :
Code :
<row>
<block module="psites_web" id="psites_web" language="fr">
<atm-search what="{Sites_Web}" name="searchSites">
<atm-search-order search="searchSites" type="{Sites_Web:Type:fieldID}" direction="asc" />
<atm-result  search="searchSites">
 ...
</atm-result>
</atm-function>
</block>
</row>

Auteur:  celesta [ Lun Déc 20, 2010 12:03 pm ]
Sujet du message:  Re: Modele de rangées listant les catégories.

J'ai essayé ce code, mais il me renvoi pour chaque contenu, le nom de la catégorie correspodante.
Par rapport a mon exemple du premier topic, le résultat affiché est:
<Catégorie1>
<Catégorie1> (dans le cas ou 2 objets sont associés à la catégorie 1)

Or ce que je souhaite c'est afficher la liste de toutes les catégories (sans doublon)
<Catégorie1>
<Catégorie2>

C'est pour cela que je souhaitais utiliser la fonction categoriesTree mais elle n'a pas l'air de fonctionner ou je ne l'utilise pas correctement.

Auteur:  Sébastien [ Lun Déc 20, 2010 12:09 pm ]
Sujet du message:  Re: Modele de rangées listant les catégories.

Il te suffit de tester pour chaque résultat si tu as déjà envoyé le nom de la catégorie en cours ou pas.

Auteur:  celesta [ Lun Déc 20, 2010 3:47 pm ]
Sujet du message:  Re: Modele de rangées listant les catégories.

Je dois vraiment être plus mauvais que la moyenne, mais je n'arrive pas a juste tester chaque résultat.

Après chaque objet, j'enregistre la catégorie dans la variable $padministration_cat. Au prochain objet je regarde si la catégorie a changé. Cependant, j'ai une page blanche qui s'affiche (je n'ai meme plus mon modele de page).
Voici le code qui ne fonctionne pas:

Code :
<row>
  <block module="padministration" id="padministration" language="fr">
    <atm-search what="{donnees}" name="liens">       
      <atm-search-order search="liens" type="{donnees:Categorie:fieldID}" direction="asc" />
      <atm-result  search="liens">   
        <atm-if what="({donnees:Categorie:fieldID} !== {$padministration_cat})">
          {donnees:Categorie:label}
        </atm-if>
        <atm-setvar vartype="var" varname="padministration_cat" value="{donnees:Categorie:fieldID}" />   
        {donnees:Nom:label}
      </atm-result>
    </atm-search>
  </block>
</row>

Auteur:  Sébastien [ Lun Déc 20, 2010 3:50 pm ]
Sujet du message:  Re: Modele de rangées listant les catégories.

Teste plutôt ça :
Code :
<row>
   <block module="padministration" id="padministration" language="fr">
      <!-- Initialisation de la variable qui contiendra le libellé de la catégorie en cours -->
      <atm-setvar vartype="var" varname="padministration_cat" value="" />
      <atm-search what="{donnees}" name="liens">
         <!-- On ordonne les résultats par catégorie -->
         <atm-search-order search="liens" type="{donnees:Categorie:fieldID}" direction="asc" />
         <!-- On boucle sur les résultats -->
         <atm-result search="liens">       
            <!-- On affiche le libellé de la catégorie seulement s'il diffère de la précédente -->
            <atm-if what="{donnees:Categorie:label} != {var:string:padministration_cat}">
               {donnees:Categorie:label}
            </atm-if>   
            <!-- Pour chaque résultat, la variable recoit le libellé de la catégorie en cours -->
            <atm-setvar vartype="var" varname="padministration_cat" value="{donnees:Categorie:label}" />
            {donnees:Nom:label}
         </atm-result>
      </atm-search>
   </block>
</row> 

Auteur:  Frank [ Lun Déc 20, 2010 4:10 pm ]
Sujet du message:  Re: Modele de rangées listant les catégories.

celesta a écrit:
Je dois vraiment être plus mauvais que la moyenne, mais je n'arrive pas a juste tester chaque résultat.


C'est normal ça demande un peu de pratique, t'étais pas loin, le seul truc c'est qu'il te faut utiliser la syntaxe Automne pour les variables (tu as ça dans l'aide intégrée sur les variables dans Automne)

Auteur:  celesta [ Lun Déc 20, 2010 4:32 pm ]
Sujet du message:  Re: Modele de rangées listant les catégories.

Ca fonctionne!

J'ai pourtant bien cherché, j'ai relue la doc pdf, mais je n'ai rien vu concernant la syntaxe de type {var:string:padministration_cat}.

En tout cas merci de votre aide et réactivité.

Auteur:  Frank [ Lun Déc 20, 2010 6:38 pm ]
Sujet du message:  Re: [Résolu] Modele de rangées listant les catégories.

C'est sur la page de référence de la syntaxe XML pour les rangées polymod :
http://doc.automne.ws/web/Documentation ... #variables

Page 1 sur 1 Le fuseau horaire est UTC [Heure d’été]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/