====== Modèles d'espaces de noms ====== Parfois vous voudriez que toutes les pages d'un espace de noms donné aient un « squelette » commun. Par exemple, dans l'espace de noms ''adresse'', vous auriez un tableau déjà prêt qu'il n'y aurait plus qu'à remplir avec les données. Ceci peut facilement être réalisé grâce aux "modèles d'espaces de noms". Lorsque vous créez une page, [[fr:dokuwiki]] cherche un fichier ''_template.txt'' dans l'espace de nom auquel appartient la page. S'il existe, il le copie dans la fenêtre de l'éditeur de la nouvelle page. Ces fichiers ''_template.txt'' sont de simples fichiers texte contenant de la syntaxe wiki. ===== Fichiers modèles ===== Deux types de modèles peuvent être utilisés : * ''_template.txt'' qui est utilisé dans l'espace de nom en cours * et ''%%__template.txt%%'' (notez les deux caractères de soulignement) qui fonctionne comme le fichier ''_template.txt'' standard, sauf qu'il agit dans tous les espaces de nom contenu dans celui-ci Un moyen de créer un fichier modèle est : - utiliser le wiki pour sauver une page dans l'espace de noms approprié, avec le contenu que vous voulez utiliser comme modèle pour cet espace - utiliser FTP ou WebDAV pour faire une copie de ce fichier dans le même dossier et de le renommer ensuite en ''_template.txt'' - utiliser le wiki pour supprimer la page originale ===== Syntaxe ===== Le contenu du fichier est le [[:wiki:syntax|langage]] standard du wiki. ==== Motifs de remplacement ==== À l'intérieur du fichier, vous pouvez également utiliser certain motif de remplacement pour rendre votre modèle un peu plus dynamique. ^ @ID@ | identifiant (ID) complet de la page | ^ @NS@ | espace de noms de la page | ^ @PAGE@ | nom de la page ((l'ID sans l'espace de noms et avec les caractère de soulignement "_" remplacés par des espaces)) | ^ @!PAGE@ | idem que précédemment mais avec la première lettre en majuscule | ^ @!!PAGE@ | idem que précédemment mais avec la première lettre de chaque mot en majuscule ([[devel:develonly|développeurs uniquement]]) | ^ @!PAGE!@ | idem que précédemment mais avec toutes les lettres en majuscule | ^ @FILE@ | nom de la page ((l'ID sans l'espace de noms, en conservant les caractères de soulignement "_")) | ^ @!FILE@ | idem que précédemment mais avec la première lettre en majuscule | ^ @!FILE!@ | idem que précédemment mais avec toutes les lettres en majuscule | ^ @USER@ | identifiant de l'utilisateur qui créé la page | ^ @NAME@ | nom de l'utilisateur qui créé la page | ^ @MAIL@ | adresse email de l'utilisateur qui créé la page | ^ @DATE@ | date et heure à laquelle l'édition de la page a commencé | De plus, vous pouvez utiliser n'importe quelle valeur d'[[http://fr.php.net/strftime|strftime]] pour insérer la date dans un format personnalisable. N'oubliez pas de doubler les ''%'' pour que cela fonctionne. > **Un exemple serait la bienvenue. Parfaitement incompréhensible en l'état.** ===== Édition de modèles ===== Vous ne pouvez pas éditer le fichier ''_template.txt'' //via// DokuWiki -- seul celui qui peut éditer les fichiers directement depuis le serveur le peut (généralement un administrateur qui utilise FTP ou WebDAV). Pour ce faire il y a deux astuces: l'une par la mise en place de liens symboliques, et l'autre impliquant une modification de code. //Une troisième astuce a été laissée pour information, mais a été dépréciée et supprimée de la [[:namespace_templates|version anglaise]] de cette documentation.// ==== Modèles éditables par le biais de liens symboliques ==== De cette manière, vous pouvez stocker vos modèles dans un espace de noms. En faisant un lien symbolique vers eux, vous pourrez les utiliser comme modèles. Vous pouvez bien évidemment choisir de faire un modèle non-modifiable en n'utilisant pas de lien symbolique. - Créez un espace de noms appelé "modeles", ou n'importe quel nom similaire. - Dans cet espace de noms, créez une page pour chaque [[:namespace_templates | modèle d'espaces de noms]] que vous souhaitez rendre disponible. - Suivez les instructions données ci-dessus, à la seule différence que vous devez faire de ''_template.txt'' un lien symbolique vers la page de modèle correcte depuis l'espace de noms que vous avez précédemment créé. Vous avez maintenant un modèle qui peut être modifié facilement par l'interface wiki. ==== Modèles éditables pour tous les utilisateurs ==== De cette façon, tous les modèles seront modifiables par n'importe qui avec un accès en écriture. - Changez le nom du modèle par défaut en "modele.txt" (ou template.txt ou encore aaa_template.txt) au alentours de la ligne 718 du fichier ''inc/common.php'' ((Lignes 811 et 812 dans la version 2009-02-14)). - À présent n'importe quel utilisateur ayant un accès en écriture dans l'espace de noms peut y créer une page appelée "modele" ((ou le nom que vous aurez choisi à l'étape 1)) qui servira de modèle. * **Note:** Cette méthode a l'avantage que les nouveaux modèles seront immédiatement reconnus. Ça ne pourrait être le cas pour les autres méthodes (en ajoutant manuellement des fichiers ou des liens symboliques dans les dossiers de DokuWiki). ==== Modèles éditables (méthode dépréciée) ==== Vous pouvez permettre l'édition dans le wiki aux admins avec le hack suivant: Ouvrez ''inc/pageutils.php'' et cherchez la fonction cleanID(). Au début de cette fonction, ajoutez global $INFO global $INFO; puis vers la ligne 98 (celle avec trim() ), remplacez par $id = ($INFO['perm'] == 255 ? trim($id,':.-') : trim($id,':._-';)) Maintenant, vous devriez être capable d'éditer le modèle d'espace de noms avec l'URL ''doku.php?id=_template&do=edit''. **Note**: Ceci ne semble fonctionner que pour le modèle de l'espace de noms racine. Si vous voulez autoriser quiconque à éditer le modèle, vous pouvez changer son nom en "template.txt" vers la ligne 524 de ''inc/common.php''. Dès lors, tout utilisateur ayant le droit d'écriture dans cet espace de noms pourra créer une page appelée "template" dans cet espace de noms, qui servira de modèle. ===== Crédits ===== --- //[[philippe@bdsemin.com|Philippe LAPEYRIE]] 2006-05-21 21:27// --- // Aurélie 2006-12-10 18:02// --- // Yves Jacolin 2008-05-25 10:29 // --- //Laynee 2008/08/25 13:04// --- //[[bertrand.v@univup.com|Bertrand Villien]] 2009-07-07 01:40//