Příručka:Rozhraní/Postranní menu

From mediawiki.org
This page is a translated version of the page Manual:Interface/Sidebar and the translation is 100% complete.
Příklad postranního menu
Viz také: Příručka:Odebrat karty

MediaWiki:Sidebar umožňuje uživateli upravit navigační panel. Navigační panel, který poskytuje odkazy na nejdůležitější místa na wiki a poskytuje správcům stránek místo pro přidání důležité sbírky odkazů. Většina wiki například odkazuje na svou komunitní diskusní stránku a stránky s užitečnými nástroji.

U vzhledů Monobook a Vector je menu umístěno nalevo (u jazyků psaných zprava doleva napravo) – odtud také postranní menu. Zobrazuje se, jako vyhledávací pole, na každé stránce. Jiná zobrazení jej mohou mít umístěné jinak. Tento postranní panel se nezobrazuje uživatelům webu Mobile (tj. verze webu vytvořená Extension:MobileFrontend / Skin:MinervaNeue – k zobrazení použijte háček MobileMenu ).

Úprava postranního menu

Chcete-li upravit MediaWiki:Sidebar na wiki, musíte být nejprve přihlášeni jako uživatel, který má oprávnění editinterface. Pro administrátory je tato možnost ve výchozím nastavení povolena.[1]

Přístup k MediaWiki: SideBar má buď:

  • Jít na http://yourdomain/wiki/index.php?title=MediaWiki:Sidebar&action=edit ve vašem prohlížeči.
  • Zadání MediaWiki: Sidebar na vyhledávací lištu a ověření s Enter.
  • Ze Special:AllMessages, hledání "side" (strana).

Zde je příklad kódu přidaného v MediaWiki:Sidebar pro postranní panel:

* navigation
** mainpage|Accueil
** Special:RecentChanges|Recent changes
* new heading
** portal-url|Forums
** https://www.mediawiki.org|MediaWiki home

Tento příklad bude mít za následek následující postranní panel:

Příklad postranního panelu
Pokud musíte vytvořit novou stránku, zobrazí se vám výchozí obsah postranního panelu v editoru. Chcete-li úspěšně vytvořit stránku MediaWiki:Sidebar, musíte před uložením změnit obsah.

Rozdělení navigační lišty do nových sekcí

Navigační panel lze rozdělit na části, z nichž každá má svůj vlastní nový nadpis. To se provádí přidáním jedné hvězdičky.

Nadpis pro každou sekci je převzat z prvku seznamu první úrovně ("navigace" (navigation) a "nový nadpis" (new heading) v příkladu výše). Pokud tento text odpovídá názvu zprávy rozhraní (existující stránka tohoto názvu ve jmenném prostoru MediaWiki), pak se jako štítek použije text této stránky. Jinak se nadpis záhlaví použije tak, jak je. Vezměte prosím na vědomí, že {{int:}} magické slovo nefunguje, protože je zbytečné: MediaWiki automaticky hledá překlad, který by se měl zobrazit předtím, než se vrátí k výchozí zprávě.

Ve výše uvedeném příkladu jsou * navigation a * new heading nadpisy oddílů.

Vytváření odkazů v postranním panelu

Odkazy jsou vytvořeny s 2 hvězdičkami (nazývané prvky druhé úrovně). Například:

** cíl|text odkazu
cíl
Cílem odkazu může být název zprávy rozhraní (stránky ve jmenném prostoru MediaWiki) nebo stránky wiki nebo externí odkaz. V obou případech může být odkaz interní, interwiki nebo externí.[2]
Chcete-li určit cíl, postupujte takto:
  1. Získejte cílový text.
  2. Pokud existuje aktuální nebo výchozí zpráva rozhraní s tímto názvem, použijte místo cílového textu obsah této zprávy.
  3. Pokud je výstupem z předchozího kroku platná URL (začínající http:// nebo jiným URL protokolem), bude odkaz ukazovat na tuto URL.
  4. V opačném případě to bude považovat za cíl odkazu na wikilink (odkazující na název této stránky nebo interwiki).
  5. V případě, že bude odkazem '-', bude celý záznam odstraněn z postranního panelu. (To je užitečné pro odstranění záznamu ve všech jazycích změnou zprávy obsahující odkaz).
Příklady:
  • "** portal-url|portal" používá text MediaWiki:Portal-url (který obsahuje "Project:Community portal").
  • "** https://www.mediawiki.org|MediaWiki home" odkazuje na https://www.mediawiki.org, protože toto je platná adresa URL.
  • "** Special:RecentChanges|Recent changes" odkazuje na Special:RecentChanges, protože neexistuje žádná zpráva rozhraní s tímto názvem a není to platná adresa URL.
  • "** w:Foo|Some interwiki page" odkazuje na w:Foo ze stejného důvodu.
text odkazu
Text odkazu může být název zprávy rozhraní (stránka ve jmenném prostoru MediaWiki) nebo prostý text.
  • Pokud je text odkazu názvem existující nebo výchozí zprávy rozhraní, použije se obsah této zprávy. MediaWiki zkontroluje lokalizované verze. Například pokud je aktuálním jazykem fr (francouzština) a text odkazu je zpráva rozhraní "forum", před použitím "forum" zkontroluje přítomnost "forum/fr".
  • Jinak se text odkazu použije jako cíl tak, jak je.
  • Všimněte si, že text odkazu je nevolitelný jako u normálních odkazů na wiki. Pokud text odkazu chybí, položka je ignorována.
Příklady:
  • ** Homepage|hlavní stránka používá MediaWiki:Mainpage (kterou obsahuje "MediaWiki").
  • ** Special:Recentchanges|Poslední změny používá "Poslední změny", protože neexistuje žádná zpráva rozhraní s tímto názvem.

Pořadí sekcí (prvků)

Některé vzhledy umožňují přizpůsobení pořadí některých speciálních prvků, jako je vyhledávací lišta, sada nástrojů a jazyky. To lze provést přidáním speciálních klíčových slov SEARCH, TOOLBOX a LANGUAGES do MediaWiki:Sidebar pomocí syntaxe nadpisu.

Některé vzhledy jako MonoBook však již nepodporují definování pozice vyhledávacího prvku a místo toho je vyhledávací prvek umístěn hned za první částí postranního panelu. V takovém případě, pro přesun vyhledávacího prvku nahoře, má řešení definovat prázdnou vedoucí sekci. Například:

* empty section
* navigation
** mainpage|mainpage
** Special:Recentchanges|Recent changed
* new heading
** portal-url|portal
** https://www.mediawiki.org|MediaWiki home

Všimněte si, že některé vzhledy mohou zobrazit první sekci odlišně nebo umístit nějaký prvek mezi první a druhou část (pokud existuje).

Popisky a přístupový klíč

Popisek je zpráva, která se objeví, když je kurzor umístěn nad ikonou, obrázkem, hypertextovým odkazem nebo jiným prvkem v grafickém uživatelském rozhraní.

Pokud přidáte položku na postranní panel, nebude mít žádný "popisek". Můžete však vytvořit nápovědu takto:[3]

  • vytvořte wiki stránku s názvem "MediaWiki:Tooltip-n-<id položky>"
  • a vložte na tuto stránku popisek.

Přístupový klíč nebo accesskey umožňuje uživateli počítače okamžitě přejít na určitou část webové stránky pomocí klávesnice.

Přístupové klíče lze také vytvořit takto:

  • vytvořte wiki stránku s názvem "MediaWiki:Accesskey-n-<id položky>"
  • a vložte přístupový klíč na tuto stránku.

Příklad:

Překlady

Řetězce, které používáte, můžete přeložit úpravou příslušných stránek ve jmenném prostoru MediaWiki.

Příklad: Řetězec, který nahradí položku s názvem "mainpage" (hlavní stránka), je převzat z MediaWiki:Mainpage. Pro nastavení/změnu tohoto textu pro uživatele, kteří zobrazují vaši wiki v němčině, můžete umístit odpovídající text na stránku MediaWiki:Mainpage/de.

Tímto způsobem můžete snadno překládat tyto texty prostřednictvím rozhraní MediaWiki.

Upozorňujeme, že MediaWiki bude standardně používat obsah stránky postranního panelu v tom jazyce, který odpovídá výchozímu jazyku vaší wiki. Pokud tedy vaše wiki např. používá francouzštinu jako výchozí jazyk, upravte MediaWiki:Mainpage/fr tak, aby se všem uživatelům, kteří nezměnili nastavení jazyka, a všem anonymním uživatelům zobrazil upravený postranní panel.

Pro pokročilejší překlad viz Nápověda:Rozšíření:Translate/Překlad nestrukturovaných elementů .

Pokročilé přizpůsobení

Postranní panel lze plně přizpůsobit implementací JavaScript nebo Cascading Style Sheets nebo přímou úpravou souborů PHP. Před použitím těchto metod si uvědomte, že:

  • JavaScript je křehký: Nebude fungovat uživatelům s vypnutým JavaScriptem a skripty často selhávají v různých prohlížečích nebo vzhledech.
  • Úprava souborů PHP může snadno způsobit neočekávané chyby a vaše změny budou ztraceny při příští aktualizaci, pokud nové soubory nezměníte ručně.

Odstranění postranního panelu a hlavního loga na MediaWiki:Sidebar

Chcete-li úplně odstranit postranní panel a logo:

Prázdná stránka MediaWiki: Sidebar a ukládání

Poté přidejte:

#column-content { margin: 0 0 1em 0; }
#content { margin: 0 0 0 0; }
#p-cactions { left: .1em; }

Tím přesunete hlavní text vaší wiki doleva.

Úplné odstranění postranního panelu, karty a vyhledávacího panelu

Viz také: Příručka:Odebrání karet

Odstranění loga a celého postranního panelu:

#p-logo, .generated-sidebar, #p-lang, #p-tb  { display:none; }

Smazání vyhledávacího pole:

#p-search { display:none; }

Smazání záložky diskuse:

#ca-talk { display:none!important; }

Odstranění karty Stránka:

#ca-nstab-main { display:none!important; }

Přinucení zpráv uživatelského rozhraní, ke sledování obsahu

Některé stránky by se někdy měly řídit jazykem obsahu, zejména u vícejazyčných webů. To lze ovládat nastavením $wgForceUIMsgAsContentMsg . Každá zpráva přepsaná tímto způsobem musí být explicitně zadána, například aby postranní panel odkazoval na verze dané jazykem obsahu pro hlavní stránku a stránku portálu přidejte následující

LocalSettings.php

code
$wgForceUIMsgAsContentMsg = [ 'mainpage', 'portal-url' ];

Přidání nebo odebrání sekce panelu nástrojů (JavaScript)

Toolbox se objeví vlevo pod MediaWiki:Sidebar. Sada nástrojů je dynamický prvek vyžadující programové metody, jako jsou rozšíření vzhledu, PHP (viz skins/MonoBook.php a vytvoření nového vzhledu) nebo JavaScript.

JavaScriptové řešení používá User:{username}/common.js / MediaWiki:Common.js, dostupné pro MediaWiki 1.9+.

Nyní jednoduše nakonfigurujte, který odkaz se má objevit ve které sekci. Pokud chcete, můžete také některé odkazy odstranit.

code

function ModifySidebar( action, section, name, link ) {
	try {
		switch ( section ) {
			case 'languages':
				var target = 'p-lang';
				break;
			case 'toolbox':
				var target = 'p-tb';
				break;
			case 'navigation':
				var target = 'p-navigation';
				break;
			default:
				var target = 'p-' + section;
				break;
		}

		if ( action == 'add' ) {
			var node = document.getElementById( target )
							   .getElementsByTagName( 'div' )[0]
							   .getElementsByTagName( 'ul' )[0];

			var aNode = document.createElement( 'a' );
			var liNode = document.createElement( 'li' );

			aNode.appendChild( document.createTextNode( name ) );
			aNode.setAttribute( 'href', link );
			liNode.appendChild( aNode );
			liNode.className = 'plainlinks';
			node.appendChild( liNode );
		}

		if ( action == 'remove' ) {
			var list = document.getElementById( target )
							   .getElementsByTagName( 'div' )[0]
							   .getElementsByTagName( 'ul' )[0];

			var listelements = list.getElementsByTagName( 'li' );

			for ( var i = 0; i < listelements.length; i++ ) {
				if (
					listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
					listelements[i].getElementsByTagName( 'a' )[0].href == link
				)
				{
					list.removeChild( listelements[i] );
				}
			}
		}


	} catch( e ) {
		// prostě ignorujme, co se stalo
		return;
	}
}

function CustomizeModificationsOfSidebar() {
	// přidává [[Special:CategoryTree|Special:CategoryTree]] do sady nástrojů
	ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'https://en.wikipedia.org/wiki/Special:CategoryTree' );
	// odebere [[Special:Upload|Special:Upload]] ze sady nástrojů
	ModifySidebar( 'remove', 'toolbox', 'Upload file', 'https://en.wikipedia.org/wiki/Special:Upload' );
}

jQuery( CustomizeModificationsOfSidebar );
Použití
function CustomizeModificationsOfSidebar() musí být přizpůsoben pro přidávání nebo odstraňování odkazů v konkrétních sekcích:
ModifySidebar( "action", "section", "name", "link" );
parametr hodnota
action add pro přidání odkazu; remove pro odstranění odkazu
section navigation, toolbox, languages ale také jakékoli jiné existující přizpůsobené sekce; daný odkaz bude přidán nebo odstraněn z této sekce
name obsahuje text odkazu
link obsahuje URL odkazu

Omezení úprav na určité skupiny uživatelů

Pokud chcete omezit úpravy odkazů na určitou skupinu uživatelů (např. byrokrat), změňte:

jQuery( CustomizeModificationsOfSidebar );

na

if ( mw.config.get( 'wgUserGroups', [] ).indexOf( 'bureaucrat' ) !== -1 ) {
	jQuery( CustomizeModificationsOfSidebar );
}

Pro omezení úprav na IP místo na konkrétní skupinu uživatelů použijte

if ( mw.config.get( 'wgUserGroups', [] ).indexOf( 'user' ) === -1 ) {
	jQuery( CustomizeModificationsOfSidebar );
}

Přidání nebo odebrání sekce sady nástrojů (PHP)

Do svého souboru LocalSettings.php můžete přidat háček popsaný na této stránce. Díky tomu můžete pomocí MediaWiki:Sidebar upravovat odkazy v panelu nástrojů (odebrat některé odkazy, změnit jejich název) a přidávat vlastní odkazy (např. přidat odkaz "Poslední změny" do navigačního panelu).

Vytvoření rozbalovacího či sbalovacího postranního panelu pro všechny uživatele (pouze vzhled Monobooku)

Pokud používáte vzhled Monobooku a nechcete minout rozbalitelný panel nabídek např. Vector skin, vložte následující kód do MediaWiki:Monobook.js své wiki.

/////////////////////////////////////////////////////////
// Fragment kódu, aby bylo možné položky postranního panelu rozbalit. 
// Tento kód použijte POUZE pro vzhled Monobooku. 
/////////////////////////////////////////////////////////

$( document ).ready( function() {
	// Nastavte výchozí rozbalené položky podle jejich nadpisu
	var defaultExpandItems = ['Navigation', 'Orga'];
	// Nastavte základní název pro soubory cookie, které uloží aktuální stav rozbalení
	var expandCookieName = 'disdance_project_wiki_nav_expanded_';

var maxHeights = [];
	var expandeds = [];
	var labels = [];
	initNav();
});

function initNav() {
	$( '#p-logo' ).css({'position': 'relative', 'display': 'block'});
	$( '.generated-sidebar h5,#p-tb h5 ').each( function( i ) {
		var id = $( this ).parent().attr( 'id' );
		maxHeights[id] = $( this ).next( 'div' ).height();
		var str = $( this ).html();
		labels[id] = str;

if ( $.cookie( expandCookieName + id ) == 'false' ) {
			expandeds[id] = false;
			minimize( $( this ) );
		} else if ( $.cookie( expandCookieName + id ) == 'true' ) {
			expandeds[id] = true;
			maximize( $( this ) );
		} else if ( defaultExpandItems.indexOf( str ) == -1 ) {
			expandeds[id] = false;
			minimize( $( this ) );
		} else {
			expandeds[id] = true;
			maximize( $( this ) );
		}
		$( this ).css({'cursor': 'pointer'});
		$( this ).click( toggleNav );
	} );
}

function minimize( target ) {
	var id = $( target ).parent().attr( 'id' );
	// Můžete změnit parametr expires a uložit cookie na delší nebo kratší než 7 dní jako je v tomto kódu
	$.cookie( expandCookieName + id, 'false', { expires: 7} );
	var str = labels[id] + '  ►';
	$( target ).next( 'div' ).animate({'height': '0px'});
	$( target ).html( str );
}

function maximize( target ) {
	var id = $( target ).parent().attr( 'id' );
	// Můžete změnit parametr expires a uložit cookie na delší nebo kratší než 7 dní jako je v tomto kódu
	$.cookie( expandCookieName + id, 'true', { expires: 7} );
	var str = labels[id] + '  ▼';
	var newHeight = maxHeights[id];
	$( target ).next( 'div' ).animate({'height': newHeight + 'px'});
	$( target ).html( str );
}

function toggleNav( e ) {
	var id = $(e.target ).parent().attr( 'id' );
	expandeds[id] = !expandeds[id];
	if( expandeds[id] == true ) {
		maximize( e.target );
	} else {
		minimize( e.target );
	}
}

///////////////////////////////////////////////////////
///////////////////////////////////////////////////////

Šířka postranního panelu ve vzhledu Monobooku (CSS)

Šířku postranního panelu můžete změnit přidáním následujících pravidel CSS do MediaWiki:Monobook.css

všimněte si, že toto je článek a ne soubor. Tím se změní šířka na 15 em, pozice akcí a šířka portletu by měly být o jeden em nebo tak méně, takže jsem je v tomto příkladu nastavil na 14 em.

/* zvětšení šířky postranního panelu */
#column-content { margin-left: -15em; }
#column-content #content { margin-left: 15em; }
#p-logo a, #p-logo a:hover { width: 15em; }
#p-cactions { left: 14.5em; }
.portlet { width: 14em; }
#column-content { margin-left: -14em; }
#content.mw-body { margin-left: 14em; }

Změna obsahu postranního panelu při přihlášení (PHP)

Nainstalujte a nakonfigurujte rozšíření DynamicSidebar .

Funkce analyzátoru v postranním panelu

Ačkoli to není přesně doporučeno, postranní panel podporuje funkce analyzátoru (jako je ParserFunctions ), za předpokladu, že ** je mimo funkci analyzátoru a funkce analyzátoru nezahrnuje více řádků. Například:

*Heading
**{{#ifeq:{{NAMESPACE}}|User|Page-to-link-to{{!}}text-to-show-on-user-page}}
**{{#ifeq:{{NAMESPACE}}|Talk|Another-Page-to-link-to{{!}}text-to-show-on-talk-page}}

funguje. Následující by však nefungovalo, protože funkce parseru zahrnuje více řádků:

*Heading
{{#ifeq:1|1|
**foo{{!}}
bar
|
**baz{{!}}fred
}}

Odstraňování problémů

Nezobrazují se změny

MediaWiki agresivně ukládá, pokud je to možné, obsah do mezipaměti, což často způsobuje, že navigační panel po změnách přetrvává. Vyčištění mezipaměti dotčených stránek by mělo situaci napravit. Chcete-li provést hromadné čištění všech mezipamětí najednou, zkuste soubor LocalSettings.php nebo ořezat tabulku objectcache ve vaší databázi (možná budete muset udělat obojí).

Také musíte mít $wgUseDatabaseMessages nastaveno na true. Také, pokud vaše odkazy neobsahují |, nebudou se zobrazovat kvůli tomuto řádku kódu v Skin.php: if ( strpos( $line, '|' ) !== false ) {

Pokud jste uživatel nebo průměrný správce wiki, nebudete moci provádět pokročilé činnosti uvedené výše, aby se změny zobrazily. Pokud ani čištění nefunguje, můžete někdy vidět změny CSS hned v náhledu (zejména při změně vašeho osobního CSS). Například: Změna šířky postranního panelu, odsazení nebo okrajů. Po uložení však může chvíli trvat, než se změny projeví. Pokud se po chvíli nic neobjeví, možná budete muset kontaktovat celkovou wiki nebo wiki farmu, sysop.

Malé popisky odkazů

Pokud vaše odkazy nejsou kapitalizovány tak, jak bylo zamýšleno, zkuste přidat mezery kolem svislítka. Například:

** http://www.example.com/download.php?file=44555 | Download

Sekce zmizí nebo se zobrazí neočekávaný obsah

Pokud se v sekci nezobrazuje nebo zobrazuje neočekávaný obsah, zkontrolujte, zda text záhlaví není názvem zprávy rozhraní, vyhledáním Special:AllMessages. Pokud ano, použijte jiný text záhlaví nebo vytvořte novou zprávu rozhraní a použijte ji.

Pokud například chcete jako text záhlaví použít "Sidebar", vytvořte zprávu rozhraní "MediaWiki:Sidebar-header" obsahující pouze "Sidebar". Poté použijte * sidebar-header jako záhlaví.

Sekce se nezobrazí, pokud neexistují žádné odkazy ve tvaru ** cíl | text odkazu (např. když byl zapomenut cíl).

Nefunkční odkazy po aktualizaci Special:Version

K tomu dojde např. pokaždé, když budou k dispozici novější překlady položek postranního panelu jazyka vašeho webu. Pokaždé by bylo možné přidat nové stránky s přesměrováním, ale lepším řešením by bylo použít vlastní názvy položek na postranním panelu namísto sledování aktuálních překladů MediaWiki.

Související odkazy

References

  1. (O tom jak se pracuje s právy a jak se přiřazují skupiny práv uživatelům, více viz Příručka:Uživatelská práva .) Poté použijte odkaz na stránku na své wiki, ale nahraďte název své wiki stránky (např. Hlavní_stránka) v adresním řádku/adresním řádku MediaWiki:Sidebar a načtěte tuto stránku – nyní byste měli vidět aktuální obsah postranního panelu. (Pokud používáte dlouhé adresy URL, možná budete muset použít syntaxi //yourdomain/yourwiki/index.php?title=MediaWiki:Sidebar&action=edit.) Pokud byl obsah postranního panelu již změněn, můžete kliknout na odkaz Upravit nebo Upravit zdroj, jinak možná budete muset stránku nejprve vytvořit kliknutím na Vytvořit nebo Vytvořit zdroj.
  2. V některých případech (jako jsou odkazy se znakem "&") je nutná zpráva rozhraní. Cíl odkazu nemůže být závislý na jazyku rozhraní nastaveném v předvolbách.
  3. http://www.kaarebmikkelsen.dk/?p=174