Manuel:$wgActions

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 des 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.

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

Depuis MediaWiki 1.37, les valeurs par défaut du noyau sont définies dans ActionFactory.php.
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 du noyau sont dans ActionFactory::CORE_ACTIONS,
 * tout ici va en faire la redéfinition.
 */
$wgActions = [];
Versions de MediaWiki :
1.32 – 1.36
/**
 * Tableau des valeurs permises pour le paramètre "title=foo&action=<action>". 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
 *                             Si quelque chose est spécifié dans getActionOverrides()
 *                             de l'objet Page concerné, il sera utilisé
 *                             à la place de la classe par défaut.
 *     'foo' => false          L'action est désactivée; affichage d'un message d'erreur
 * Désactiver les actions noyau vas probablement provoquer l'apparition de nombreuses incohérences.
 */
$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 invoqué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 quand nous devons changer $Title pour pointer la page du sujet à la place.
		$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' );

		// Faire 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;
Les actions cœur non fixées provoqueront certainement des plaintes importantes.