Manuel:$wgActions

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:$wgActions and the translation is 100% complete.
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

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

Since MediaWiki 1.37, core defaults are defined in ActionFactory.php.
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;
Les actions cœur non fixées provoqueront certainement des plaintes importantes.