Příručka:$wgActions
| Akce: $wgActions | |
|---|---|
Pole povolených hodnot pro parametr action pro normální stránky. |
|
| Zavedeno od verze: | 1.18.0 (r86041) |
| Odstraněno od verze: | stále se používá |
| Povolené hodnoty: | (pole mapující řetězce na boolean nebo řetězec) |
| Výchozí hodnota: | viz níže |
| Další nastavení: Podle abecedy | Podle funkce | |
Podrobnosti
Pole povolených hodnot pro parametr action pro normální stránky.
Syntaxe je:
'foo' => 'ClassName'- načte zadanou třídu, která má podtřídyAction'foo' => true- načte tříduFooAction, která podtříduAction'foo' => false- akce je zakázána. Zobrazí chybovou zprávu
Výchozí hodnota
| Verze MediaWiki: | ≥ 1.37 |
/**
* Pole povolených hodnot pro parametr "title=foo&action=<action>". Vidět
* Syntaxi naleznete v ActionFactory.
* Základní výchozí hodnoty jsou v ActionFactory::CORE_ACTIONS, cokoli zde je přepíše.
*/
$wgActions = [];
| Verze 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,
];
| Verze 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,
];
| Verze 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,
];
| Verze 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,
);
| Verze 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,
);
Příklad
S vlastní akcí můžete dělat hodně a nejlepší metodou, jak to zjistit, je procházet třídy Action, FormAction a FormlessAction v základním kódu MediaWiki (protože to jsou třídy, které budete rozšiřovat) a podívat se na příklady stránky, které poskytují podobnou funkci, jakou požadujete, buď v jádru, nebo ve stabilních a dobře podporovaných rozšířeních.
Následující příklad popisuje nejběžnější případ použití, jmenovitě vygenerování vlastní stránky pro akci, případně s některými dalšími argumenty adresy URL.
class ExampleAction extends Action {
// Tato akce se nazývá 'example_action'. Tato třída bude volána pouze tehdy, když je požadována zadaná akce.
public function getName() {
// Mělo by se jednat o stejný název, jaký byl použit při registraci akce v $wgActions.
return 'example_action';
}
// Toto je funkce, která je volána vždy, když je pomocí této akce požadována stránka.
// Neměli byste používat globální hodnoty $wgOut, $wgRequest atd.
// Místo toho použijte metody poskytované třídou Action (např. $this->getOutput()).
public function show() {
// Vytvořte místní instance kontextových proměnných, které potřebujeme, abychom zjednodušili pozdější kód.
$out = $this->getOutput();
$request = $this->getRequest();
// Zobrazení je stejné pro hlavní stránku i diskusní stránku, takže pokud jsme na diskusní stránce, musíme změnit $Title tak, aby odkazovalo na stránku s předmětem.
$title = $this->page->getTitle();
if ( $title->isTalkPage() ) {
$title = $title->getSubjectPage();
}
// Nastavte název stránky.
$out->setPageTitle( 'Example Page Title' );
// Získejte nějaké parametry z adresy URL.
$param = $request->getIntOrNull( 'example_param' );
// Udělejte nějaké interní věci pro generování obsahu (umístěného do $output).
// Výstup výsledků.
$out->addHTML( $output );
// nebo
$out->addWikiText( $output );
}
}
Zaregistrujte novou akci v extension.json (viz schéma extension.json):
"Actions": {
"example_action": "ExampleAction"
},
Zakázat akci
Chcete-li akci zakázat, stačí přidat následující, např. pro akci raw do vašeho souboru "LocalSettings.php":
$wgActions['raw'] = false;