Jump to content

Manual:Hooks/SkinTemplateNavigation/cs

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

For more information about attaching hooks, see Příručka:Háčky .
For examples of extensions using this hook, see Category:SkinTemplateNavigation extensions/cs.


Podrobnosti

[edit]

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

[edit]
// 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

[edit]