FAQ des extensions
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.
$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 );
où $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
.
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.