الفرق بين المراجعتين لصفحة: «ميدياويكي:Common.js»

من ويكي مصدر، المكتبة الحرة
تم حذف المحتوى تمت إضافة المحتوى
ط Protocol relative script includes
update
سطر 34: سطر 34:
}
}
}
}





سطر 55: سطر 54:
}
}


if (window.addEventListener) window.addEventListener("load",customizeWiktionary,false);
jQuery(document).ready(customizeWiktionary);
else if (window.attachEvent) window.attachEvent("onload",customizeWiktionary);


/* Remember to keep [[MediaWiki:Standard.js]] in sync with this, for classic style! */
/* Remember to keep [[MediaWiki:Standard.js]] in sync with this, for classic style! */
سطر 67: سطر 65:
//============================================================
//============================================================


/**
* Installation d'une nouvelle fonction de cette façon:
* aOnloadFunctions[aOnloadFunctions.length] = nom_de_la_fonction; // (sans parenthèses)
*/
if (!window.aOnloadFunctions) {
var aOnloadFunctions = new Array();
}

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


/**
* Ajouter une nouvelle fonction a excuter au chargement de la page.
*/
function addLoadEvent(func)
{
if (window.addEventListener)
window.addEventListener("load", func, false);
else if (window.attachEvent)
window.attachEvent("onload", func);
}
//============================================================
//
// لإضافة قالب خاص
//
// ============================================================
// BEGIN Enable multiple onload functions

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

if (!window.aOnloadFunctions) {
var aOnloadFunctions = new Array();
}

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


// END Enable multiple onload functions
// END Enable multiple onload functions
سطر 236: سطر 185:
var collapseCaption = "أخفِ";
var collapseCaption = "أخفِ";
var expandCaption = "أظهر";
var expandCaption = "أظهر";
function hasClass( element, className ) {
var Classes = element.className.split( " " );
for ( var i = 0; i < Classes.length; i++ ) {
if ( Classes[i] == className ) {
return ( true );
}
}
return ( false );
}
function collapseTable( tableIndex )
function collapseTable( tableIndex )
سطر 278: سطر 217:
for ( var i = 0; i < Tables.length; i++ ) {
for ( var i = 0; i < Tables.length; i++ ) {
if ( hasClass( Tables[i], "collapsible" ) ) {
if ( $(Tables[i]).hasClass("collapsible" ) ) {
NavigationBoxes[ tableIndex ] = Tables[i];
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex);
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex);
سطر 307: سطر 246:
for ( var i = 0; i < tableIndex; i++ ) {
for ( var i = 0; i < tableIndex; i++ ) {
if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
if ( $(NavigationBoxes[i]).hasClass("collapsed" ) || ( tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass("autocollapse" ) ) ) {
collapseTable(i);
collapseTable(i);
}
}
سطر 313: سطر 252:
}
}
addLoadEvent(createCollapseButtons);
jQuery(document).ready(createCollapseButtons);





نسخة 10:59، 14 أغسطس 2012

/* الجافاسكريبت الموضوع هنا سيتم تحميله لكل المستخدمين مع كل تحميل للصفحة. */
/* {{interwiki-all|Mediawiki:Common.js}}
<pre dir="ltr">
*/

// import scripts for Interwiki Transclusion from //wikisource.org/wiki/Wikisource:Shared_Scripts
mw.loader.load('//wikisource.org/w/index.php?title=MediaWiki:Base.js&action=raw&ctype=text/javascript');
mw.loader.load('//wikisource.org/w/index.php?title=MediaWiki:InterWikiTransclusion.js&action=raw&ctype=text/javascript');

/* plus tab for beer parlour and tea room */

function addPlusToBeerParlour() {
  // get page title
  var pagetitle = document.getElementById('content').getElementsByTagName('h1').item(0).firstChild.nodeValue;

  // is this the beer parlour (in normal mode)?
  if ((pagetitle.search(/^Wiktionary:Beer parlour$/) != -1) || (pagetitle.search(/^Wiktionary:Tea room$/) != -1)) {

    // find the spot to add our new tab
    var edittabli = document.getElementById('ca-edit');

    // create the plus tab
    var plustabli = document.createElement('li');
    plustabli.id = 'ca-addsection';
    var plustablink = document.createElement('a');

    plustablink.href = '/w/index.php?title=' + pagetitle + '&action=edit&section=new';
    plustablink.appendChild(document.createTextNode('+'));
    plustabli.appendChild(plustablink);

    // add the plus tab
    edittabli.className = 'istalk';
    edittabli.parentNode.insertBefore(plustabli, edittabli.nextSibling);
  }
}


/* select subsection of special characters */

function chooseCharSubset(s) {
  var l = document.getElementById('editpage-specialchars').getElementsByTagName('p');
  for (var i = 0; i < l.length ; i++) {
    l[i].style.display = i == s ? 'inline' : 'none';
    l[i].style.visibility = i == s ? 'visible' : 'hidden';
  }
}

/* do any Wiktionary-specific customizations */
function customizeWiktionary() {
  addPlusToBeerParlour();

  //this throws a javascript error because the function does not exist. I'm just commenting it out 'cause I don't know what it's for
  //addCharSubsetMenu();
}

jQuery(document).ready(customizeWiktionary);

/* Remember to keep [[MediaWiki:Standard.js]] in sync with this, for classic style! */


//============================================================
//
// لتفعيل البرامج المضافة
//
//============================================================


// END Enable multiple onload functions
// ============================================================

// ============================================================
// BEGIN Dynamic Navigation Bars

// set up the words in your language
var NavigationBarHide = 'أخفِ';
var NavigationBarShow = 'أظهر';

 // 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);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
    if (!NavFrame || !NavToggle) {
        return false;
    }
 
    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (
                var 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 (
                var 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;
    // iterate over all < div >-elements
    for(
            var i=0; 
            NavFrame = document.getElementsByTagName("div")[i]; 
            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);
        }
    }
    // if more Navigation Bars found than Default: hide all
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(
                var i=1; 
                i<=indexNavigationBar; 
                i++
        ) {
            toggleNavigationBar(i);
        }
    }
 
 }

aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;

// END Dynamic Navigation Bars
// ============================================================

// == Collapsible tables ======================================
 var autoCollapse = 2;
 var collapseCaption = "أخفِ";
 var expandCaption = "أظهر";
 
 function collapseTable( tableIndex )
 {
     var Button = document.getElementById( "collapseButton" + tableIndex );
     var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
     if ( !Table || !Button ) {
         return false;
     }
 
     var Rows = Table.getElementsByTagName( "tr" ); 
 
     if ( Button.firstChild.data == collapseCaption ) {
         for ( var i = 1; i < Rows.length; i++ ) {
             Rows[i].style.display = "none";
         }
         Button.firstChild.data = expandCaption;
     } else {
         for ( var i = 1; i < Rows.length; i++ ) {
             Rows[i].style.display = Rows[0].style.display;
         }
         Button.firstChild.data = collapseCaption;
     }
 }
 
 function createCollapseButtons()
 {
     var tableIndex = 0;
     var NavigationBoxes = new Object();
     var Tables = document.getElementsByTagName("table");
 
     for ( var i = 0; i < Tables.length; i++ ) {
         if ( $(Tables[i]).hasClass("collapsible" ) ) {
             NavigationBoxes[ tableIndex ] = Tables[i];
             Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex);
 
             var Button     = document.createElement( "span" );
             var ButtonLink = document.createElement( "a" );
             var ButtonText = document.createTextNode( collapseCaption );
 
             Button.style.styleFloat = "left";
             Button.style.cssFloat = "left";
             Button.style.textAlign = "left";
             Button.style.width = "6em";
 
             ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
             ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
             ButtonLink.appendChild( ButtonText );
 
             Button.appendChild( document.createTextNode( "[" ) );
             Button.appendChild( ButtonLink );
             Button.appendChild( document.createTextNode( "]" ) );
 
             var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
             Header.insertBefore( Button, Header.childNodes[0] );
 
             tableIndex++;
         }
     }
 
     for ( var i = 0;  i < tableIndex; i++ ) {
         if ( $(NavigationBoxes[i]).hasClass("collapsed" ) || ( tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass("autocollapse" ) ) ) {
             collapseTable(i);
         }
     }
 }
 
jQuery(document).ready(createCollapseButtons);


/**********************
*** Automatically generate page footer from values in {{header}}
*** by [[user:GrafZahl]]
**********************/

function DisplayFooter() {
	if(document.getElementById && wgNamespaceNumber==0) {
		nofooter = document.getElementById('nofooter');
		hp = document.getElementById('headerprevious');
		hn = document.getElementById('headernext');
		content = document.getElementById('bodyContent');
		catlinks = document.getElementById('catlinks');
		footer = document.createElement('table');
                //header_template = document.getElementById('headertemplate');		

                if( (!((content) && (footer))) || (!(hp || hn)) ||
		(nofooter))
		return;
		
		footer.setAttribute('class', 'headertemplate');
		footer.setAttribute('id', 'footertemplate');
		footer.setAttribute('style', 'margin-top:1em; clear:both;');
		
		/* Begin footer HTML code */
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.setAttribute('align', 'left');
		td.setAttribute('width', '33%');
		
                if (hp) {
		  fp = hp.cloneNode(true);
		  fp.setAttribute('id', 'footerprevious');
		  td.appendChild(fp);
		}
		tr.appendChild(td);
		
		td = document.createElement('td');
		td.setAttribute('align', 'center');
		td.setAttribute('width', '34%');
		a = document.createElement('a');
		a.setAttribute('href', '#top');
		text = document.createTextNode('عودة إلى رأس الصفحة');
		a.appendChild(text);
		td.appendChild(a);
		tr.appendChild(td);
		
		td = document.createElement('td');
		td.setAttribute('align', 'right');
		td.setAttribute('width', '33%');
		
                if (hn) {
		  fn = hn.cloneNode(true);
		  fn.setAttribute('id', 'footernext');
		  td.appendChild(fn);
		}

		tr.appendChild(td);
		
		footer.appendChild(tr);
		
		/* End footer HTML code */
		
		if(catlinks) // place footer before category box
		content.insertBefore(footer, catlinks);
		else
		content.appendChild(footer);
	}
}

addOnloadHook(DisplayFooter);
/* Footnotes as tooltip - from wikisource.org */
 
addOnloadHook ( function ()
{
 sups = document.getElementsByTagName("sup");
 for (i=0; i<sups.length; i++)
 {
   note_id = sups[i].childNodes[0].href;
   if (note_id && (note_id.indexOf("#") != -1))
   {
     note_id = document.getElementById(note_id.substr(note_id.indexOf("#")+1));
     if (note_id)
       if (document.all) 
       { 
           sups[i].title = note_id.innerText; 
           sups[i].childNodes[0].title = note_id.innerText; 
       } 
       else 
       { 
           sups[i].title = note_id.textContent; 
      }
   }
 }
})