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 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.
Cette méthode de définition des actions personnalisées remplace le hook UnknownAction déconseillé. Pour plus d'informations sur la migration du code hook existant vers l'approche basée sur la classe, consultez la section migration de la page de hook .
La syntaxe est:
'foo' => 'ClassName'
- Charge la classe spécifiée qui sous-classe Action'foo' => true
- Charge la classe FooAction qui sous-classe Action'foo' => false
- L'action est désactivée; affiche un message d'erreur
Valeur par défaut
Version de MediaWiki : | ≥ 1.37 |
/**
* Array of allowed values for the "title=foo&action=<action>" parameter. See
* ActionFactory for the syntax. Core defaults are in ActionFactory::CORE_ACTIONS,
* anything here overrides that.
*/
$wgActions = [];
Versions de MediaWiki : | 1.32 – 1.36 |
/**
* Array of allowed values for the "title=foo&action=<action>" parameter. Syntax is:
* 'foo' => 'ClassName' Load the specified class which subclasses Action
* 'foo' => true Load the class FooAction which subclasses Action
* If something is specified in the getActionOverrides()
* of the relevant Page object it will be used
* instead of the default class.
* 'foo' => false The action is disabled; show an error message
* Unsetting core actions will probably cause things to complain loudly.
*/
$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 de découverte est de parcourir les classes Action, FormAction et FormlessAction dans le code MediaWiki de base (comme 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 URL supplémentaires.
class ExampleAction extends Action {
// This action is called 'example_action'. This class will only be invoked when the specified
// action is requested.
public function getName() {
// This should be the same name as used when registering the action in $wgActions.
return 'example_action';
}
// This is the function that is called whenever a page is being requested using this action.
// You should not use globals $wgOut, $wgRequest, etc. Instead, use the methods provided
// by the Action class (e.g. $this->getOutput()), instead.
public function show() {
// Create local instances of the context variables we need, to simplify later code.
$out = $this->getOutput();
$request = $this->getRequest();
// The view is the same for the main page and the talk page, so if we're on the
// talk page then we need to change $Title to point to the subject page instead.
$title = $this->page->getTitle();
if ( $title->isTalkPage() ) {
$title = $title->getSubjectPage();
}
// Set page title.
$out->setPageTitle( 'Example Page Title' );
// Get some parameters from the URL.
$param = $request->getIntOrNull( 'example_param' );
// Do some internal stuff to generate the content (placed in $output).
// Output the results.
$out->addHTML( $output );
// or
$out->addWikiText( $output );
}
}
Enregistrer la nouvelle action dans extension.json (voir extension.json schéma):
"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;