Jump to content

Extension:SubpageNavigation

From mediawiki.org
This page is a translated version of the page Extension:SubpageNavigation and the translation is 99% complete.
Manuel des extensions MediaWiki
SubpageNavigation
État de la version : stable
Implémentation Accroche , Page spéciale
Description affiche les enfants directs de la page actuelle dans l'entête de l'article, fournit l'arborescence dynamique des sous-pages dans la barre latérale et une page spéciale pour parcourir toutes les pages et les sous-pages du wiki de différentes façons
Auteur(s) thomas-topway-it (thomas-topway-itdiscussion)
Dernière version 1.2.2 (2025-09-26)
Politique de compatibilité Le master conserve la compatibilité arrière.
MediaWiki 1.35+
  • $wgSubpageNavigationShowTree
  • $wgSubpageNavigationDisableSidebarLi
  • $wgSubpageNavigationArticleHeaderSubpagesLimit
  • $wgSubpageNavigationCacheStore
  • $wgSubpageNavigationDisablePaths
  • $wgSubpageNavigationTreeSubpagesLimit
  • $wgSubpageNavigationRestrictNamespaces
  • $wgSubpageNavigationDefaultOptions
  • $wgSubpageNavigationDisableCache
  • $wgSubpageNavigationCountSubpagesLimit
  • $wgSubpageNavigationShowBreadcrumbs
  • $wgSubpageNavigationShowArticleHeader
  • $wgSubpageNavigationTreeShowChildrenCount
  • subpagenavigation-can-browse-subpages
Licence Licence publique générale GNU v2.0 ou ultérieur
Téléchargement
Traduire l’extension SubpageNavigation sur translatewiki.net si elle y est disponible

SubpageNavigation affiche une liste repliable de sous-pages dans l'entête de chaque article, y compris les articles vides, avec les sous-pages. A la différence des extensions similaires, SubpageNavigation n'a pas besoin d'ajouter de fonction d'analyse syntaxique dans le wikicode et elle affiche uniquement que les enfants directs d'une page. (un enfant direct peut néanmoins comporter des barres obliques si la page parent n'existe pas). Elle fournit également un espace de navigation au-dessus du titre et une page spéciale permettant d'afficher toutes les pages du wiki groupées en sous-pages, de la même manière que dans le gestionnaire de fichiers de GitHub.

Depuis la version 1.2 SubpageNavigation fournit également une arborescence dynamique dans la barre latérale (compatible avec l'habillage Vector et Habillage:Chameleon ) inspiré de Extension:CategoryTree .

Après son installation, l'extension ajoute un lien vers la page spéciale Browse subpage dans le panneau gauche, par lequel vous pouvez parcourir toutes les pages et les sous-pages du wiki de 3 façons différentes et par espace de noms, et rend disponibles les composants décrits ci-dessous.


Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé SubpageNavigation dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SubpageNavigation
    
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'SubpageNavigation' );
    
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Composants

Tous les composants suivants peuvent être affichés (masqués) en utilisant les paramètres globaux ci-dessous.

Liste repliable des sous-pages dans l'entête de l'article

L'extension affichera une entête comme ci-dessous pour n'importe quelle page de votre wiki avec ses sous-pages, sans avoir besoin d'ajouter de fonction d'analyse syntaxique.

La liste des sous-pages s'affiche aussi pour les articles non existants, c'est utile par exemple lorsque les sous-pages sont créées par programme : cependant, si les pages intermédiaires sont vides, les enfants ne seront pas regroupés dans la page spéciale « Browse subpages », il est donc toujours préférable d'avoir un article vide pour chaque niveau intermédiaire (sauf si le titre lui-même ne contient pas de barre oblique, dans ce cas il sera géré correctement par l'extension).

Quand la liste des sous-pages affichées pour un article donné dépasse un seuil prédéfini, SubpagesNavigation affiche un lien permettant à l'utilisateur d'explorer la liste entière des sous-pages avec la navigation MediaWiki standard.

Cette fonctionnalité peut être désactivée en définissant $wgSubpageNavigationShowArticleHeader = false; dans LocalSettings.php après avoir inclus l'extension.

Arborescence dynamique

Depuis la version 1.2 SubpageNavigation fournit une arborescence dynamique, inspirée (et dérivée techniquement) de Extension:CategoryTree , qui permet de naviguer à travers toutes les pages et sous-pages de l'espace de noms actuel comme vous le feriez avec un système de fichiers typique. Si une branche dépasse une limite donnée (configurable avec le paramètre global $wgSubpageNavigationTreeSubpagesLimit) la liste complète des sous-pages peut être explorée avec la page spéciale décrite ci-dessous.

Les sous-pages sont récupérées dynamiquement de l'arborescence et la branche (le chemin) actuelle est ouverte en statique. Le nombre d'enfants est également affiché pour les pages qui ont des sous-pages.

L'arborescence (avec les autres moyens de présenter les sous-pages) prend en charge LocalServerObjectCache (pour les serveurs prenant en charge APCu ou WinCache) et SessionCache (activé par défaut) pour améliorer les performances. Voir Cache des objets pour plus d'informations.

Pour activer l'arborescence dynamique pour l'habillage Chameleon utiliser la déclaration suivante dans LocalSettings.php  :

wfLoadExtension( 'SubpageNavigation' );
$wgSubpageNavigationShowTree = true;

wfLoadExtension( 'Bootstrap' );
wfLoadSkin( 'chameleon' );
$wgDefaultSkin='chameleon';
$egChameleonLayoutFile = __DIR__ . '/extensions/SubpageNavigation/resources/ChameleonLayout.xml';


Si vous avez déjà votre propre affichage Chameleon, utilisez le composant suivant pour générer l'arborescence ainsi :

<component type="SubpageNavigationTree" />

(pour plus d'informations sur les affichages Chameleon et les composants, voir ici)

Lorsque la page courante possède une page parent, l'extension (tout comme le fait déjà Mediawiki en activant $wgNamespacesWithSubpages pour l'espace de noms actuel) affichera aussi une navigation simplifiée de la manière suivante :

La navigation simplifiée est également affichée sur les pages spéciales, de sorte que l'utilisateur peut facilement revenir à la liste des pages spéciales.

A la différences des accès simplifiés standards de Mediawiki, la navigation simplifiée de SubpageNavigation se distingue par les différences suivantes :

  • les accès simplifiés sont affichés au-dessus du titre plutôt qu'en dessous (ce qui offre une meilleure mise en page de l'en-tête lorsqu'ils sont combinés avec l'entête des sous-pages)
  • la navigation simplifiée s'affiche aussi sur les pages spéciales
  • la page actuelle est également affichée sous forme simplifiée (en texte ordinaire et non comme lien)
  • seul le nom de la page actuelle (ou de la page de destination) est affiché comme titre de l'article au lieu du chemin complet (par exemple Main/Sub 1/Sub 2 apparaît comme Sub 2). (voir ici et ici à titre de comparaison)

Cette fonctionnalité peut être désactivée en initialisant $wgSubpageNavigationShowBreadcrumbs = false; dans LocalSettings.php après avoir inclus l'extension.

Page spéciale Browse subpages

La page spéciale Browse subpages permet de naviguer sur toutes les pages du wiki avec des sous-pages, dans chaque espace de noms spécifique, selon 3 modes spécifiques (en regroupant les sous-pages, pages avec enfants, et à la manière du système de fichiers).

A la différence des autres composants décrits plus tôt (principalement la liste des sous-pages de l'entête et l'arborescence dynamique) cette page spéciale permet de naviguer dans la liste complète des sous-pages d'un chemin spécifique (branche de l'arborescence) via la navigation MediaWiki standard, et ce jusqu'à ce que de tels composants atteignent leur limite spécifique, ils redirigent vers cette page spéciale via le lien show all....

Le panneau de navigation permet de choisir entre 3 modes différents de n'importe quel espace de noms : default, folders, et filesystem. Le premier mode (default) affichera ensemble les articles avec des sous-pages et les articles sans sous-page, mais regroupera les articles avec des sous-pages (seulement en montrant leurs enfants directs pour un niveau donné). Le second mode (folders), affichera uniquement les articles avec des enfants, et le mode filesystem affichera d'abord les articles avec des enfants puis les articles sans enfants.

Chaque niveau peut être simplement lié à partir d'un autre article du wiki pointant vers la même page spéciale en ajoutant le chemin désiré après le nom de la page spéciale, ainsi :

Special:SubpageNavigationBrowse/Main_Page/a

Paramètres globaux

variable description par défaut
$wgSubpageNavigationShowTree afficher (masquer) l'arborescence dynamique dans la barre latérale false
$wgSubpageNavigationShowArticleHeader afficher (masquer) l'entête de l'article avec la liste des sous-pages true
$wgSubpageNavigationShowBreadcrumbs afficher (masquer) la navigation simplifiée true
$wgSubpageNavigationTreeShowChildrenCount afficher (masquer) le nombre d'enfants dans l'arborescence true
$wgSubpageNavigationTreeSubpagesLimit limite pour chaque branche de l'arbre 30
$wgSubpageNavigationArticleHeaderSubpagesLimit nombre maximum de sous-pages affichées dans l'entête de l'article 20
$SubpageNavigationCacheStore cache par défaut, LocalServerObjectCache ou SessionCache SessionCache
$wgSubpageNavigationDisableCache désactiver le cache false
$wgSubpageNavigationRestrictNamespaces montrer l'arborescence uniquement pour les espaces de noms spécifiques []
$wgSubpageNavigationDisablePaths désactive l'affichage des sous-pages pour des chemins particuliers []
$wgSubpageNavigationDisableSidebarLink disable page tree in side bar []

Exemples de paramètres

$wgSubpageNavigationShowTree = true;
$wgSubpageNavigationShowArticleHeader = false;
$wgSubpageNavigationShowBreadcrumbs = false;
$wgSubpageNavigationTreeShowChildrenCount = true;
$wgSubpageNavigationTreeSubpagesLimit = 50;
$wgSubpageNavigationArticleHeaderSubpagesLimit = 30;
$wgSubpageNavigationCacheStore = 'LocalServerObjectCache';
$wgSubpageNavigationDisableCache = false;

// @see https://www.mediawiki.org/wiki/Extension:ContactManager
$wgSubpageNavigationDisablePaths = [
	'ContactManager:Mailboxes',
	'ContactManager:Contacts',
];


Droits et privilèges

Groupes

L'extension crée les groupes suivants (ils peuvent être alloués aux utilisateurs via la page spéciale standard Special:UserRights) : Seuls les utilisateurs de ces groupes peuvent naviguer sur les sous-pages via la page spéciale dédiée.

groupe description
subpagenavigation-admin permet aux utilisateurs d'accéder à la page spéciale dédiée pour parcourir le wiki via les sous-pages et les espaces de noms.

L'extension crée les droits utilisateur suivants.

droits description
subpagenavigation-can-browse-subpages peut afficher les sous-pages

Droits des groupes

groupe le gestionnaire des contacts peut parcourir les sous-pages
sysop v
bureaucrat v
subpagenavigation-admin v

Problèmes connus

Actuellement la navigation simplifiée est désactivée dans l'habillage Vector-2022.

Feuille de route

  • implémenter la navigation Ajax dans l'arborescence de manière similaire à la navigation des tables de phpMyAdmin
  • activer la navigation simplifiée aussi dans Vector 2022, en utilisant l'accroche AfterFinalPageOutput et le DOMDocument pour utiliser la sortie (la navigation simplifiée est actuellement insérée dans les indicateurs d'état des pages néanmoins dans Vector 2022 elle se trouve sous le titre plutôt qu'au dessus, et il semble qu'il n'y ait pas avec PHP d'autre manière d'afficher les indicateurs au-dessus du titre)
  • utiliser le constructeur de requêtes de la nouvelle bibliothèque rdbms pour obtenir les sous-pages du noyau (au lieu de la ligne sql)
  • afficher (masquer) les composants en fonction des groupes utilisateur

A faire

  • effacer le cache à la suppression de page pour la page associée

Support et bogues

Veuillez publier les messages d'erreur sur la page de discussion.

Pour le support professionnel, veuillez écrire à cette adresse courriel.

Voir aussi