Manual:Hooks/SkinTemplateNavigation/cs

From Linux Web Expert

Please use Universal instead of this hook if possible. See phab:T255319
SkinTemplateNavigation
<translate> Available from <tvar name=1><translate> version <tvar </tvar></translate>
Změní strukturované navigační odkazy ve SkinTemplates
<translate> Define function:</translate>
public static function onSkinTemplateNavigation( SkinTemplate $skinTemplate, array &$links ) { ... }
<translate> Attach hook:</translate> <translate> In <tvar name=1>extension.json</tvar>:</translate>
{
	"Hooks": {
		"SkinTemplateNavigation": "MediaWiki\\Extension\\MyExtension\\Hooks::onSkinTemplateNavigation"
	}
}
<translate> Called from:</translate> <translate> File(s):</translate> SkinTemplate.php
<translate> Interface:</translate> SkinTemplateNavigationHook.php

<translate> For more information about attaching hooks, see <tvar name=1>Příručka:Háčky </tvar>.</translate>
<translate> For examples of extensions using this hook, see <tvar name=cat>Category:SkinTemplateNavigation extensions/cs</tvar>.</translate>


Podrobnosti

Tento háček mění navigaci pro vzhledy, které používají buildNavigationUrls, jako je Vector ve vzhledech starších než 1.18. V 1.18 se tento háček používá ke generování karet pro všechny vzhledy.

This hook is called on content pages, see the other two SkinTemplateNavigation hooks for other points tabs can be modified at.

V MediaWiki < 1.37 je tento háček volán až po přidání karet, ale před přidáním variant. V 1.37 se tento háček volá poté, co byly přidány karty A varianty.

  • $skinTemplate: Objekt SkinTemplate
  • &$links: Strukturované navigační odkazy
    • Z funkce buildContentNavigationUrls:
    • Strukturované pole odkazů obvykle používaných pro karty ve vzhledu
    • K dispozici jsou 4 standardní sekce:
      • namespaces: Používá se pro záložky jmenného prostoru, jako jsou speciální jmenné prostory, jmenné prostory stránek a diskuse
      • views: Používá se pro primární zobrazení stránky, jako je čtení, úprava, historie
      • actions: Používá se pro většinu dalších akcí na stránce, jako je smazání, ochrana atd...
      • variants: Slouží k výpisu jazykových variant stránky
    • Hodnota každé sekce je pole klíč/hodnota odkazů pro danou sekci. Samotné odkazy mají tyto společné klíče:
      • class: Třídy css, které se mají použít na kartu
      • text: Text, který se má zobrazit na kartě
      • href: href pro kartu, na kterou má odkazovat
      • rel: Volitelný rel= pro odkaz na kartu
      • redundant: Pokud je hodnota true, karta bude ve vzhledech pomocí content_actions odstraněna, což je užitečné pro karty jako "Číst" (read), které mají význam pouze ve vzhledech, které mají zvláštní význam ze seskupené struktury content_navigation

Příklad

// Přidejte záložku "Chat" s action=chat
public static function onSkinTemplateNavigation( SkinTemplate $skinTemplate, array &$links ) {
	$request = $skinTemplate->getRequest();
	$action = $request->getText( 'action' );
	$links['views']['chat'] = array(
		'class' => ( $action == 'chat') ? 'selected' : false,
		'text' => "Chat",
		'href' => $skinTemplate->makeArticleUrlDetails(
			$skinTemplate->getTitle()->getFullText(), 'action=chat' )['href']
	);
}


Příklad, do kterého můžete vložit LocalSettings.php

$wgHooks['SkinTemplateNavigation'][] = function ( $template, &$links ) {
	// přidejte novou záložku jmenného prostoru
	$links['namespaces']['new'] = [
		'class' => '',
		'href' => '#/SkinTemplateNavigation',
		'text' => 'SkinTemplateNavigationTab',
	];

	// přidejte novou akci
	$links['actions']['new'] = [
		'class' => '',
		'href' => '#/SkinTemplateNavigation',
		'text' => 'SkinTemplateNavigation action',
	];

	// přidejte nový pohled
	$links['views']['new'] = [
		'class' => '',
		'href' => '#/SkinTemplateNavigation',
		'text' => 'SkinTemplateNavigation view',
	];
};

Související stránky

  • SpecialPage — vyvoláno na speciálních stránkách, po zvláštní kartě, ale před variantami.
  • Universal — volá se na všech typech stránek po přidání všech karet a variant.