Utente:FRacco/sandbox.js: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
ottimizzazione del codice con controllo completo degli errori |
m fix minori e commenti |
||
Riga 6: | Riga 6: | ||
/* |
/* |
||
* Workaround for [[ |
* Workaround for [[phabricator:708]] via [[commons:Template:InterProject]]. |
||
* Originally based on code from [[wikt:de:MediaWiki:Common.js]] |
* Originally based on code from [[wikt:de:MediaWiki:Common.js]] by |
||
* |
* [[wikt:de:User:Melancholie]], cleaned up and modified for compatibility |
||
* |
* with the Vector skin. |
||
* @source: [[commons:MediaWiki:InterProject.js]] |
* @source: [[commons:MediaWiki:InterProject.js]] |
||
* @maintainer: [[commons:User:Krinkle]] |
* @maintainer: [[commons:User:Krinkle]] |
||
Riga 60: | Riga 60: | ||
// interproject inclusion without wikibase otherprojects |
// interproject inclusion without wikibase otherprojects |
||
var langBox = document.getElementById( 'p-lang' ); |
var langBox = document.getElementById( 'p-lang' ); |
||
var |
var legacyPanel; |
||
if ( langBox ) { |
if ( !langBox ) { |
||
// legacy skins |
|||
} else { |
|||
// stupid incompatible skins... |
|||
var panelIds = [ 'mw-panel', 'panel', 'column-one', 'mw_portlets' ]; |
var panelIds = [ 'mw-panel', 'panel', 'column-one', 'mw_portlets' ]; |
||
for ( var i = 0; ! |
for ( var i = 0; !legacyPanel && i < panelIds.length; i++ ) { |
||
legacyPanel = document.getElementById( panelIds[i] ); |
|||
} |
} |
||
// can't find a place for the portlet, try to undo hiding |
// can't find a place for the portlet, try to undo hiding |
||
if ( ! |
if ( !legacyPanel ) { |
||
interPr.style.display = 'block'; |
interPr.style.display = 'block'; |
||
sisterPr.style.display = 'block'; |
sisterPr.style.display = 'block'; |
||
Riga 91: | Riga 89: | ||
if ( langBox ) { |
if ( langBox ) { |
||
langBox.parentNode.insertBefore( interProject, langBox ); |
|||
} else { |
} else { |
||
legacyPanel.appendChild( interProject ); |
|||
} |
} |
||
Versione attuale delle 02:03, 30 apr 2015
/*
* Crea il menù "Altri progetti" nella barra laterale sinistra con tutti
* i collegamenti dell'interprogetto verso gli altri progetti Wikimedia,
* vedi [[Template:Interprogetto]] e [[Modulo:Interprogetto]].
*/
/*
* Workaround for [[phabricator:708]] via [[commons:Template:InterProject]].
* Originally based on code from [[wikt:de:MediaWiki:Common.js]] by
* [[wikt:de:User:Melancholie]], cleaned up and modified for compatibility
* with the Vector skin.
* @source: [[commons:MediaWiki:InterProject.js]]
* @maintainer: [[commons:User:Krinkle]]
* @maintainer: [[commons:User:Ilmari Karonen]]
*/
/*
* Workaround for [[mw:Beta Features/Other projects sidebar]] integration.
* @author: [[User:FRacco]]
*/
// <nowiki> Codice JavaScript: begin...
$( function () {
// avoid double interproject inclusion
if ( document.getElementById( 'p-interproject-body' ) ) return;
var interPr = document.getElementById( 'interProject' );
var sisterPr = document.getElementById( 'sisterProjects' );
// none interproject inclusion
if ( !interPr || !sisterPr ) return;
interPr.style.display = 'none';
sisterPr.style.display = 'none';
var divBody = interPr.getElementsByTagName( 'div' );
// interproject links not found
if ( !divBody ) return;
var interProjectBody = document.createElement( 'div' );
interProjectBody.id = 'p-interproject-body';
interProjectBody.className = ( mw.config.get( 'skin' ) === 'vector' ?
'body' : 'pBody' );
interProjectBody.innerHTML = divBody[0].innerHTML;
var otherPr = document.getElementById( 'p-wikibase-otherprojects' );
// interproject inclusion with wikibase otherprojects
if ( otherPr ) {
divBody = otherPr.getElementsByTagName( 'div' );
if ( divBody ) {
// replace wikibase otherprojects with interproject links
otherPr.replaceChild( interProjectBody, divBody[0] );
} else {
otherPr.appendChild( interProject );
}
return;
}
// interproject inclusion without wikibase otherprojects
var langBox = document.getElementById( 'p-lang' );
var legacyPanel;
if ( !langBox ) {
// legacy skins
var panelIds = [ 'mw-panel', 'panel', 'column-one', 'mw_portlets' ];
for ( var i = 0; !legacyPanel && i < panelIds.length; i++ ) {
legacyPanel = document.getElementById( panelIds[i] );
}
// can't find a place for the portlet, try to undo hiding
if ( !legacyPanel ) {
interPr.style.display = 'block';
sisterPr.style.display = 'block';
return;
}
}
var interProjectLabel = document.createElement( 'h3' );
interProjectLabel.id = 'p-interproject-label';
interProjectLabel.innerHTML = ( sisterPr && sisterPr.firstChild ?
sisterPr.firstChild.innerHTML : 'Altri progetti' );
var interProject = document.createElement( 'div' );
interProject.id = 'p-interproject';
interProject.className = ( mw.config.get( 'skin' ) === 'vector' ?
'portal' : 'portlet' );
interProject.appendChild( interProjectLabel );
interProject.appendChild( interProjectBody );
if ( langBox ) {
langBox.parentNode.insertBefore( interProject, langBox );
} else {
legacyPanel.appendChild( interProject );
}
} );
// Codice JavaScript: ...end </nowiki>