Manuel:$wgActions
| Actions: $wgActions | |
|---|---|
Tableau des valeurs permises pour le paramètre action des pages normales. |
|
| Introduit dans la version : | 1.18.0 (r86041) |
| Retiré dans la version : | Encore utilisé |
| Valeurs autorisées : | (tableau de correspondance des chaînes vers booléen ou chaîne) |
| Valeur par défaut : | voir ci-dessous |
| Autres paramètres : Alphabétique | Par fonction | |
Détails
Tableau des valeurs permises pour le paramètre action des pages normales.
La syntaxe est :
'foo' => 'ClassName'- Charge la classe spécifiée qui sous-classeAction'foo' => true- Charge la classeFooActionqui sous-classeAction.'foo' => false- L'action est désactivée; affiche un message d'erreur
Valeur par défaut
| Version de MediaWiki : | ≥ 1.37 |
/**
* Tableau des valeurs autorisées pour le paramètre "title=foo&action=<action>".
* Voir ActionFactory pour la syntaxe.
* Les valeurs par défaut du noyau sont dans ActionFactory::CORE_ACTIONS, ici nous les redéfinissons.
*/
$wgActions = [];
| Versions de MediaWiki : | 1.32 – 1.36 |
$wgActions = [
'credits' => true,
'delete' => true,
'edit' => true,
'editchangetags' => SpecialPageAction::class,
'history' => true,
'info' => true,
'markpatrolled' => true,
'mcrundo' => McrUndoAction::class,
'mcrrestore' => McrRestoreAction::class,
'protect' => true,
'purge' => true,
'raw' => true,
'render' => true,
'revert' => true,
'revisiondelete' => SpecialPageAction::class,
'rollback' => true,
'submit' => true,
'unprotect' => true,
'unwatch' => true,
'view' => true,
'watch' => true,
];
| Version de MediaWiki : | 1.31 |
$wgActions = [
'credits' => true,
'delete' => true,
'edit' => true,
'editchangetags' => SpecialPageAction::class,
'history' => true,
'info' => true,
'markpatrolled' => true,
'protect' => true,
'purge' => true,
'raw' => true,
'render' => true,
'revert' => true,
'revisiondelete' => SpecialPageAction::class,
'rollback' => true,
'submit' => true,
'unprotect' => true,
'unwatch' => true,
'view' => true,
'watch' => true,
];
| Versions de MediaWiki : | 1.25 – 1.30 |
$wgActions = [
'credits' => true,
'delete' => true,
'edit' => true,
'editchangetags' => 'SpecialPageAction',
'history' => true,
'info' => true,
'markpatrolled' => true,
'protect' => true,
'purge' => true,
'raw' => true,
'render' => true,
'revert' => true,
'revisiondelete' => 'SpecialPageAction',
'rollback' => true,
'submit' => true,
'unprotect' => true,
'unwatch' => true,
'view' => true,
'watch' => true,
];
| Versions de MediaWiki : | 1.19 – 1.24 |
$wgActions = array(
'credits' => true,
'delete' => true,
'edit' => true,
'history' => true,
'info' => true,
'markpatrolled' => true,
'protect' => true,
'purge' => true,
'raw' => true,
'render' => true,
'revert' => true,
'revisiondelete' => true,
'rollback' => true,
'submit' => true,
'unprotect' => true,
'unwatch' => true,
'view' => true,
'watch' => true,
);
| Version de MediaWiki : | 1.18 |
$wgActions = array(
'credits' => true,
'deletetrackback' => true,
'info' => true,
'markpatrolled' => true,
'purge' => true,
'revert' => true,
'revisiondelete' => true,
'rollback' => true,
'unwatch' => true,
'watch' => true,
);
Exemple
Il y a beaucoup de choses que vous pouvez faire avec une action personnalisée, et la meilleure méthode pour découvrir est de parcourir les classes Action, FormAction et FormlessAction dans le code noyau de MediaWiki (car ce sont les classes que vous allez étendre) et de regarder des exemples de pages qui fournissent une fonction similaire à ce que vous avez besoin, soit dans le noyau ou dans les extensions stables et bien supportées.
L'exemple suivant couvre le cas d'utilisation le plus courant, à savoir la génération d'une page personnalisée pour l'action, éventuellement avec quelques arguments supplémentaires d'URL.
class ExampleAction extends Action {
// Cette action est appelée 'example_action'. Cette classe ne sera appelée que si l'action spécifiée est demandée.
public function getName() {
// Ce nom doit être le même que celui utilisé lors de l'enregistrement de l'action dans $wgActions.
return 'example_action';
}
// Cette fonction est appelée chaque fois qu'une page est demandée en utilisant cette action.
// N'utilisez pas les variables globales $wgOut, $wgRequest, etc.
// A la place utilisez les méthodes de la classe Action (par exemple $this->getOutput()).
public function show() {
// Créer les instances locales des variables contextuelles utiles pour simplifier le code ultérieurement.
$out = $this->getOutput();
$request = $this->getRequest();
// La vue est la même pour la page principale et la page de discussion, donc si nous sommes sur la page de discussion alors il faut à la place modifier $Title pour pointer sur la page du sujet.
$title = $this->page->getTitle();
if ( $title->isTalkPage() ) {
$title = $title->getSubjectPage();
}
// définir le titre de la page.
$out->setPageTitle( 'Example Page Title' );
// extraire certains paramètres de l'URL.
$param = $request->getIntOrNull( 'example_param' );
// Fournir un certain travail pour générer le contenu (placé dans $output).
// Sortir les résultats.
$out->addHTML( $output );
// ou
$out->addWikiText( $output );
}
}
Enregistrer la nouvelle action dans extension.json (voir le schéma extension.json) :
"Actions": {
"example_action": "ExampleAction"
},
Désactiver une action
Pour désactiver une action, il suffit d'ajouter les éléments suivants, par exemple pour l'action raw dans votre fichier LocalSettings.php :
$wgActions['raw'] = false;