FAQ des extensions

From mediawiki.org
This page is a translated version of the page Extensions FAQ and the translation is 100% complete.
Extensions MediaWiki

Où se trouve la liste des extensions installées ?

La page Special:Version de chaque wiki contient la liste des extensions qui se sont enregistrées individuellement via le logiciel MediaWiki . Toutes les extensions peuvent être installées sans apparaître sur Special:Version si le développeur n'a pas inclus le code correct pour qu'elle puisse être listée.

Comment activer une extension ?

Pour la plupart des extensions, copier le fichier PHP (ou le répertoire) dans votre dossier extensions/ et ajouter la déclaration suivante dans votre LocalSettings.php , avec ExtensionName représentant le nom du fichier de votre extension, comme par exemple MonExtension.php.

require_once "extensions/ExtensionName/ExtensionName.php";

Depuis 1.25 (2015), il existe une nouvelle manière d'installer les extensions qui fonctionne avec les extensions qui prennent en charge l'enregistrement des extensions. L'équivalent pour l'extension ci-dessus serait :

wfLoadExtension('ExtensionName');

Certaines extensions néanmoins possèdent des étapes supplémentaires et (ou) différentes procédures d'installation. Certaines extensions contiennent le fichier texte README (quelques fois INSTALL) qui regroupe des informations plus détaillées à propos de ces extensions.

Voir aussi : Installer une extension

Comment écrire sa propre extension ?

Voir Développement d'extensions .

Comment désactiver la mise en cache des pages en utilisant mon extension ?

Si vous écrivez par exemple une page spéciale :

global $wgOut;
$wgOut->enableClientCache(false);

Pour les accroches des balises de l'analyseur syntaxique :

function wfSomeHookFunction( $parser, $foo, $bar ) {
    $parser->getOutput()->updateCacheExpiry(0);
    ...
}

Si la sortie de votre extension dépend uniquement de certaines options ou du contexte utilisateur et non pas du temps, vous pouvez toujours la faire enregistrer dans le cache de l'analyseur syntaxique mais assurez-vous qu'elle soit marquée comme une variante de sortie (parmi les nombreuses possibles). Utiliser l'accroche PageRenderingHash pour influencer le hachage du cache en conséquence.

Dans les versions plus anciennes de MediaWiki on utilisait $parser->disableCache() pour désactiver l'utilisation du cache, mais cela est devenu obsolète dans MW 1.28 et a complètement été supprimé en MW 1.35.

Comment générer le wikicode dans votre extension ?

Pages spéciales

Lors du rendu de la sortie qui ne dépend pas du cache de l'analyseur, comme par exemple une page spéciale

global $wgOut;
$wgOut->parse( $text );

$text est le wikicode à analyser.

Accroches de l'analyseur syntaxique

Voir la section sur la génération du wikicode par l'extension

Comment permettre la recherche dans la sortie de votre extension (contenu dynamique) ?

C'est impossible. Le contenu dynamique ne peut pas être inclus dans un index statique.

Comment éviter la modification de la sortie HTML de votre extension ?

Voir Comment empêcher que la sortie HTML des extensions ne soit modifiée

Comment passer des paramètres au format XML à ma balise d'extension ?

Voir Passer des paramètres au format XML à votre extension

Extensions et modèles

Voir Extensions et les modèles du manuel

"NaodW..." ou "UNIQ..."

Votre extension (ou toute autre installée) peut utiliser la fonction parse() au lieu de recursiveTagParse(). Alors modifiez-la en recursiveTagParse (en utilisant l'analyseur passé en paramètre ou $wgParser).

Comment déterminer dans votre extension si un article est protégé ou pas ?

Utiliser la classe Title et la méthode isProtected( ) ainsi :

function extensionFunction() {
   # Suppose que $title est un objet titre
   if( $title->isProtected( 'edit' ) ) {
      # Protégé des modifications, faire des choses
   } else {
      # Non protégé des modifications
   }
}

Quels droits accorder aux dossiers des extensions ?

Tous les scripts de la structure /wiki doivent être lisibles et exécutables par l'utilisateur qui exécute le PHP. Les privilèges sont tous habituellement 755 et le propriétaire (ou le groupe) des utilisateurs différents. Le fichier LocalSettings.php est créé par le script lors de la configuration et sera un exemple pour paramétrer le reste.

Comment faire apparaître mon extension dans Special:Version ?

Voir Enregistrer les fonctionnalités avec MediaWiki