Manual:Interface/Sidebar/pt

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Interface/Sidebar and the translation is 31% complete.

Other languages:
Deutsch • ‎English • ‎Taqbaylit • ‎español • ‎français • ‎italiano • ‎português • ‎русский • ‎سرائیکی • ‎日本語
Sidebar example

MediaWiki:Sidebar define a barra de navegação, a qual provê enlaces à maioria dos lugares na wiki e fornece aos administradores do lugar um lugar para adicionar uma colecção constante de enlaces. Por exemplo, a maioria das wikis enlaçarão à página de discussão de sua comunidade e a algumas ferramentas úteis.

Os skins Monobook e Vetor colocam a barra de navegação acima à esquerda (top-right for right-to-left languages) junto à barra de busca e à caixa de ferramentas, mas a localização pode ser diferente em outros skins. Varra-a lateral oculta-se aos utentes do lugar Mobile.

Personalizar varra-a lateral

Para personalizar a MediaWiki:Sidebar numa wiki, você primeiro precisa estar registado com um utente que tenha a permissão editinterface - Isto está habilitado por defeito para os administradores. (Para informação sobre atribuir uma permissão a grupos ou utentes, ver Manual:User rights.)

Depois, use um enlace a uma página em sua wiki, mas substitua o título de sua página wiki (e.g. Main_Page) na URL/varra de direcções com MediaWiki:Sidebar e carregue essa página - Você deveria ver agora o conteúdo da varra lateral. (Você pode usar a sintaxe //yourdomain/yourwiki/index.php?title=MediaWiki:Sidebar&action=edit se você utiliza URLs longas.)

Se o conteúdo de varra-a lateral já tem sido modificado, você simplesmente pode dar clique sobre o enlace Edit ou Edit source, de outra forma você poderia precisar criar primeiro a página dando clique em Create ou Create source.

Nota: Se você tem que criar uma nova página, apresentar-se-lhe-á o conteúdo por defeito da varra lateral no editor. Para criar exitosamente uma página MediaWiki:Sidebar, precisa mudar o conteúdo dantes de salvar.

A seguir mostra-se um código de exemplo para uma varra lateral:

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

This example will result in the following sidebar:

Sidebar example

Headings

A barra de navegação pode estar dividida em secções, a cada uma com seu próprio encabeçado. O encabeçado para a cada secção é tomado desde a lista de elementos do primeiro nível ("navigation" e "new heading" no exemplo de acima).

Se este texto corresponde ao nome de uma mensagem da interface (Uma página existente nesse título na MediaWiki namespace), então o texto dessa página é usado como uma etiqueta; caso contrário, o título do encabeçado utiliza-se tal qual.

Ligações

Os elementos do segundo nível da lista são enlaces ("mainpage|mainpage" no exemplo de acima), onde o formato é:

** target|link text
objectivo
O enlace objectivo pode ser o nome de uma mensagem de interface (uma página no MediaWiki namespace) ou uma página wiki, ou um enlace externo. Em qualquer caso, o link pode ser interno, interwiki ou externo. Em alguns casos (tais como enlaces com o carácter "&"), uma mensagem de interface é necessário. O enlace objectivo não pode ser dependente da linguagem da interface configurada nas preferências.
Algoritmo seguido:
  1. Chamar o texto objectivo.
  2. Se há um existente ou uma mensagem de interface por defeito com esse nome, use o conteúdo dessa mensagem em vez do texto objectivo.
  3. Se a saída do passo anterior é uma URL valida (começando com http:// ou outro URL protocol), o enlace apontará a essa URL.
  4. se não, tratar-se-á como o enlace objectivo de um wikilink (enlaçando a esse nome de página ou interwiki).
  5. Em caso que termine enlaçando a '-', toda a entrada é removida da varra lateral (isso é útil para remover uma entrada em todas as linguagens ao mudar a mensagem que tem o enlace).

Exemplos:

  • "** portal-url|portal" usa o texto de MediaWiki:Portal-url (o qual contém "Project:Community portal").
  • "** Special:RecentChanges|Recent changes" links to Special:RecentChanges, since there is no interface message of that name.
  • "** w:Foo|Some interwiki page" links to w:Foo for the same reason.
  • "** http://www.mediawiki.org|MediaWiki home" links to http://www.mediawiki.org for the same reason.
enlace de texto
O enlace de texto pode ser o mesmo de uma mensagem de interface (página no the MediaWiki namespace) ou texto plano.
  • Se o enlace de texto é o nome de uma mensagem de interface existente ou por defeito, o conteúdo dessa mensagem será usada. Mediawiki verificará as versões localizadas; por exemplo, se a linguagem actual é fr (Frances) e o enlace de texto é a mensagem de interface "fórum", este verificará "fórum/fr" dantes de usar "fórum".
  • Em qualquer caso, o enlace de texto é usado como destino.
  • Note que o enlace de texto não é opcional como os enlaces numa wiki normal. Se falta o enlace de texto, o elemento ignora-se.

Exemplos:

  • ** Homepage|mainpage uses MediaWiki:Mainpage (which contains "MediaWiki").
  • ** Special:Recentchanges|Recent changes uses "Recent changes", since there is no interface message of that name.

Ordem dos elementos

Por defeito, varra-a lateral consiste de elementos nesta ordem: navegação, busca, caixa de ferramenta, linguagens. A ordem pode ser mudada (em MediaWiki 1.13+) adicionando as palavras finques especiais (SEARCH, TOOLBOX and LANGUAGES) a MediaWiki:Sidebar usando a sintaxe de encabeçado. Por exemplo, o seguinte código move a caixa de busca à parte superior de varra-a lateral:

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

Tooltips and Accesskey

If you add an item to the sidebar, it will have no tooltip associated. But you can create such a tooltip by simply :[1]

  • create a wiki page named "MediaWiki:Tooltip-n-<id of the item>"
  • and put the tooltip in that page.

Accesskey is also be created:

  • create a wiki page named "MediaWiki:Accesskey-n-<id of the item>"
  • and put the accesskey in that page.

Example:

Traduções

Você pode traduzir as correntes, a qual você usa, editando as páginas de acordo ao namespace na MediaWiki .

Exemplo: A corrente, a qual substituirá o elemento chamado "mainpage", é tomado de MediaWiki:Mainpage. Para configurar/mudar este texto para os utentes, quem despliegan seu wiki em Alemão, pode colocar o texto de acordo à página MediaWiki:Mainpage/de.

Dessa maneira você pode facilmente traduzir esses textos através da interface da MediaWiki.

Please note that MediaWiki will by default use the content of the Sidebar page in that language, which corresponds to the default language of your wiki. So, if your wiki e.g. uses French as its default language, edit MediaWiki:Mainpage/fr in order to show a modified sidebar to all users, who have not changed their language setting and to all anonymous users.

For more advanced translation, see Help:Extension:Translate/Unstructured element translation.

Advanced customization

The sidebar can be fully customized by implementing JavaScript or Cascading Style Sheets, or by editing the PHP files directly. Before using these methods, note that:

  • JavaScript is fragile: it will not work for users with JavaScript disabled, and scripts frequently fail in different browsers or skins.
  • Editing the PHP files can easily cause unexpected errors, and your changes will be lost in the next update unless you manually change the new files.

Force UI-messages to follow content

Some pages should sometimes follow the content language, especially for multilingual sites. This can be controlled with the setting $wgForceUIMsgAsContentMsgManual:$wgForceUIMsgAsContentMsg. Each message overridden in this way must be explicitly given, for example to let the sidebar link to versions given by the content language for the main page and the portal page add the following to

LocalSettings.php

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

Add or remove toolbox sections (JavaScript)

The toolbox, which appears under the search bar, is a dynamic element and cannot be easily customized without the use of skinning extensions (otherwise it requires programming in PHP.) If you still want to do so, you can copy skins/MonoBook.php, creating a new skin. You can then make a custom skin to generate these links in your preferred fashion.

Another JavaScript solution is below.

For this solution to work on the entire MediaWiki site, this script has to be copied to MediaWiki:Common.js (MediaWiki:Common.js is available for MediaWiki 1.9 +).

For this solution to work only for a specific user, add this script to Special:MyPage/common.js (or the JS page for the user's current skin, such as Special:MyPage/monobook.js).

Now simply configure which link should appear in which section. You also can remove some links if you want to.

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 ) {
		// let's just ignore what's happened
		return;
	}
}

function CustomizeModificationsOfSidebar() {
	// adds [[Special:CategoryTree|Special:CategoryTree]] to toolbox
	ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'http://en.wikipedia.org/wiki/Special:CategoryTree' );
	// removes [[Special:Upload|Special:Upload]] from toolbox
	ModifySidebar( 'remove', 'toolbox', 'Upload file', 'http://en.wikipedia.org/wiki/Special:Upload' );
}

jQuery( CustomizeModificationsOfSidebar );
Usage
function CustomizeModificationsOfSidebar() has to be customized for adding or removing links in specific sections:
ModifySidebar( "action", "section", "name", "link" );
parameter value
action add to add a link; remove to remove a link
section navigation, toolbox, languages but also any other existing customized section; the given link will be added to or removed from this section
name contains the text of the link
link contains the URL of the link
restricting modifications to specific usergroups

If you want to restrict the modification of the links to a specific user group (e.g. bureaucrat), change

jQuery( CustomizeModificationsOfSidebar );

to

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

For restricting the modifications to IPs instead of a specific user group, use

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

Add or remove toolbox sections (PHP)

You can add in your file LocalSettings.php the hook described on this page. With this, you can modify via MediaWiki:Sidebar the links in the toolbox panel (remove some links, change their name) and add custom links (e.g. add the "Recent changes" link there instead of the navigation panel.

Make expanding/collapsing sidebar for all users (Monobook skin only)

If you use the Monobook skin and don't want to miss the expandable menu bar from e.g. Vector skin, paste the following code into MediaWiki:Monobook.js of your wiki.

/////////////////////////////////////////////////////////
// Code snippet to make your sidebar items expandable  //
// Use this code ONLY for the Monobook skin.           //
/////////////////////////////////////////////////////////

$( document ).ready( function() {
	// Set the default expanded items by their headline
	var defaultExpandItems = ['Navigation', 'Orga'];
	// Set the basic-name for the cookies, which save the current state of expanding
	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' );
	// You can change the expires parameter to save the cookie longer/shorter than 7 days like in this code
	$.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' );
	// You can change the expires parameter to save the cookie longer/shorter than 7 days like in this code
	$.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 );
	}
}

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

Sidebar width in Monobook skin (CSS)

You can change the width of your sidebar by adding the following CSS rules to your MediaWiki:Monobook.css, note that this is an article, not a file. This changes the width to 15em, the actions position and portlet width should be an em or so less, so I've set them to 14em in this example.

/* increase sidebar width */
#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; }
div#column-content { margin-left: -14em; }
div#content { margin-left: 14em; }

Sidebar width in Vector skin (CSS)

You can change the width of your sidebar by adding the following CSS rules to your MediaWiki:Vector.css. The standard width in vector skin is 10em. The following example changes the width to 12em:

/* increase Vector sidebar width */
div#mw-panel { width: 12em; }
div#footer, #mw-head-base, div#content { margin-left: 12em; }
#left-navigation { margin-left: 12em; }

Change sidebar content when logged in (PHP)

You can modify the sidebar using a hook. Create a small extension of your own or put the code directly into your LocalSettings.php file.

Some example code adding a 'navigation' sidebar block with a login link for logged out users.

Aviso Aviso: The sidebar's array is cached after this hook is run, if you use sidebar caching and do user specific things in this hook like something that only shows up when logged in or out it may end up cached and not look correctly for some users.
<?php
$wgHooks['SkinBuildSidebar'][] = 'lfHideSidebar';
function lfHideSidebar( $skin, &$bar ) {
	global $wgUser;
	// Hide sidebar for anonymous users
	if ( !$wgUser->isLoggedIn() ) {
		$bar = array(
			'navigation' => array(
				array(
					'text'   => wfMessage( 'login' ) -> text(),
					'href'   => SpecialPage::getTitleFor( 'Login' )->getLocalURL(),
					'id'     => 'n-login',
					'active' => ''
				)
			)
		);
	}
	return true;
}

Parser functions in sidebar

Although it is not exactly recommended, the sidebar does support parser functions (such as ParserFunctions), provided the ** is outside the parser function, and the parser function does not span multiple lines. For example:

*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}}

works. However the following would not work since the parser function spans multiple lines:

*Heading
{{#ifeq:1|1|
**foo{{!}}
bar
|
**baz{{!}}fred
}}
Aviso Aviso: There is a bug on 1.18 where if a line on MediaWiki:Sidebar contains pipe characters (| ) before expanding parser functions, but not after expanding parser functions, an exception is thrown on all pages (bug 33321). If such a construction is accidentally introduced to the sidebar, it forces the user to revert MediaWiki:Sidebar using the API or edit.php. This is fixed in later versions of MediaWiki

Troubleshooting

Changes not showing up

MediaWiki aggressively caches content if possible, which often causes the navigation bar to persist after changes. Purging the cache of affected pages should correct the situation. To perform a mass-purge of all caches at once, touch the LocalSettings.php file or truncate the objectcache table in your database (you may have to do both).

You also need to have $wgUseDatabaseMessages set to true.

If you are a user or average wiki admin, you will not be able to do the advanced stuff above to get changes to show up. If purging does not work either, you can sometimes still see CSS changes right away in preview (especially when changing your personal CSS). For example; changing the sidebar width, padding, or margins. Changes can take awhile to show up after saving though. If nothing shows up after awhile you may need to contact the overall wiki, or wiki farm, sysop.

Lowercase link labels

If your links are not being capitalized as intended, try adding spaces around the bar character; for example:

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

Sections disappear or show unexpected content

If a section does not display or displays unexpected content, check that the header text isn't the name of an interface message by searching Special:AllMessages. If it is, use a different header text, or create a new interface message and use it.

For example, if you want to use "Sidebar" as header text, create the interface message "MediaWiki:Sidebar-header" containing only "Sidebar". Then, use * sidebar-header as header.

Sections are not displayed if there are no links of the form ** target | link text (e.g. when the target was forgotten).

Broken links after updating Special:Version

This will happen e.g., each time there are newer translations for your site language's sidebar items. One could add new redirect pages each time, but a better solution would be to use one's own sidebar item names instead of trying to keep track of the current MediaWiki translations.

Ancient versions of MediaWiki

If you have a pre-release version of 1.5 Beta, or earlier, it is still possible in some cases to edit the sidebar:

Ver também

References