J'aimerais savoir si il y a moyen d'avoir plusieures...

cancel
Showing results for 
Search instead for 
Did you mean: 
christophes
Member II

J'aimerais savoir si il y a moyen d'avoir plusieures...

Bonjour,

J'aimerais savoir si il y a moyen d'avoir plusieures conditions dans le fichier web-client-config-custom.xml pour afficher les méta-données. Par exemple :
<config evaluator="aspect-name" condition="mon:aspect1" condition="mon:aspect2">
      <property-sheet>
         …
      </property-sheet>
   </config>
au lieu d'avoir simplement :
<config evaluator="aspect-name" condition="mon:aspect1">
      <property-sheet>
         …
      </property-sheet>
   </config>
Le but de cela serait d'avoir un affichage différent des méta-données lorsque j'ai à la fois l'aspect1 et l'aspect2.

J'espère que j'ai été assez clair et que j'aurais une réponse.

Merci d'avance,

Christophe
1 Reply
pdubois
Active Member

Re: J'aimerais savoir si il y a moyen d'avoir plusieures...

Bonjour,

Les évaluateurs ne se combinent pas.

Une solution est de définir un nouveau type d'évaluateur.  Il faut pour cela écrire une petite classe java et la déclarer dans « web-client-config-custom.xml ».

Voici un exemple de configuration (début de web-client-config-custom.xml) :
<alfresco-config>

   <plug-ins>
      <evaluators>
         <evaluator id="node-type" class="org.alfresco.web.config.NodeTypeEvaluator" />
         <evaluator id="aspect-name" class="org.alfresco.web.config.AspectEvaluator" />
      </evaluators>
      <element-readers>
Et voici un exemple de classe:
/**
* Evaluator that determines whether a given object has a particular aspect applied
*
* @author gavinc
*/
public final class AspectEvaluator implements Evaluator
{
   /**
    * Determines whether the given aspect is applied to the given object
    *
    * @see org.alfresco.config.evaluator.Evaluator#applies(java.lang.Object, java.lang.String)
    */
   public boolean applies(Object obj, String condition)
   {
      boolean result = false;
     
      if (obj instanceof Node)
      {
         Set aspects = ((Node)obj).getAspects();
         if (aspects != null)
         {
            QName spaceQName = Repository.resolveToQName(condition);
            result = aspects.contains(spaceQName);
         }
      }
     
      return result;
   }
}
Inspirez vous de cette exemple.

J’espère que cela vous aide.