Jump to content

Manual:$wgActions

From mediawiki.org
This page is a translated version of the page Manual:$wgActions and the translation is 63% complete.
Actions: $wgActions
Arranjo de valores permitidos para o parâmetro action em páginas normais.
Introduzido na versão:1.18.0 (r86041)
Removido na versão:ainda em uso
Valores permitidos:(arranjo de cadeias de caracteres mapeadas a booleanos ou a outras cadeias de caracteres)
Valor padrão:ver abaixo

Detalhes

Arranjo de valores permitidos para o parâmetro action em páginas normais.

A sintaxe é:

  • 'foo' => 'ClassName' - Carrega a classe especificada como uma subclasse da Action .
  • 'foo' => true - Carrega a classe FooAction como uma subclasse da Action.
  • 'foo' => false - Desativa a ação; exibe uma mensagem de erro.

Valor padrão

A partir do MediaWiki 1.37, todo valor padrão do núcleo é definido em ActionFactory.php.
Versão MediaWiki:
1.37
/**
 * Arranjo de valores permitidos para o parâmetro "title=foo&action=<action>".
 * Veja ActionFactory para aprender a sintaxe.
 * Valores padrão do núcleo estão em ActionFactory::CORE_ACTIONS. Tudo que for definido neste arquivo substitui aquele.
 */
$wgActions = [];
Versões do 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,
];
Versão 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,
];
Versões do 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,
];
Versões do 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,
);
Versão 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,
);

Exemplo

Há inúmeras coisas que podem ser feitas através de uma ação personalizada, e o melhor método de descobrir isso é navegando pelas classes Action, FormAction e FormlessAction no código do núcleo do MediaWiki (já que essas serão as classes que você estenderá) e consultando exemplos de páginas que fornecem funções semelhantes à que você tem em mente, seja no núcleo como em extensões estáveis.

O seguinte exemplo cobre o caso de uso mais comum, ou seja: gerar uma página personalizada para a ação, com a possibilidade de argumentos extras no URL.

class ExampleAction extends Action {

	// This action is called 'example_action'. <span lang="en" dir="ltr" class="mw-content-ltr">This class will only be invoked when the specified action is requested.</span>
	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 );
	}
}

Registre a nova ação no extension.json (veja o esquema do extension.json ):

	"Actions": {
		"example_action": "ExampleAction"
	},

Desabilitar uma ação

Para desabilitar uma ação, basta adicionar o seguinte (exemplo pensado para uma ação raw) ao seu arquivo “LocalSettings.php”:

$wgActions['raw'] = false;
A desconfiguração de ações integrantes do núcleo poderá causar diversos problemas no software.