Jump to content

Extension:Page Forms/Onglet "Editer avec un formulaire"

From mediawiki.org
This page is a translated version of the page Extension:Page Forms/The "edit with form" tab and the translation is 100% complete.

Faire apparaître « Editer avec un formulaire »

Pour faire apparaître l'onglet « Éditer avec un formulaire » sur la page, vous devez utiliser la fonction d'analyse syntaxique #default_form. Cette fonction est appelée de la manière suivante :

{{#default_form:form-name}}

...où form-name est le nom du formulaire, sans le préfixe de l'espace de noms « Form: » .

Si un utilisateur n'a pas de droit de modifier une page éditable à l'aide d'un formulaire, l'onglet affichera à la place « Voir le formulaire » ; en cliquant sur l'onglet, vous verrez le formulaire désactivé.

#default_form affiche un message comme "Cette catégorie utilise le formulaire form-name." Pour cacher ce message, vous pouvez encapsuler l'appel dans un élément masqué, de cette façon :

<span style="display:none">{{#default_form:Organization}}</span>
La syntaxe « [[Possède un formulaire par défaut form::form-name]] » , qui était utilisée pour lier un formulaire à une page dans les premières versions de cette extension lorsqu'elle s'appelait encore Semantic Forms, ne fonctionne plus; chaque appel de ce type doit être changé en #default_form.

En se basant sur la catégorie

L'approche recommandée est d'utiliser les catégories. Pour permettre à une page d'avoir un onglet de cette manière, vous devez d'abord la définir comme appartenant à une catégorie spécifique. La meilleure manière de détecter les pages avec une catégorie est de placer une balise 'Category' dans le modèle principal qui définit ce type de page; ainsi, chaque page qui utilise ce modèle appartiendra à cette catégorie.

Puis, insérez un appel à #default_form dans la page pour cette catégorie. Vous pouvez faire cela automatiquement si vous créez la catégorie en utilisant la page 'CreateCategory' .

En se basant sur l'espace de noms

Vous pouvez également faire correspondre un espace de noms à un formulaire, pour dire que chaque page de cet espace de noms est éditable à l'aide de ce formulaire. D'abord trouvez l'emplacement de la page qui définit cet espace de noms. Par exemple, si l'espace de noms que vous voulez associer à un formulaire est 'User', la page dans laquelle vous devez ajouter l'appel de #default_form peut être trouvée en navigant vers 'Project:User' (vous devrez peut être créer cette page).

Si l'espace de noms pour lequel vous voulez un formulaire par défaut est l'espace de noms principal (c'est à dire celui qui n'a pas de nom), vous devrez ajouter #default_form à la page appelée 'Project:Main'. Si la langue du site ($wgLanguageCode dans LocalSettings.php) n'est pas l'anglais, remplacez « Main » par le nom de l'espace de noms vide qui est défini dans le message système MediaWiki:Pf_blank_namespace de votre wiki. Ou encore, remplacez le contenu de ce message système par « Main ».

Une fois cet appel ajouté, chaque page de cet espace de noms aura ce formulaire qui lui sera associé, sauf si elle appartient déjà à une catégorie qui possède un formulaire associé (les catégories prévalent sur les espaces de noms).

Dans la page

Vous pouvez aussi associer un formulaire directement à une page. Ceci est particulièrement utile lorsque les options de la catégorie et celles de l'espace de noms ne sont pas possibles, comme par exemple lorsque les pages appartiennent à des catégories multiples ayant différents formulaires par défaut. Pour faire cela, faites simplement un appel à #default_form directement vers la page, ou vers un modèle appelé par cette page.

Empêcher l'onglet de s'afficher

Si vous voulez être certain qu'une page n'aura pas d'onglet « Editer avec un formulaire » , ajoutez l'appel suivant à la page correspondante, à la page de catégorie ou à celle de l'espace de noms :

{{#default_form:}}

Configuration des onglets d'édition

Pour les pages qui possèdent un onglet « Editer avec un formulaire » , vous pouvez renommer l'onglet habituel « Editer » ou même tous les supprimer. Il existe des drapeaux que vous pouvez positionner dans « LocalSettings.php » pour modifier l'apparence de l'onglet d'édition :

  • $wgPageFormsRenameEditTabs = true; - renomme l'onglet « Editer avec un formulaire » en « Editer », et l'onglet « Editer » en « Editer le source » (quelque soit la langue utilisée pour afficher le wiki)
  • $wgPageFormsRenameMainEditTab = true; - renomme seulement l'onglet « Editer » en « Editer le source » (quelque soit la langue utilisée pour afficher le wiki)
Vous ne pouvez pas non plus utiliser les deux paramètres de configuration mentionnés ci-dessus dans le cas où l'extension VisualEditor est installée sur votre wiki.
  • $wgGroupPermissions[...]['viewedittab'] - peut être initialisé selon le types d'utillisateur, pour décider si chaque type verra l'onglet régulier d'édition. Une modification commune est de l'initialiser normalement à false (c'est à dire pour type d'utilisateur '*'), et à true pour les contributeurs de type 'sysop' :
Same as above; these permissions will cause issues with the VisualEditor extension, which requires the edit tab as an entrypoint.
    • $wgGroupPermissions['*']['viewedittab'] = false;
    • $wgGroupPermissions['sysop']['viewedittab'] = true;

Si ces paramètres sont ajoutés à LocalSettings.php, ils doivent être mis dans le fichier après l'inclusion de Page Forms.

Notez que cetains habillages des débuts de MediaWiki tels que Cologne Blue, contiennent des liens codés en dur vers « Modifier cette page » , qui ne peuvent être supprimés ni renommés par le code de Page Forms .

Autre personnalisation de l'onglet

Chaque onglet possède son ID HTML, ainsi les onglets peuvent être personnalisés sur l'ensemble du site en utilisant le CSS ou le JavaScript dans les fichiers MediaWiki:Common.css ou MediaWiki:Common.js du site, ou sur les pages individuelles avec l'extension CSS . Par exemple, vous pouvez masquer les onglets de modification et d'affichage en ajoutant ceci dans votre page MediaWiki:Common.css :

#ca-view, #ca-edit { display: none !important; }