LINUX:MediaWiki - Espace de noms

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au menu de MediaWiki


But

L'ensemble des pages de MediaWiki ou "NameSpaces" sont séparés en plusieurs parties. Il est possible d'en ajouter.


Quelques espaces de nom standard

Chaque espace de nom est référencé par un numéro. A chacun de ceux-ci est attribué un nom. On peut changer ce nom tant qu'on n'a pas encore mis d'information le concernant.

On peut en avoir une liste via l'URL suivante: http://serverdb.home.dom/wiki/api.php?action=query&meta=siteinfo&siprop=namespaces

Ils vont par paire qui se suivent (sauf les n° négatifs). Le n° paire correspond à la page proprement dite, le n° impaire suivant correspond à la page correspondante pour les discussions.

Quelques principaux que l'on rencontre habituellement:

  • -1 : Spécial : Espace des pages spéciales
  • 0 : sans nom : Espace principal des pages du site
  • (1 : Discussion : Espace de discussion du précédent Note: nous ne citerons pas les autres espaces de discussions pour ne pas alourdir l'exposé)
  • 2 : Utilisateur : Espace des pages des utilisateurs
  • 6 : Fichier : Espace des fichiers téléchargés
  • 10 : Modèle : Espace des modèles, pages paramétrables que l'on peut appeler à partir d'autres pages
  • 14 : Catégorie : Espace des catégories, index de groupes de pages

Ces noms sont en français dans notre cas mais leurs noms de référence sont en anglais.


Espaces de noms personnels

Il est possible d'en créer d'autres en les définissant dans le fichier "LocalSettings.php".

Il faut attribuer un n° assez haut car nombre d'extensions en définissent pour eux. Voyez la documentation de MediaWiki à l'URL https://www.mediawiki.org/wiki/Extension_default_namespaces Voyez aussi les n° existants dans votre configuration grâce à l'URL citée au point précédent. Pour ma part je commence à partir du n° 5000.

Voici un exemple pour l'espace de nom "BIBLIO" dans le fichier "LocalSettings.php":


# Définition des n°
define("NS_BIBLIO", 5000);
define("NS_BIBLIO_T", 5001);
# Attribution du nom
$wgExtraNamespaces[NS_BIBLIO] = "BIBLIO";
$wgExtraNamespaces[NS_BIBLIO_T] = "BIBLIO_T";

L'espace de nom "BIBLIO_T" correspond aux pages de discussion de l'espace "BIBLIO". Ces noms de peuvent comporter d'espace ni de tiret; on les remplacent par un souligné ("_").

Et donc, par exemple, pour mettre la page "Menu" sous l'espace de nom "BIBLIO", sa référence devient "BIBLIO:Menu" au lieu de "menu" s'il se trouvait sous l'espace de nom n° 0.


L’intérêt d'en créer d'autres est de classer nos pages par grand thème. Ceci permet également d'attribuer des permissions personnalisées à chaque "Namespace" à des groupes d'utilisateurs. En entreprise, ceci m'a permit de créer un espace à part pour chaque service et d'attribuer au service correspondant la possibilité de créer leur propres pages dans leur espace, les autres services n'ayant que le droit de les consulter et ainsi de partager leur expérience. On peut aussi rendre accessible des informations confidentielles qu'à des groupes d'utilisateurs ciblés, par exemple, les procédures ISO.


Extension NSFileRepo

L'extension NSFileRepo permet d'étendre cette notion aux fichiers. Par exemple, pour mettre le fichier "Le_Chat.png" sous l'espace de nom "BIBLIO", sa référence devient "Fichier:BIBLIO:Le_Chat.png" au lieu de "Fichier:Le_Chat.png".

Mais son installation demande un minimum de paramétrage:

  • Dans le fichier "LocalSettings.php", on met:

wfLoadExtension( 'NSFileRepo' );
$wgUploadPath = "$wgScriptPath/nsfr_img_auth.php";

Et il faut créer un lien symbolique au niveau de la racine du logiciel vers le fichier "nsfr_img_auth.php" de cette extension:


#!/bin/csh
cd /web/wiki.39
ln -s extensions/NSFileRepo/nsfr_img_auth.php


Dans mon cas, je rencontre un problème depuis de nombreuses années. Je dois faire une modification dans le fichier "extensions/NSFileRepo/nsfr_img_auth.php" sinon les images ne s'affichent pas.

La ligne 50 de ce script:


require __DIR__ . '/includes/WebStart.php';

est à remplacer par les lignes:


$baseDir = dirname( $_SERVER['SCRIPT_FILENAME'] );
require ( $baseDir . '/includes/WebStart.php' );
unset( $baseDir );

Dans la version d'origine, le fichier "WebStart.php" est cherché dans le répertoire "/web/wiki.39/extensions/NSFileRepo/includes" alors que ce fichier se trouve dans le répertoire "/web/wiki.39/includes".


L'extension "Lockdown" permet de donner des droits très précis. Si vous l'utilisez, son chargement doit se faire avant celle de l'extension NSFileRepo.





retour au menu de MediaWiki