cancel
Showing results for 
Search instead for 
Did you mean: 

Je cherche à customizer les catégories déjà présentes...

serv
Champ in-the-making
Champ in-the-making
Bonjour,

Je cherche à customizer les catégories déjà présentes au démarrage de l'application. Je m'explique, dès l'installation de l'application, 3 catégories sont déjà présentes : Software Document Classification, Regions et Languages. L'avantage de ces catégories c'est qu'elle sont crées dans les fichiers xml et donc que si on détruit l'entrepôt, elles persistent.
Je voudrais donc rajouter des catégories à celles existantes. J'ai donc rajouter mes catégories dans le fichier categories.xml. Ci-après, un morceau du code :
<cm:category_root view:childName="cm:categoryRoot">
        <view:acl>
            <view:ace view:access="ALLOWED">
                <view:authority>guest</view:authority>
                <view:permission>Read</view:permission>
            </view:ace>
        </view:acl>
      <cm:name>categories</cm:name>
      <cm:categories>

         <!– Software Document Classification –>
         <cm:category view:childName="cm:generalclassifiable">
                            <cm:name>General</cm:name>
            <cm:subcategories>
                           <cm:category>
                             …..
                            </cm:category>

          <!– Roles –>
             <cm:category>
            <cm:name>Rôles</cm:name>
            <cm:subcategories>
               <cm:category>
                  <cm:name>Invité</cm:name>
               </cm:category>
               <cm:category>
                  <cm:name>Editeur</cm:name>
               </cm:category>
               <cm:category>
                  <cm:name>Contributeur</cm:name>
               </cm:category>
               <cm:category>
                  <cm:name>Collaborateur</cm:name>
               </cm:category>
               <cm:category>
                  <cm:name>Coordinateur</cm:name>
               </cm:category>
            </cm:subcategories>
            </cm:category>
             </cm:subcategories>

             </cm:category>
      </cm:categories>
   </cm:category_root>
Mon code est bon au niveau syntaxe mais la nouvelle catégorie n'apparaît pas dans le client web. J'imagine que la méthode est la même que pour la définition d'un modéle : définition des propriétés dans un fichier puis déclaration des propriétés à afficher dans un autre fichier.
Cependant, je n'arrive pas à trouver dans quel fichier il faut déclarer les catégories pour qu'elle apparaissent.

Quelqu'un peut-il m'aider ?

Servane
4 REPLIES 4

serv
Champ in-the-making
Champ in-the-making
Pour ma question précédente, j'ai trouvé une réponse sur le forum anglophone : http://forums.alfresco.com/viewtopic.php?t=145.

J'aurais par contre une autre question…
J'ai créé des catégories à partir du client web. J'ai créé un modèle d'espace dans lequel les espaces ont des catégories qui correspondent à celles que j'ai créé précédemment.
Quand je crée un espace à partir du template, j'aimerais pourvoir en identifier la catégorie.
Cependant, je n'arrive pas à savoir comment récupérer la catégorie d'un noeud donné. Je ne crois pas que CategoryService le permette…

Si quelqu'un sait… je suis preneuse !

Merci

rivarola
Champ on-the-rise
Champ on-the-rise
Bonjour,

Un noeud catégorisé a en général l'aspect cm:generalclassifiable qui définit l'association cm:categories qui pointe vers une catégorie. Il suffit donc d'interroger le NodeService pour lui demander les associations cm:categories sur ton noeud et tu obtiendras tes catégories.

serv
Champ in-the-making
Champ in-the-making
Merci Philippe.

Encore une question cependant… J'arrive à récupérer les catégories associées à mon noeud, mais uniquement sous la forme : [workspace://SpacesStore/2110d6c1-2646-11dc-b2f0-0b96d2e9e5f8]. Comment puis-je réussir à affiché le nom (propriété name) correspondant ?

rivarola
Champ on-the-rise
Champ on-the-rise
Ce que tu récupères en appelant la méthode getTargetAssocs du NodeService est une AssociationRef. De la tu passes facilement au NodeRef cible en appelant la méthode getTargetRef. Une fois que tu as le noeud tu utilises de nouveau le NodeService pour obtenir ses propriétés (getProperty) et donc le nom.