Génération du site web de l'ULB - format xml
sommairesommaireindexindexpage précédentepage précédentepage suivantepage suivanteimprimerimprimerenvoyerenvoyermarquermarquer

Inclusion de contenu: <inclusion>

Un élément <inclusion> permet d'inclure des parties de code xml provenant d'une source particulière.

C'est souvent utile lorsqu'on veut faire apparaître la même information sur plusieurs pages différentes (une table des matières, des heures d'ouvertures, etc.).

Plutôt que de recopier cette information dans chacune des pages, il suffit de l'écrire à un seul endroit - la source - et de l'inclure dans celles-ci à l'aide d'un élément <inclusion>.

Cela peut également être très utile pour récupérer facilement des informations provenant d'applications tierces.

Que peut-on inclure ?

On ne peut pas inclure n'importe quoi n'importe où. A l'heure actuelle, on ne peut inclure que le contenu d'un bloc d'information, qu'une partie de table des matières ou qu'une partie de texte.

En fonction de ce que vous désirez inclure, le code en question doit être placé à la source dans un élément <contenu-bloc>, <contenu-toc> ou <contenu-texte>.

  • <contenu-bloc> contient de l'information qui prend la forme d'un bloc (élément <bloc>). Ce bloc pourra être inclus partout là où un bloc peut être utilisé;

  • <contenu-toc> contient des informations à placer au sein d'une table des matières. Elles pourront être incluses dans un élément <toc> existant (l'élément <toc> ne fait pas partie des données à inclure. Si c'est ce que vous désirez, l'élément <contenu-bloc> précédent peut vous aider);

  • <contenu-texte> contient des informations à placer au sein d'un texte. Elles pourront êtres incluses dans un élément de type texte (<p>, <titre1>, <titre2>...).

Cet élément peut se trouver dans la même source xml que vos pages, dans une autre source associée à votre projet (que la Cellule web créera pour vous) ou encore dans n'importe quel document accessible via Internet. Il peut même provenir directement de l'une de vos applications accessible via le web.

Bien entendu, le contenu de l'information doit respecter le format xml utilisé à l'ULB (celui qui est décrit dans ces pages). L'élément <contenu-bloc>, <contenu-toc> ou <contenu-texte> ne sera pas recopié, mais tout ce qu'il contient le sera.

Dans le cas de l'élément <contenu-bloc>, un élément <bloc> sera créé pour réceptionner son contenu.

Où peut-on inclure ?

  • si le contenu à inclure est défini par un élément <contenu-bloc>, l'élément <inclusion> peut être placé partout où un bloc peut être utilisé;

  • si le contenu à inclure est défini par un élément <contenu-toc>, L'élément <inclusion> peut être utilisé uniquement au sein d'un élément <toc> existant;

  • si le contenu à inclure est défini par un élément <contenu-texte>, L'élément <inclusion> peut être utilisé uniquement au sein d'un élément qui accepte du texte (<p>, <b>, <fluo>, <a>, <titre2>...).

Où stocker le contenu à inclure ?

Vous avez trois possibilités:

A)

Contenu placé en interne dans votre source xml

Pour cela, il suffit de placer un ou plusieurs éléments <contenu-bloc>, <contenu-toc> ou <contenu-texte> dans l'élément racine <documents> de votre source, tout au début (avant les éléments <document> et <page>).

Vous devez également donner à ces éléments <contenu-bloc>, <contenu-toc> ou <contenu-texte> un identificateur, grâce à un attribut id.

Vous choisissez cet identificateur librement (composé de lettres, de chiffres et de '-'), pourvu qu'il soit unique.

Exemple
<documents>

   <contenu-bloc id="avisOuverture">
      <titre2>Heures d'ouverture</titre2>
      <p>Le service des inscriptions est ouvert sans interruption de 08h00 à 18h00</p>
   </contenu-bloc>

   <contenu-texte id="datReins">31 octobre (au plus tard!)</contenu-texte>

   <document>    
      ...
   </document>
</documents>

Vous pouvez ensuite insérer leur contenu n'importe où dans vos pages à l'aide de l'élément <inclusion source="..."/> où l'attribut source doit mentionner le même identificateur que votre élément <contenu>.

Exemple
<inclusion source="avisOuverture" style="colorBar1+titre"/>

Ce qui donnera:

Heures d'ouverture

Le service des inscriptions est ouvert sans interruption de 08h00 à 18h00


Exemple
<p style="très-important">La date des réinscriptions est fixée au: <inclusion source="dateReins"/>.</p>

Ce qui donnera:

La date des réinscriptions est fixée au: 31 octobre (au plus tard!).


B)

Contenu placé dans une autre source xml du projet

Dans l'exemple ci dessous, deux blocs (avis de fermeture du service et permanence) sont stockés dans une source séparée (dont l'identificateur est id-avis). Pour l'insérer dans la page, il suffit d'utiliser <inclusion source="id-avis"/>.

code utilisé dans la source 'id-avis'
<?xml version="1.0" encoding="UTF-8"?>
<contenu-bloc>
   <liste séparateur="tirets3">
      <p style="important">Le service des inscriptions sera fermé du 8 au 31 juillet.</p>
      <p>Une permanence sera assurée uniquement via courrier électronique.</p>
   </liste>
</contenu-bloc>
code à insérer dans votre page
<inclusion source="id-avis" style="class2" bords="arrondis"/>

Ce qui donnera:

  • Le service des inscriptions sera fermé du 8 au 31 juillet.

  • Une permanence sera assurée uniquement via courrier électronique.

Comme on peut le voir ci-dessus, il n'est pas nécessaire ici de donner un id à l'élément <contenu-bloc>. C'est en effet l'identificateur de la source xml qu'il faut utiliser.

Cet identificateur vous sera donné par la Cellule web lors de sa création. Cette source apparaîtra dans la liste des sources de votre projet dans sitemanager. Vous pourrez l'éditer de la même façon que vos autres sources.

Cet autre exemple illustre comment inclure une partie de table des matières:

code utilisé dans la source 'toc-commune'
<?xml version="1.0" encoding="UTF-8"?>
<contenu-toc>
   <toc1 docref="toc">Tables des matières</toc1>
   <toc1 docref="nuage">Nuage de tags</toc1>
   <toc1 docref="news">Actualités</toc1>
   <toc1 docref="index">Index de mots-clés</toc1>
   <toc1 docref="exemple">Exemples</toc1>
</contenu-toc>

On peut l'insérer dans une table des matières existante:

Exemple
<toc style="colorBar4" bords="arrondis">
   <toc1 docref="index">Sommaire</toc1>
   <inclusion source="toc-commune"/>
</toc>
						

Ce qui donnera:

C)

Contenu placé dans un document ou une application externe

Si l'information à insérer se trouve dans un document ou une application que vous gérez sur votre serveur, c'est un attribut href="..." qu'il faut utiliser. Cet attribut doit contenir l'adresse URL complète de votre document ou de votre application.

Exemple
<inclusion href="http://www.ulb.ac.be/demo/format-ulb/documents/avis1.xml"/>

Le document ou l'application doit renvoyer du code xml respectant le format de l'ULB. Ce code doit être placé dans un élément <contenu-bloc>, <contenu-toc> ou <contenu-texte> comme expliqué plus haut. Dans cet exemple, c'est dans un document avis1.xml qu'est stocké le code suivant:

code renvoyé par http://www.ulb.ac.be/demo/format-ulb/documents/avis1.xml
<?xml version="1.0" encoding="UTF-8"?>
<contenu-bloc>
   <bloc style="voile-cadre" bords="arrondis">
      <p>Heures d'ouverture: <b>08h00-17h30</b></p>
   </bloc>
</contenu-bloc>

Ce qui donnera:

Pour information: votre application peut également déclencher la génération et la publication (si la génération se passe correctement) automatique de votre site. Si vous êtes intéressé, demandez à la Cellule web la manière de procéder.

Style de mise en page

Dans le cas de données à inclure définies par <contenu-toc> ou <contenu-texte>, la question de la mise en page ne se pose pas: on utilisera celle de l'élément (la table des matières, le paragraphe...) dans lequel on fait l'inclusion.

Dans le cas de données à inclure définies par <contenu-bloc>, ces données sont incluses dans un élément <bloc> qui sera créé pour l'occasion. Cet élément <bloc> peut donc être mis en page, comme c'est le cas de tous les autres blocs.

Plutôt que de définir les attributs de mise en page de ce bloc dans <contenu-bloc>, c'est dans l'élément <inclusion> qu'on va le faire. Cela permet de choisir éventuellement une mise en page différente pour chaque inclusion.

Cet élément <inclusion> accepte donc tous les attributs (style, bords et ses variantes, ajuster-hauteur...) définis pour les blocs, ainsi que l'élément <titre>.

En voici quelques exemples:

Exemple
<inclusion source="avisOuverture" style="colorBar1"/>		
		
				

Heures d'ouverture

Le service des inscriptions est ouvert sans interruption de 08h00 à 18h00


Exemple
<inclusion source="avisOuverture" style="colorBar2" bords="arrondis"/>		
		
				

Heures d'ouverture

Le service des inscriptions est ouvert sans interruption de 08h00 à 18h00


Exemple
<inclusion source="avisOuverture" style="colorBar3" bords="arrondis">
   <titre>
      <titre2 toc="no">Avis du service:</titre2>
   </titre>
</inclusion>
		
				
Avis du service:

Heures d'ouverture

Le service des inscriptions est ouvert sans interruption de 08h00 à 18h00


Exemple
<inclusion source="avisOuverture" style="class1" bords="arrondis"/>		
		
				

Heures d'ouverture

Le service des inscriptions est ouvert sans interruption de 08h00 à 18h00


ULB - entreprise écodynamique