ميدياويكي:Common.js

من ويكي الأخبار

ملاحظة: بعد النشر، أنت قد تحتاج إلى إفراغ الكاش الخاص بمتصفحك لرؤية التغييرات.

  • فايرفوكس / سافاري: أمسك Shift أثناء ضغط Reload، أو اضغط على إما Ctrl-F5 أو Ctrl-R (⌘-R على ماك)
  • جوجل كروم: اضغط Ctrl-Shift-R (⌘-Shift-R على ماك)
  • إنترنت إكسبلورر/إيدج: أمسك Ctrl أثناء ضغط Refresh، أو اضغط Ctrl-F5
  • أوبرا: اضغط Ctrl-F5.
/* Import [[ميدياويكي:Ticker2.js‏]] */
$(function () {
  if ( window.disable_ticker2 !== true && ( document.getElementById("singleTickerForPage") || document.getElementById('enableTickers') )
  ) {
    importScript("MediaWiki:ticker2.js");
  }
});

/* Import [[ميدياويكي:Comments.js]] */
 
if (mw.config.get('wgPageName') !== 'الصفحة الرئيسية') {
 importScript( 'Mediawiki:Comments.js' );
}

/* add menu for selecting subsets of secial characters */
/***** must match MediaWiki:Edittools *****/

function addCharSubsetMenu() {
  var edittools = document.getElementById('editpage-specialchars');

  if (edittools) {
    var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
    menu += "<option>رموز و أدوات تحرير</option>";
    menu += "<option>مشاكل في ترخيص الصور</option>";
    menu += "<option>عربية</option>";
    menu += "<option>أوروبية</option>";
    menu += "<option>لاتينية/رومانية</option>";
    menu += "<option>يونانية (حديثة)</option>";
    menu += "<option>متفرقات</option>";
    menu += "<option>فرنسية</option>";
    menu += "<option>ألمانية</option>";
    menu += "<option>إيطالية</option>";
    menu += "<option>إنجليزية قديمة</option>";
    menu += "<option>برتغالية</option>";
    menu += "<option>سكندنافية</option>";
    menu += "<option>صربية</option>";
    menu += "<option>إسبانية</option>";
    menu += "</select>";
    edittools.innerHTML = menu + edittools.innerHTML;

    /* default subset - try to use a cookie some day */
    chooseCharSubset(0);
  }
}

/* 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';
  }
}

$( addCharSubsetMenu );


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

//============================================================
//
// شريط أدوات التعديل
//
//============================================================

//============================================================
//
// لإضافة قالب خاص
//
// ============================================================
// 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);
        }
    }
 
 }

$(document).ready(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 = {};
     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);
         }
     }
 }
 
 $(document).ready(createCollapseButtons);
 
 // == END Collapsible tables =============================

/* 

//============================================================
//
// إضافة بلوك للتحميل لمن يقومون برفع ملفات بدون ترخيص، لن يمنعهم من المشاركة العادية، فقط تمنع تحميل الصور.
// لمنع أي مستخدم من تحميل أي صورة فقط انسخ السطرين في الأسفل بدون علامات الخطوط التي تسبقها 
//
// ============================================================

//var date = new Date(); date.setTime(date.getTime()+86400000);
//document.cookie = "evilbit=True; expires=" + date.toGMTString() + "; path=/";

//إلى صفحة User:Username/monobook.js

//هذا سيمنع المستخدم من رفع الصور لمدة 24 ساعة فور دخوله بحسابه.
//لا يتوجب عليهم أن يعدلوا أي شيء، مجرد الدخول بالحساب يكفي، طبعا يبقى قادرا على التعديل في جميع أنحاء الموسوعة
//

function checkevilbit() {
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
                var c = ca[i];
                if (c.replace(/^\s+|\s+$/g,"") == "evilbit=True") {
                        document.getElementById("wpSave").disabled=true;
                        document.getElementById("wpUpload").disabled=true;
                } 
        }
}

$(checkevilbit);
*/

//   * إضافة قائمة بمحركات بحث في صفحة البحث 
//   *  أنشئ بواسطة : [[:en:User:Gracenotes]]
//   *
 if (mw.config.get('wgPageName') == "خاص:بحث") {
           var searchEngines = [];
  $( SpecialSearchEnhanced );
}
 
function SpecialSearchEnhanced() {
  var createOption = function(site, action, mainQ, addQ, addV) {
    var opt = document.createElement('option');
    opt.appendChild(document.createTextNode(site));
    searchEngines[searchEngines.length] = [action, mainQ, addQ, addV];
    return opt;
  };
 
  if (document.forms['powersearch'])
    var searchForm = document.forms['powersearch'];
  if (document.forms['search'])
    var searchForm = document.forms['search'];
  if (searchForm.lsearchbox) {
    var searchBox = searchForm.lsearchbox;
  } else {
    var searchBox = searchForm.search;
  }
  var selectBox = document.createElement('select');
  selectBox.id = 'searchEngine';
  searchForm.onsubmit = function() {
    var optId = document.getElementById('searchEngine').selectedIndex;
    var optSelected = searchEngines[optId];
    searchForm.action = optSelected[0];
    searchBox.name = optSelected[1];
    searchForm.title.value = optSelected[3];
    searchForm.title.name = optSelected[2];
    // stockage du moteur dans un cookie
    document.cookie = "searchEngineId=" + optId;
  }
  selectBox.appendChild(createOption('بحث الميدياويكي', mw.config.get('wgScriptPath') + '/index.php', 'search', 'title', 'Special:Search'));
         selectBox.appendChild(createOption('Wikiwix', 'http://www.wikiwix.com/', 'action', 'lang', 'ar'));
         selectBox.appendChild(createOption('Google', 'http://www.google.com/search', 'q', 'sitesearch', 'ar.wikipedia.org'));
         selectBox.appendChild(createOption('Yahoo', 'http://search.yahoo.com/search', 'p', 'vs', 'ar.wikipedia.org'));
         selectBox.appendChild(createOption('Windows Live', 'http://search.live.com/results.aspx', 'q', 'q1', 'site:http://ar.wikipedia.org'));
         searchBox.style.marginLeft = '0px';
         if (document.getElementById('loadStatus')) {
             var lStat = document.getElementById('loadStatus');
         } else {
             var lStat = searchForm.fulltext;
         }
         lStat.parentNode.insertBefore(selectBox, lStat);
 }

/**
 * WikiMiniAtlas is a popup click and drag world map.
 * See [[meta:WikiMiniAtlas]] for more information. 
 * Maintainers: [[w:User:Dschwen]]
 */
mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript');

$( function() {
	if ( document.getElementById( 'lSetup' ) ) {
		importScript( 'user:Bawolff/leadGen.js' );
	}
} );