MediaWiki:Common.js e Wikiquote:Página de testes: diferenças entre as páginas

Origem: Wikiquote, a coletânea de citações livre.
(Diferenças entre páginas)
Conteúdo apagado Conteúdo adicionado
mSem resumo de edição
 
He7d3r (discussão | contribs)
m Mais correções: addLoadEvent está obsoleta; MediaWiki:UploadForm.js só é necessário na Special:Upload; links https no servidor seguro; atualização da TransformeEmPaginaDeDiscussao a partir do Wikilivros e rewritePageH1 da Wikipédia
 
Linha 1: Linha 1:
/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */
/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */
// <source lang="javascript">


if (wgAction == "edit" || wgAction == "submit")
if ($.inArray( mw.config.get( 'wgAction' ), [ "edit" , "submit" ]) > -1)
{
{
var load_edittools = true;
var load_edittools = true;
importScript("MediaWiki:Edittools.js")
importScript("MediaWiki:Edittools.js");
importScript("MediaWiki:Extrabo.js")
importScript("MediaWiki:Extrabo.js");
importScript("MediaWiki:Forcepreview.js")
importScript("MediaWiki:Forcepreview.js");
}
}


else if (wgPageName == "Especial:Busca" )
else if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Search' )
{
{
importScript("MediaWiki:Search.js")
importScript("MediaWiki:Search.js");
}
}


else if (navigator.appName == "Microsoft Internet Explorer")
if (navigator.appName == "Microsoft Internet Explorer")
{
{
importScript("MediaWiki:IEFixes.js")
importScript("MediaWiki:IEFixes.js");
}
}


if ( mw.config.get( 'wgAction' ) === 'view'
else if( wgRestrictionEdit == "autoconfirmed" || wgRestrictionEdit == "sysop" )
&& !mw.config.get( 'wgCanonicalSpecialPageName' )
{
&& !$.isEmpty( mw.config.get( 'wgRestrictionEdit' ) )
importScript("MediaWiki:Topicon.js")
&& $.inArray( mw.config.get( 'wgRestrictionEdit' )[0], ['autoconfirmed', 'sysop'] ) > -1
&& mw.config.get( 'wgPageName' ) !== 'Página_principal'
) {
importScript( 'MediaWiki:Topicon.js' );
}
}


Linha 28: Linha 31:
* Upload form
* Upload form
*/
*/
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Upload' ) {
importScript('MediaWiki:UploadForm.js')
importScript('MediaWiki:UploadForm.js');

}




Linha 36: Linha 40:
********************************************************************************************/
********************************************************************************************/


document.write('<style type="text/css">#interProject, #sisterProjects {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}<\/style>');
mw.util.addCSS( '#interProject, #sisterProjects {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}' );
function iProject() {
function iProject() {
if (document.getElementById("interProject")) {
if (document.getElementById("interProject")) {
var iProject = document.getElementById("interProject").innerHTML;
var iProjectElem = document.getElementById("interProject").innerHTML,
var interProject = document.createElement("div");
interProject = document.createElement("div");
interProject.style.marginTop = "0.7em";
interProject.style.marginTop = "0.7em";
interProject.innerHTML = '<h5>Correlatos<\/h5><div class="pBody">'+iProject+'<\/div>';
interProject.innerHTML = '<h5>Correlatos<\/h5><div class="pBody">'+iProjectElem+'<\/div>';
document.getElementById("p-tb").appendChild(interProject);
document.getElementById("p-tb").appendChild(interProject);
}
}
}
}
addOnloadHook(iProject);
$(iProject);


/** Commons ******************************************************************************
/** Commons ******************************************************************************
Linha 54: Linha 58:
function linkUploadToCommons()
function linkUploadToCommons()
{
{
if (document.getElementById("carrega-para-commons")) return;
if (document.getElementById("carrega-para-commons")) {
return;
}
var li_carrega = document.getElementById("t-upload");
var li_carrega = document.getElementById("t-upload");
if (!li_carrega) return;
if (!li_carrega) {
return;
}
var afegit = li_carrega.nextSibling;
var afegit = li_carrega.nextSibling;
var ul_eines = li_carrega.parentNode;
var ul_eines = li_carrega.parentNode;
var li = document.createElement("li");
var li = document.createElement("li");
var commonsURL = 'http://commons.wikimedia.org/wiki/Special:Upload';
if (mw.config.get('wgServer').indexOf('https://') === 0) {
commonsURL = 'https://secure.wikimedia.org/wikipedia/commons/wiki/Special:Upload';
}
li.id = "carrega-para-commons";
li.id = "carrega-para-commons";
li.innerHTML = '<a href="http://commons.wikimedia.org/wiki/Special:Upload">Carregar no Commons</a>';
li.innerHTML = '<a href="' + commonsURL + '">Carregar no Commons</a>';
if (afegit) ul_eines.insertBefore(li, afegit);
if (afegit) {
ul_eines.insertBefore(li, afegit);
else ul_eines.appendChild(li);
}
else {
ul_eines.appendChild(li);
}
}
}
addLoadEvent(linkUploadToCommons);
$(linkUploadToCommons);




Linha 76: Linha 92:
if (!window.aOnloadFunctions) {
if (!window.aOnloadFunctions) {
var aOnloadFunctions = new Array();
var aOnloadFunctions = [];
}
}
Linha 85: Linha 101:
}
}
}
}
}
};
// END Enable multiple onload functions
// END Enable multiple onload functions
// ============================================================
// ============================================================
// @deprecated: Use a função $() do jQuery
function addLoadEvent(func)
function addLoadEvent(func)
{
{
if (window.addEventListener)
if (window.addEventListener) {
window.addEventListener("load", func, false);
window.addEventListener("load", func, false);
else if (window.attachEvent)
} else if (window.attachEvent) {
window.attachEvent("onload", func);
window.attachEvent("onload", func);
}
}
}
Linha 120: Linha 137:
function toggleNavigationBar(indexNavigationBar)
function toggleNavigationBar(indexNavigationBar)
{
{
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar),
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
NavFrame = document.getElementById("NavFrame" + indexNavigationBar),
NavChild;
if (!NavFrame || !NavToggle) {
if (!NavFrame || !NavToggle) {
Linha 130: Linha 148:
if (NavToggle.firstChild.data == NavigationBarHide) {
if (NavToggle.firstChild.data == NavigationBarHide) {
for (
for (
var NavChild = NavFrame.firstChild;
NavChild = NavFrame.firstChild;
NavChild != null;
NavChild !== null;
NavChild = NavChild.nextSibling
NavChild = NavChild.nextSibling
) {
) {
Linha 146: Linha 164:
} else if (NavToggle.firstChild.data == NavigationBarShow) {
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (
for (
var NavChild = NavFrame.firstChild;
NavChild = NavFrame.firstChild;
NavChild != null;
NavChild !== null;
NavChild = NavChild.nextSibling
NavChild = NavChild.nextSibling
) {
) {
Linha 164: Linha 182:
function createNavigationBarToggleButton()
function createNavigationBarToggleButton()
{
{
var indexNavigationBar = 0;
var indexNavigationBar = 0, i;
// iterate over all < div >-elements
// iterate over all < div >-elements
for(
for(
i=0, NavFrame = document.getElementsByTagName("div")[0];
var i=0;
NavFrame;
NavFrame = document.getElementsByTagName("div")[i];
i++
i++
) {
) {
// if found a navigation bar
// if found a navigation bar
if (NavFrame.className == "NavFrame") {
if (NavFrame.className == "NavFrame") {
Linha 194: Linha 213:
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
NavFrame = document.getElementsByTagName("div")[i];
}
}
// if more Navigation Bars found than Default: hide all
// if more Navigation Bars found than Default: hide all
if (NavigationBarShowDefault < indexNavigationBar) {
if (NavigationBarShowDefault < indexNavigationBar) {
for(
for(
var i=1;
i=1;
i<=indexNavigationBar;
i<=indexNavigationBar;
i++
i++
Linha 208: Linha 228:
}
}
addLoadEvent(createNavigationBarToggleButton);
$(createNavigationBarToggleButton);
/* Interwikis */
/* Interwikis */
Linha 215: Linha 235:
{
{
// iterate over all <span>-elements
// iterate over all <span>-elements
for(var i=0; a = document.getElementsByTagName("span")[i]; i++) {
for(var i=0, a = document.getElementsByTagName("span")[0]; a; i++) {
// if found a linkInfo span
// if found a linkInfo span
if(a.className == "interwiki-info") {
if(a.className == "interwiki-info") {
Linha 221: Linha 241:
var count=0;
var count=0;
for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
for(var j=0, b = document.getElementsByTagName("li")[0]; b; j++) {
if(b.className == "interwiki-" + a.id) {
if(b.className == "interwiki-" + a.id) {
b.innerHTML = b.innerHTML + " "+a.title;
b.innerHTML = b.innerHTML + " "+a.title;
if(a.title == "(vo)") { b.title = "Texto original"; }
if(a.title == "(vo)") { b.title = "Texto original"; }
}
}
else if(b.className == "interwiki-" + a.id.substr(0,a.id.length-1)) {
else if(b.className == "interwiki-" + a.id.substr(0,a.id.length-1)) {
count = count+1;
count = count+1;
if(a.id.charAt(a.id.length-1) == count) {
if(a.id.charAt(a.id.length-1) == count) {
Linha 232: Linha 252:
}
}
}
}
b = document.getElementsByTagName("li")[j];
}
}
}
}
a = document.getElementsByTagName("span")[i];
}
}
}
}
addLoadEvent(interwikiExtra);
$(interwikiExtra);


/** Banners para dicas e doações vista apenas por anônimos **************************
/** Banners para dicas e doações vista apenas por anônimos **************************
Linha 243: Linha 265:
* Autores: [[:en:User:Gmaxwell]], [[:en:User:MZMcBride]]
* Autores: [[:en:User:Gmaxwell]], [[:en:User:MZMcBride]]
******************************************************************************/
******************************************************************************/
importScript('MediaWiki:WikiBanners.js')
importScript('MediaWiki:WikiBanners.js');


/**
/** Altera o título da página **************************************************************
* Altera o título da página
* Origem: [[:w:en:MediaWiki:Common.js]]
*
* Descrição: A função procura por um banner como:
* A função procura por um banner como:
* <nowiki><div id="RealTitleBanner">Div that is hidden</nowiki>
* <nowiki><span id="RealTitle">title</span></nowiki>
* <nowiki><div id="RealTitleBanner">Div que está oculto</nowiki>
* <nowiki></div></nowiki>
* <nowiki><span id="RealTitle">título</span></nowiki>
* <nowiki></div></nowiki>
* An element with id=DisableRealTitle disables the function.
* Um elemento com id=DisableRealTitle desabilita a função
********************************************************************************************/
* @source: [[w:en:MediaWiki:Common.js]]
*/
rewritePageH1 = function() {
rewritePageH1 = function () {
try {
try {
var realTitleBanner = document.getElementById("RealTitleBanner");
var realTitleBanner = document.getElementById( 'RealTitleBanner' );
if (realTitleBanner) {
if (realTitleBanner) {
if (!document.getElementById("DisableRealTitle")) {
var realTitle = document.getElementById("RealTitle");
if ( !document.getElementById( 'DisableRealTitle' ) ) {
var h1 = document.getElementsByTagName("h1")[0];
var realTitle = document.getElementById( 'RealTitle' );
var h1 = document.getElementsByTagName( 'h1' )[0];
if (realTitle && h1) {
if ( realTitle && h1 ) {
h1.innerHTML = realTitle.innerHTML;
h1.innerHTML = realTitle.innerHTML;
realTitleBanner.style.display = "none";
realTitleBanner.style.display = 'none';
}
}
}
}
}
}
}
catch (e) {
} catch (e) {
mw.log( 'Algo deu errado ao tentar reescrever o título da página.' );
/* Algo deu errado. */
}
}
}
};
addOnloadHook(rewritePageH1);
$( rewritePageH1 );


/**
/** Transforma determinadas páginas em páginas de discussão **
* Transforma páginas comuns em páginas de discussão, para permitir coloração baseada na indentação
* Origem: [[fr:w:MediaWiki:Common.js]]
* @source: [[:fr:w:MediaWiki:Common.js]]
* Descrição: Transforma páginas comuns em páginas de discussão, para permitir coloração baseada na indentação
* Autores: ver [[fr:w:MediaWiki:Common.js]]
* @author: [[:fr:User:Aoineko]]
*/
*/
$(function() {
if ( $('#PaginaDeDiscussao').length ) {
function TransformeEmPaginaDeDiscussao() {
if(document.getElementById('PaginaDeDiscussao'))
$(document.body).removeClass('ns-subject').addClass('ns-talk');
}
document.body.className = 'ns-talk';
}
});
addOnloadHook(TransformeEmPaginaDeDiscussao);


// </source>

Revisão das 20h57min de 11 de agosto de 2011

/* Código Javascript colocado aqui será carregado para todos os utilizadores em cada carregamento de página */

if ($.inArray( mw.config.get( 'wgAction' ), [ "edit" , "submit" ]) > -1) {

   var load_edittools = true;
   importScript("MediaWiki:Edittools.js");
   importScript("MediaWiki:Extrabo.js");
   importScript("MediaWiki:Forcepreview.js");

}

else if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Search' ) {

   importScript("MediaWiki:Search.js");

}

if (navigator.appName == "Microsoft Internet Explorer") {

   importScript("MediaWiki:IEFixes.js");

}

if ( mw.config.get( 'wgAction' ) === 'view' && !mw.config.get( 'wgCanonicalSpecialPageName' ) && !$.isEmpty( mw.config.get( 'wgRestrictionEdit' ) ) && $.inArray( mw.config.get( 'wgRestrictionEdit' )[0], ['autoconfirmed', 'sysop'] ) > -1 && mw.config.get( 'wgPageName' ) !== 'Página_principal' ) { importScript( 'MediaWiki:Topicon.js' ); }

/*

* Upload form
*/

if ( mw.config.get( 'wgCanonicalSpecialPageName' ) == 'Upload' ) {

importScript('MediaWiki:UploadForm.js');

}


/** Correlatos ******************************************************************************

*  Descrição:Correlatos no menu lateral. Código copiado do de:wikt
********************************************************************************************/

mw.util.addCSS( '#interProject, #sisterProjects {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}' );

function iProject() {
 if (document.getElementById("interProject")) {
  var iProjectElem = document.getElementById("interProject").innerHTML,
      interProject = document.createElement("div");
  interProject.style.marginTop = "0.7em";

interProject.innerHTML = '

Correlatos<\/h5>
'+iProjectElem+'<\/div>';
  document.getElementById("p-tb").appendChild(interProject);
 }
}

$(iProject);

/** Commons ******************************************************************************

*  Descrição:Adiciona um link direto para carregamentos no Commons
********************************************************************************************/

function linkUploadToCommons() {

   if (document.getElementById("carrega-para-commons")) {
       return;
   }
   var li_carrega = document.getElementById("t-upload");
   if (!li_carrega) {
       return;
   }
   var afegit = li_carrega.nextSibling;
   var ul_eines = li_carrega.parentNode;
   var li = document.createElement("li");
   var commonsURL = 'http://commons.wikimedia.org/wiki/Special:Upload';
   if (mw.config.get('wgServer').indexOf('https://') === 0) {
       commonsURL = 'https://secure.wikimedia.org/wikipedia/commons/wiki/Special:Upload';
   }
   li.id = "carrega-para-commons";
   li.innerHTML = '<a href="' + commonsURL + '">Carregar no Commons</a>';
   if (afegit) {
       ul_eines.insertBefore(li, afegit);
   }
   else {
       ul_eines.appendChild(li);
   }

}

$(linkUploadToCommons);


// ============================================================ // BEGIN Enable multiple onload functions

// setup onload functions this way: // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets!

if (!window.aOnloadFunctions) {

 var aOnloadFunctions = [];

}

window.onload = function() {

 if (window.aOnloadFunctions) {
   for (var _i=0; _i<aOnloadFunctions.length; _i++) {
     aOnloadFunctions[_i]();
   }
 }

};

// END Enable multiple onload functions // ============================================================ // @deprecated: Use a função $() do jQuery function addLoadEvent(func) {

 if (window.addEventListener) {
   window.addEventListener("load", func, false);
 } else if (window.attachEvent) {
   window.attachEvent("onload", func);
 }

}

/* Barras de navegação */

/** Barras de navegação dinâmica ************************************************************
 *    Origem: it:MediaWiki:Common.js
 ********************************************************************************************/

// set up the words in your language var NavigationBarHide = ' [ocultar]'; var NavigationBarShow = ' [exibir]';

// set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden var NavigationBarShowDefault = 0;


// shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) {

   var NavToggle = document.getElementById("NavToggle" + indexNavigationBar),

NavFrame = document.getElementById("NavFrame" + indexNavigationBar), NavChild;

   if (!NavFrame || !NavToggle) {
       return false;
   }

   // if shown now
   if (NavToggle.firstChild.data == NavigationBarHide) {
       for (
               NavChild = NavFrame.firstChild;
               NavChild !== null;
               NavChild = NavChild.nextSibling
           ) {
           if (NavChild.className == 'NavPic') {
               NavChild.style.display = 'none';
           }
           if (NavChild.className == 'NavContent') {
               NavChild.style.display = 'none';
           }
       }
   NavToggle.firstChild.data = NavigationBarShow;

   // if hidden now
   } else if (NavToggle.firstChild.data == NavigationBarShow) {
       for (
               NavChild = NavFrame.firstChild;
               NavChild !== null;
               NavChild = NavChild.nextSibling
           ) {
           if (NavChild.className == 'NavPic') {
               NavChild.style.display = 'block';
           }
           if (NavChild.className == 'NavContent') {
               NavChild.style.display = 'block';
           }
       }
   NavToggle.firstChild.data = NavigationBarHide;
   }

}

// adds show/hide-button to navigation bars function createNavigationBarToggleButton() {

   var indexNavigationBar = 0, i;
   // iterate over all < div >-elements
   for(

i=0, NavFrame = document.getElementsByTagName("div")[0]; NavFrame; i++ ) {

       // if found a navigation bar
       if (NavFrame.className == "NavFrame") {

           indexNavigationBar++;
           var NavToggle = document.createElement("a");
           NavToggle.className = 'NavToggle';
           NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
           NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');

           var NavToggleText = document.createTextNode(NavigationBarHide);
           NavToggle.appendChild(NavToggleText);
           // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
           for(
             var j=0; 
             j < NavFrame.childNodes.length; 
             j++
           ) {
             if (NavFrame.childNodes[j].className == "NavHead") {
               NavFrame.childNodes[j].appendChild(NavToggle);
             }
           }
           NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
       }

NavFrame = document.getElementsByTagName("div")[i];

   }
   // if more Navigation Bars found than Default: hide all
   if (NavigationBarShowDefault < indexNavigationBar) {
       for(
               i=1; 
               i<=indexNavigationBar; 
               i++
       ) {
           toggleNavigationBar(i);
       }
   }

}

$(createNavigationBarToggleButton);

/* Interwikis */

function interwikiExtra() {

  // iterate over all -elements
  for(var i=0, a = document.getElementsByTagName("span")[0]; a; i++) {
     // if found a linkInfo span
     if(a.className == "interwiki-info") {
// iterate over all
  • -elements var count=0; for(var j=0, b = document.getElementsByTagName("li")[0]; b; j++) { if(b.className == "interwiki-" + a.id) { b.innerHTML = b.innerHTML + " "+a.title; if(a.title == "(vo)") { b.title = "Texto original"; } } else if(b.className == "interwiki-" + a.id.substr(0,a.id.length-1)) { count = count+1; if(a.id.charAt(a.id.length-1) == count) { b.innerHTML = b.innerHTML + " "+a.title; } } b = document.getElementsByTagName("li")[j]; } } a = document.getElementsByTagName("span")[i]; } } $(interwikiExtra); /** Banners para dicas e doações vista apenas por anônimos ************************** * Descrição: Frases aleatórias que podem ser vistas por anônimos the bug: * Autores: en:User:Gmaxwell, en:User:MZMcBride ******************************************************************************/ importScript('MediaWiki:WikiBanners.js'); /** * Altera o título da página * * A função procura por um banner como: * <div id="RealTitleBanner">Div que está oculto * <span id="RealTitle">título</span> * </div> * Um elemento com id=DisableRealTitle desabilita a função * @source: w:en:MediaWiki:Common.js */ rewritePageH1 = function () { try { var realTitleBanner = document.getElementById( 'RealTitleBanner' ); if (realTitleBanner) { if ( !document.getElementById( 'DisableRealTitle' ) ) { var realTitle = document.getElementById( 'RealTitle' ); var h1 = document.getElementsByTagName( 'h1' )[0]; if ( realTitle && h1 ) { h1.innerHTML = realTitle.innerHTML; realTitleBanner.style.display = 'none'; } } } } catch (e) { mw.log( 'Algo deu errado ao tentar reescrever o título da página.' ); } }; $( rewritePageH1 ); /** * Transforma páginas comuns em páginas de discussão, para permitir coloração baseada na indentação * @source: fr:w:MediaWiki:Common.js * @author: fr:User:Aoineko */ $(function() { if ( $('#PaginaDeDiscussao').length ) { $(document.body).removeClass('ns-subject').addClass('ns-talk'); } });