L'action
{{include
page="PagePrincipale"}} (
WikiNi >= 0.4.1) permet d'inclure
dans une page une autre page du wiki (ici la page
PagePrincipale). Cette action possède
plusieurs applications :
- elle permet de regrouper plusieurs pages en une seule et
donc, par exemple, créer un document à partir de différentes "sections" disséminées dans
plusieurs pages
- elle permet de commenter/critiquer une page en lecture seule en
l'incluant dans le corps d'une autre page
- elle peut permettre, par exemple, de
constituer des blocs d'informations redondantes qui seront répétés (inclus) dans plusieurs
autres pages (il peut s'agir d'un menu, d'une signature, d'une mention légale, ou
autre)
- encore plus fort ! il semble possible configurer ainsi le menu de navigation de
WikiNi de cette manière ! dans le fichier index.config.php, il
suffit d'indiquer :
"navigation_links" => "{{include
page=\"MenuDuHaut\"}}",
et de créer dans la page MenuDuHaut ce que l'on
souhaite voir apparaître. Cette page peut être protégée en lecture seule pour tout le monde
et en écriture pour les administrateurs fonctionnels.
syndication en incluant des pages d'un autre
WikiNi.
Paramètres
Cette action accepte deux paramètres :
- page : paramètre obligatoire pour
désigner la page à inclure (sans lequel l'action ne fonctionne pas). Ce paramètre peut
être une page local au
WikiNi ou une page d'un autre
WikiNi.
- class : désignant une ou plusieurs classes de style,
séparées par des espaces, agissant sur la mise en forme de l'inclusion ; ce paramètre est
optionnel.
Actuellement,
WikiNi intègre plusieurs classes
prédéfinies pour gérer la mise en forme de l'inclusion :
.include_right { float:
right; width: 17%; } /* bloc flotant à droite */
.include_left { float: left; width: 17%;
} /* bloc flotant à gauche */
.include_solid_border { border: solid; padding: 2px; } /*
encadré noir */
.include_gray_background { background-color: #DDDDDD; } /* fond gris */
.include_small_fonts { font-size: 0.8em; } /* petites polices */
.include_big_fonts {
font-size: 1.2em; } /* grandes polces */
.include_height10em { height: 10em; overflow:
scroll; } /* boite de 10em de hauteur, avec ascenseur */
.include_height15em { height:
15em; overflow: scroll; }
.include_height30em { height: 30em; overflow: scroll; }
.include_height60em { height: 60em; overflow: scroll; }
Action inconnue ""
Ces classes de style peuvent être employées cumulativement. Ainsi, si
l'on souhaite obtenir, par exemple, une boite grise avec une bordure et de petits
caractères, on employera :
{{include page="ListeDesActionsWikini"
class="gray_background solid_border small_fonts"}}
L'inclusion par défaut, pour le
moment, produit une présentation non différenciée par rapport au reste de la page ; il faut
spécifier un style (comme en HTML classique), pour le voir appliqué. L'utilisation des
classes de style doit faire l'objet d'une attention particulière, certains navigateurs ne
supportant que peu ou pas les styles CSS.
La boite ci à droite correspond à l'inclusion
suivante :
{{include page="ListeDesActionsWikini" class="right height15em small_fonts
solid_border gray_background"}}
Une page ne peut-être inclue dans elle-même : cela
provoquerait une boucle récursive infinie : un page affichant une page, affichant une page,
affichant une page, etc.
De même, les boucles d'inclusion portant sur plus d'une page,
sont impossibles. Prenons par exemple : un page Page1 inclus une page Page2 qui
inclus une page Page3 qui inclus la page Page1. Lorsque ont demande à afficher la
page Page1, on voit le contenu des pages Page1, Page2 et Page3 et le
message d'erreur indiquant qu'il est impossible d'inclure une page dans elle même. En
effet, la page "active" est Page1 et le test dans l'action
{{include}} regarde
si le nom de la page inclus est le même que celui de la page active ce qui provoque une
erreur car l'inclusion d'autres pages ne change pas la page active.
On verra cet exemple
concrètement développé dans
WikiNi:ActionIncludeExempleDeBouclePage1 (interwiki) et suivantes.