Skip to content

Styles et vues

Généralités

Les feuilles de styles dans Ewt sont des feuilles XSL standard. Toutefois elles ne peuvent pas être référencées directement. Les feuilles de styles utilisables par une application doivent être déclarées dans le fichier de configuration de l'application, dans la section styles. Un nom de style doit être rattaché à la feuille de style. Cette dernière sera donc uniquement référencée au moyen de ce nom.

Exemple de section <styles> du fichier de configuration:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<styles>
  <!-- liste des feuilles de style disponibles; dans le reste de 
       l'application, on ne fera jamais référence directement au fichier xsl,
        mais uniquement au nom de la stylesheet, c'est-à-dire à la valeur 
        mise dans l'attribut "name". -->
  <stylesheet name="default">default.xsl</stylesheet>
  <stylesheet name="documents">documents.xsl</stylesheet>
  <stylesheet name="info">documents.xsl</stylesheet>
  <stylesheet name="benevoles">documents.xsl</stylesheet>
  <stylesheet name="impressionEtiquettes">dlgImpressionEtiquettes.xsl</stylesheet>
  <stylesheet name="refuserArticles">dlgRefuserArticles.xsl</stylesheet>
  <stylesheet name="listeArticlesVendeur">vendeur.xsl</stylesheet>
  <!-- style par défaut; peut être vide ou indéfini si l'on souhaite une 
       application entièrement pilotée par les scripts ou une application qui
       n'est que pur service web -->
  <defaultStyle>default</defaultStyle>
</styles>

Comme on le voit dans l'exemple ci-dessus, il est possible qu'une feuille de style soit référencée sous plusieurs noms. L'inverse n'est par contre pas permis.

Au niveau d'un script, on pourra forcer le changement de style au moyen de la commande suivante (d'autres syntaxes sont possibles, par exemple pour définir une feuille de style à usage unique, i.e. uniquement pour la sortie du traitement en cours, ce qui est pratique pour les appels Ajax):

$out.setMainStyle("listeArticlesVendeur");

Descript

La notation de style n'apparaît pas directement au niveau de la descript. Dans le cas de l'affichage de dossiers, on parle plutôt de vue. Une vue est un ensemble de groupes affichés au moyen d'une feuille de style donnée.

L'idée de la vue, est de filtrer le contenu d'un dossier pour ne représenter que ce qui est réellement utile pour le besoin métier. Une même vue peut être utilisée sur différents modèles de dossiers avec, pour chaque dossier, une liste de groupes différents.

Ainsi, une vue "simple" pourrait n'afficher que les éléments de base d'un ou de plusieurs dossiers, alors qu'une vue "étendue" affichera davantage d'éléments.

Voici un exemple de définitions de vues. La vue "viewDocuments" est la vue standard qui affiche un dossier. Elle existe sur le modèle "listeArticle" ci-dessous, ainsi que sur d'autres modèles, ce qui la rend capable d'afficher plusieurs dossiers simultanément.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<model name="listeArticle" maingroup="info" mainfield="idListeArticle">
  <groups>
    <group name="info" table="ListeArticle" type="single">
      <fields>
        ...
      </fields>
    </group>
    <group name="articlesListeArticle" table="ArticleListeArticle" type="multi" order="idArticleListeArticle">
      <fields>
        ...
      </fields>
    </group>
  </groups>
  <views>
    <view name="viewDocuments" style="documents">
      <group name="info"/>
      <group name="articlesListeArticle"/>
    </view>
    <view name="viewVendeur" style="listeArticlesVendeur" public="false">
      <group name="info"/>
      <group name="articlesListeArticle"/>
    </view>
  </views>
</model>

La vue "viewVendeur" quant à elle sert à produire une vue limitée dans laquelle l'utilisateur aura une interface simplifiée, sans fonction d'administration. Elle est indiquée comme privée car elle n'est pas sélectionnable par l'utilisateur : l'activation de cette vue se fait sur la base de règles définies au niveau des scripts.

Chaque vue référence les groupes que la feuille de style est censée pouvoir afficher.