Jump to content

Extension:Page Schemas

From mediawiki.org
This page is a translated version of the page Extension:Page Schemas and the translation is 100% complete.
Manuel des extensions MediaWiki
Page Schemas
État de la version : stable
Implémentation Page spéciale
Description Déclare une balise ‎<PageSchema> qui peut être utilisée pour définir les schémas des pages.
Auteur(s) Yaron Koren and Ankit Garg
Dernière version 1.2.2 (mai 2026)
Politique de compatibilité Le master conserve la compatibilité arrière.
MediaWiki >= 1.41
Modifie la base
de données
Non
  • $wgPageSchemasFieldNum
  • $wgPageSchemasHandlerClasses
‎<PageSchema>
generatepages
Licence Licence publique générale GNU v2.0 ou ultérieur
Téléchargement See below
Traduire l’extension Page Schemas sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

Page Schemas est une extension MediaWiki pemettant de définir toutes les informations du schéma concernant une classe ou un type de données - le nommage, l'affichage , la saisie de données et la navigation - dans un même XML contenu dans une page de catégorie. Ce XML est ensuite utilisé pour générer toutes les pages supplémentaires nécessaires à la mise en œuvre du schéma, telles que les pages de modèle et, si Page Forms est installé, les pages de formulaire. Le XML peut être créé et modifié via un formulaire d'aide, empêchant les utilisateurs de devoir le générer ou de le modifier manuellement.

Page Schemas permet aux autres extensions de définir leurs propres champs à ajouter au XML en utilisant les accroches. Actuellement, les extensions suivantes sont liées à Page Schemas :

Pages spéciales

Page Schemas définit deux pages qui peuvent apparaître comme des onglets sur les pages de catégorie : "Edit schema" pour modifier un scéma (qui apparaît comme "Create schema" pour le créer si aucun schéma n'existe encore) et "Générer les pages". "Edit schema" vous permet de créer ou de modifier le XML via le formulaire d'aide, tandis que "Generate pages" fournit un bouton qui permet à l'administrateur de créer automatiquement le (les) modèle(s), les propriétés sémantiques, le formulaire, etc. automatiquement à partir de la définition XML. "Générer des pages" comprend également des cases à cocher pour chacune des pages à générer, afin de permettre aux administrateurs de choisir de ne pas réécraser certaines pages du wiki qui existent déjà.

Tout utilisateur qui est autorisé à modifier une page de catégorie donnée verra l'onglet "Modifier le schéma/Créer le schéma" pour cette catégorie, et pourra utiliser cette page pour modifier le schéma.

Pour générer les pages, un utilisateur doit avoir les droits 'generatepages'. Par défaut, ces droits ne sont accordés qu'aux membres du groupe utilisateur 'sysop' . Vous pouvez ajouter ou modifier l'ensemble des utilisateurs autorisés, mais en modifiant le tableau $wgGroupPermissions en LocalSettings.php. Pour permettre à tous les utilisateurs enregistrés de générer des pages à partir du schéma, par exemple, vous ajouterez ceci :

$wgGroupPermissions['user']['generatepages'] = true;

Code et téléchargement

Télécharger le code Page Schemas au format .zip.

Vous pouvez aussi télécharger le code directement de Git depuis le répertoire du code source MediaWiki. A partir de la ligne de commande, vous pouvez appeler :

git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/PageSchemas.git

Afficher le code en ligne, y compris l'historique des versions de chaque fichier.

Installation

Après avoir obtenu un répertoire "PageSchemas" placer ce répertoire dans le répertoire principal /extensions de MediaWiki. Ensuite, ajouter ceci au fichier LocalSettings.php :

wfLoadExtension( "PageSchemas" );

Utilisation

Afficher une page de catégorie et cliquer sur Modifier le schéma. Voir le tutoriel ci-dessous pour plus d'informations.

Tutoriel vidéo

Vous pouvez voir une vidéo de l'écran de Page Schemas créée par Yury Katkov, expliquant comment il est utilisé et pourquoi il peut être utile.

Exemple de structure XML

Voici quelques exemples XML, à placer dans une page "Category:Cities", utilisés pour définir le schéma des pages de cette catégorie. Cette section définit le nom du formulaire et les informations pour un seul champ de cette classe, "Population".

<PageSchema>
	<pageforms_Form name="City">
	<standardInputs/>
	</pageforms_Form>
	<Template name="City" format="standard">
		<Field name="Population">
			<Label>Pop.</Label>
			<semanticmediawiki_Property name="Has population">
				<Type>Number</Type>
			</semanticmediawiki_Property>
			<pageforms_FormInput>
				<InputType>text</InputType>
				<Parameter name="size">20</Parameter>
				<Parameter name="mandatory"/>
			</pageforms_FormInput>
		</Field>
		...
	</Template>
	...
	<Section name="History" level="2">
		<pageforms_PageSection>
			<Parameter name="rows">10</Parameter>
			<Parameter name="mandatory"/>
		</pageforms_PageSection>
	</Section>
	...
</PageSchema>

Import dans Page Schemas

Les utilitaires suivants peuvent importer des structures de données (à la fois basées sur MediaWiki et externes) dans le format Page Schemas :

  • db-to-smw-page-schemas, un script en Node.js qui demande le schéma d'une base de données et génère des pages de catégorie correspondantes avec Page Schemas XML
  • Bibliothèque Java qui permet de lire et d'écrire PageSchemas directement dans un wiki en utilisant l'API MediaWiki. N'hésitez pas à contacter l'auteur via son compte GitHub si vous souhaitez en savoir plus ou laisser un commentaire.

Problèmes communs

  • La génération des pages est effectuée via les tâches MediaWiki, pour s'assurer que le système n'est pas surchargé si plusieurs pages sont générées en même temps. Cela signifie que les pages ne peuvent pas être générées immédiatement et peuvent prendre quelques minutes, des heures ou même plus de temps avant de se terminer. Normalement, les tâches sont activées à chaque fois qu'une page est vue sur le wiki; pour accélérer le processus (ou le ralentir), vous pouvez modifier le nombre de tâches exécutées lorsqu'une page sera vue; la valeur par défaut est 1. Pour les informations sur la manière de le modifier, voir la page $wgJobRunRate . Pour forcer le wiki à exécuter toutes les tâches immédiatement, exécuter le script RunJobs.php .

Auteurs

Page Schemas a été créé par Ankit Garg comme partie du 2011 Google Summer of Code, et tutoré par Yaron Koren. Il a été modifié ultérieurement de manière significative, et est actuellement maintenu, par Yaron Koren. Des parties de celui-ci sont basées sur l'extension TemplateInfo , par Yaron Koren et Roan Kattouw.

D'importantes contributions de code ont aussi été faites par Himeshi De Silva et Vedmaka.

Historique des versions

Page Schemas est actuellement en version 1.2.2.

L'historique des versions pour Page Schemas est :

  • 0.1 - août 23, 2011 - version initiale
  • 0.2 - octobre 13, 2011 - révision; de nombreux changements pour l'affichage et à la structure du code
  • 0.3 - octobre 25, 2011 - accroche d'extensions vers PageSchemas via une accroche unique et une sous-classe, au lieu d'une variété d'accroches; diverses autres modifications
    • 0.3.1 - août 24, 2012 - le format d'affichage du modèle peut être sélectionné; diverses petites corrections et améliorations
  • 0.4 - octobre 7, 2013 - traitement ajouté pour les sections de page; amélioration de l'interface utilisateur "Generate pages"; prise en compte ajoutée de MW 1.21
    • 0.4.1 - décembre 9, 2013 - Les attributs spécifiques au modèle ne sont affichés que pour les modèles à instance multiples; prise en compte supprimée pour MW 1.16
    • 0.4.2 - février 11, 2014 - attribut "namespace" ajouté pour les champs; traitement supprimé pour MW 1.17
    • 0.4.3 - mai 8, 2014 - correction pour la balise <PageSchema> lorsque l'on appelle à partir d'un script; i18n modifié pour utiliser les fichiers JSON
    • 0.4.4 - janvier 16, 2015 - Corrections JavaScript; requête simplifiée de la table page_props
    • 0.4.5 - février 17, 2015 - support ajouté pour les attributs de modèle des modèles à une seule instance
    • 0.4.6 - février 3, 2016 - amélioration de la gestion d'un XML défectueux; amélioration de l'utilisation des versions récentes de MW; autres corrections
    • 0.4.7 - mai 23, 2018 - extension.json ajouté; davantage de répertoires ajoutés; traitement supprimé pour 1.18 à 1.22 MW; corrections diverses
    • 0.4.8 - juin 8, 2018 - correction du bogue de sauvegarde du schéma introduit dans la version 0.4.7
    • 0.4.9 - janvier 17, 2019 - corrections de bogues
  • 0.5 - décembre 9, 2019 - traitement supprimé pour 1.23 - 1.27; traitement amélioré pour PHP 7
    • 0.5.1 - juillet 29, 2020 - remise à nouveau des champs Page Forms dans "edit schema", absent depuis 2016; amélioration du traitement pour MW 1.32+; correction du contrôle des droits pour MW 1.33-
    • 0.5.2 - mai 6, 2021 - modification de certaines entrées pour utiliser OOUI; améliorations du code
  • 0.6 - juin 29, 2021 - traitement supprimé pour MW 1.32- ; traitement amélioré pour MW 1.36+
    • 0.6.1 - février 16, 2022 - Fichier de PageSchemas.php supprimé; traitement amélioré pour MW 1.38+
  • 0.7 - septembre 20, 2022 - traitement supprimé pour MW 1.32; traitement amélioré pour MW 1.36+; les sections "field" sont rendues minimisables et triables; corrections de bogues
    • 0.7.1 - mars 24, 2023 - traitement amélioré pour MW 1.33+
  • 0.8 - septembre 26, 2023 - traitement supprimé pour MW 1.35- ; traitement amélioré pour MW 1.35
  • 0.9 - février 7, 2024 - traitement supprimé pour MW 1.35; traitement amélioré pour MW 1.39+
    • 0.9.1 - février 29, 2024 - correction de bogue qui a ajoutait un champ vide au début de chaque modèle XML; correction de l'analyse pour permettre d'avoir '@' parmi les valeurs du schéma
    • 0.9.2 - avril 1, 2024 - traitement corrigé pour MW 1.40+
  • 1.0 - novembre 6, 2024 - traitement supprimé pour MW 1.38- ; code amélioré
  • 1.1 - avril 8, 2025 - traitement supprimé pour MW 1.40- ; traitement amélioré pour MW 1.44+
  • 1.2 - mai 23, 2025 - traitement supprimé pour MW 1.41-; traitement amélioré pour MW 1.44+
    • 1.2.1 - novembre 19, 2025 - traitement amélioré pour MW 1.44+; amélioration du code
    • 1.2.2 - mai 14, 2026 - traitement amélioré pour MW 1.46+; correction pour les caractères spéciaux XML (comme "&") dans les noms des champs et des modèles

Feuille de route

Les fonctionnalités et améliorations qui seraient excellentes à ajouter à Page Schemas comprennent :

  • Permettre à Page Forms d'utiliser le XML de Page Schemas directement lors de la génération d'un formulaire, au lieu d'exiger une définition de formulaire séparée.
  • outils supplémentaires pour exporter (importer) des fichiers de structure de données dans des formats tels que UML et SQL vers (à partir) du format XML Page Schemas
  • Enregistrement de chaque schéma XML sur sa propre page, au lieu d'une partie de page de catégorie.