Extension:Page Forms/Page Forms and templates/fr

est en son cœur, un système pour modifier les appels de modèle dans les pages wiki. (Bien qu'on puisse aussi modifier des sections de pages). Voir pour une explication complète des modèles dans MediaWiki.

Pourquoi prend-il en charge la modification des modèles et des sections de pages, mais pas, disons, les balises de catégories de forme libre dans les pages ? C'est parce que la philosophie de est que toutes les données vraies de MediaWiki - y compris les données mêmes, les informations de catégorie et autres - doivent être stockées dans des modèles. Ceci pour plusieurs raisons :


 * Les modèles expliquent clairement quelles informations appartiennent à quelles pages, et évitent les ambiguïtés sur la structure des données
 * Les modèles masquent la syntaxe complexe impliquée dans l'affichage et le stockage des informations, ce qui facilite l'édition
 * Les modèles permettent de modifier plus facilement la structure et l'affichage, car un changement sur un grand nombre de pages peut potentiellement être centralisé en un seul endroit, sans la nécessité de modifier partout.

fournit un certain nombre de fonctionnalités qui aident spécifiquement à la création et à l'affichage des modèles, sans lien avec l'édition de formulaires. Ils sont tous décrits sur cette page. Il n'y a aucune raison technique pour que toutes ces fonctionnalités soient définies dans ; théoriquement,  et   pourraient être ajoutés à l'extension, ou peut-être que toutes les fonctionnalités devraient entrer dans une nouvelle extension. Il y a certainement un argument de commodité si on les garde dans. En tout cas, il n'est pas envisagé actuellement de les déplacer.



Simplification de l'affichage du modèle
définit deux fonctions d'analyse syntaxique,  et , qui ensemble peuvent considérablement simplifier le code nécessaire à l'affichage d'un appel de modèle - et peuvent également simplifier la définition de tous les formulaires qui utilisent un tel modèle.

La fonction  doit être placée dans la balise   d'un modèle. Elle contient les paramètres attendus pour ce modèle, ainsi que les détails supplémentaires pour chacun d'eux. Un exemple d'appel de cette fonction pour un modèle appelé "Recipe", est : Les détails autorisés (on pourrait les appeler « paramètres de paramètres ») sont :


 * - spécifie le texte qui doit être utilisé pour étiqueter la valeur de ce paramètre, tant sur les pages que sur les formulaires. Si aucune étiquette n'est définie, le nom du paramètre est utilisé comme étiquette.
 * - s'il vaut, le paramètre n'est affiché que si sa valeur n'est pas vide.
 * - spécifie que ce paramètre est destiné à contenir une série d'appels de modèle (c'est-à-dire un modèle à plusieurs instances).
 * - si l'extension est installée, il spécifie le champ de la table  du modèle auquel ce paramètre correspond. Si ce paramètre n'est pas initialisé, le code cherche un champ de même nom que celui du paramètre.

L'ajout d'un appel de  à un modèle aide de la manière suivante :


 * La fonction affiche la liste des paramètres de manière bien formatée sur la page du modèle.
 * Ces informations aident à l'affichage du modèle (voir la section suivante).
 * Certaines de ces informations sont également utilisées par les formulaires, ce qui simplifie la définition des formulaires.

La fonction  doit être placée dans la balise   d'un modèle. Elle gère l'affichage pour l'appel du modèle. Dans de nombreux cas, à condition que  ait été appelé, le   peut être assez simple. Pour un modèle avec l'appel  ci-dessus, par exemple, l'appel de   pourrait simplement ressembler à : Si, d'autre part, il n'y a pas d'appel à, alors l'appel de   doit ressembler à : Mais cela n'est pas recommandé.

Il y a un paramètre prédéfini que  peut avoir :


 * - spécifie le format dans lequel l'affichage doit être fait; les options sont  (par défaut), ,   et  .   affiche une boîte d'information (infobox) sur le côté droit de la page, à la manière de Wikipedia;   affiche une table qui couvre toute la page;   donne à chaque paramètre le nom d'un entête de section, avec la valeur en dessous de celle-ci; et   affiche toutes les données du modèle en texte, avec le noms des paramètres en gras.

Pour afficher toutes les données sous forme de table de page complète, il vous suffit d'appeler :



Valeur multiple pour le même champ
définit également les fonctions d'analyseur  et , qui fournissent un support pour avoir plusieurs valeurs pour un seul champ, délimitées par une virgule ou un autre caractère. Ces fonctions d'analyse associent un certain traitement de texte à chaque valeur. Cela peut être aussi simple que de transformer chaque valeur en lien, bien qu'il puisse y avoir un traitement plus complexe, comme transformer chaque valeur en une balise de catégorie, une balise d'image, une balise de propriété Semantic MediaWiki, etc.

et  peuvent également être utilisés en dehors d'un contexte de modèle, bien que cette page ne couvre pas vraiment cet usage.

L'appel générique pour cette fonction est :

La fonction sépare la valeur par le délimiteur puis, pour chacun, applique le même mappage que 'formule' fait sur 'variable', puis relie toutes les valeurs en utilisant 'nouveau_delimiteur' - sauf pour la valeur finale, qui est jointe par 'conjonction' s'il est défini.

Par exemple: si vous avez un formulaire qui remplit le champ, et que vous voulez que les valeurs de ce champ soient séparées par des virgules et que chacune soit un lien, vous pouvez écrire ce qui suit dans le modèle :

Cette fonction mappe principalement une syntaxe de lien sur chaque valeur délimitée par les virgules dans le champ. (S'ils ne sont pas définis, le paramètre delimiter vaut par défaut  et new_delimiter vaut par défaut   ; notez l'espace supplémentaire). L'utilisateur peut ainsi saisir toutes les valeurs sur la même ligne, avec ou sans espaces autour des virgules. (Notez, au fait, que le  est utilisé ici comme une variable interne; toute autre chaîne pourrait être utilisée aussi bien, comme  ).

Le paramètre 'new_delimiter' est particulièrement utile si aucune des valeurs résultantes n'est actuellement affichée, car par défaut ceci ne serait rendu que comme une suite de virgules. Un exemple commun est que la valeur originale contient une liste de noms de catégories, et que chaque nom est transformé en une balise de catégorie, mais n'est pas réellement affiché.

Pour éviter d'afficher des virgules dans ce cas, vous devez définir la valeur new_delimiter égale à une espace. Utiliser seulement  à la fin ne fonctionnera pas, parce que l'analyseur de MediaWiki va l'ignorer - au lieu de cela, l'approche la plus simple est d'utiliser , qui est traduit par une espace. Voici comment on pourrait appeler une telle chose :

Vous pouvez faire ressembler davantage la sortie au langage naturel en incluant une valeur de conjonction pour le délimiteur final, de sorte que la sortie ressemble par exemple à, au lieu de   seulement. Voici un exemple pour le faire :

Si vous utilisez les pages 'CreateTemplate' ou 'CreateClass' pour créer un modèle, et que vous spécifiez qu'un champ peut prendre plus d'une valeur, alors un appel de  sera automatiquement ajouté au modèle généré.

Il existe quelques types de cartographie assez complexes pour ne pas être placés dans la fonction. Pour cela, vous pouvez utiliser la fonction similaire  à la place.

Pour utiliser cette fonction, créez d'abord un modèle qui prend un seul champ (il doit être mentionné dans le modèle comme ) et appliquez la cartographie que vous souhaitez à ce champ. Ensuite, appliquez  sur le champ du modèle principal comme vous le feriez avec , en utilisant le format suivant :

... où modèle est le nom du modèle de cartographie en question.

Par exemple: pour afficher une liste d'auteurs (séparés par des virgules) avec une liste numérotée, vous pouvez d'abord créer un modèle appelé "Numbered author", avec le contenu suivant :

...puis appelez ceci :



Utiliser et   dans le délimiteur
Pour les deux paramètres  et , la chaîne   de la valeur delimiter ou de new_delimiter sera convertie en espace, tandis que la chaîne   de l'un ou l'autre des paramètres sera converti dans une nouvelle ligne.

Il convient de noter que, si vous voulez qu'une rupture de ligne réelle apparaisse entre les valeurs, vous devez avoir deux nouvelles lignes (c.-à-d. ) comme délimiteur, car MediaWiki nécessite deux nouvelles lignes pour afficher un passage à la ligne.



Pages spéciales basées sur des modèles
définit trois pages spéciales qui se rapportent aux modèles :


 * Special:Templates, qui liste tous les modèles du wiki,
 * Special:CreateTemplate, et
 * Special:CreateClass.

Les deux dernières pages (c'est-à-dire Special:CreateTemplate et Special:CreateClass) peuvent être utilisées pour générer automatiquement les modèles.