From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/* <pre> [[User:DStoykov/defaultsort.js]] <nowiki> */



function defaultsort() {

//var apiurl = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?action=query&meta=siteinfo&siprop=namespaces&format=xml';

//var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : null;

//xmlhttp.open('GET',apiurl, false);

//xmlhttp.send(null);

//alert(xmlhttp.responseXML.getElementById('14').childNodes[0].nodeValue);



    var txt = document.editform.wpTextbox1.value;

    var sortkey = '';

    // Save the position of the editbox scrollbar

    var scrollPosition = document.editform.wpTextbox1.scrollTop;

    // Create an array of all category links

    if (txt.match(/\{\{\s*defaultsort/i)) {

        alert('There\'s already a defaultsort statement!');

        return;

    } 

    var catlinks = txt.match(/\[\[\s*((C|K)at(e|e)gor(y|i|ie|ia|ia|ija|io)|Кат(е|э)гор(ия|ија|ія|ыя)|Luokka|Flokkur)\s*:.*\]\]/ig);

    if (!catlinks) {

        alert('There are no category links!');

        return;

    } 

    for (i=0; i< catlinks.length; i++) {

        // Extract the name of the category

        var catname = catlinksi].replace(/.+\s*:\s*([^|]*[^|\s])\s*(\|.*)?\]\]/,"$1");

        // Extract the sort key 

        var match = /\|[^\]]+/.exec(catlinksi]);

        if (match == null) {

	          alert('Category '+catname+' doesn\'t include a sort key!'); 

            return;

        }

        // Strip the '|' and any trailing spaces

        var sk = match0].replace(/\|(.+)/, "$1").replace(/(\S) +$/,"$1");

        if (i == 0) {

            sortkey = sk;

        } else {

            if (sortkey != sk) {

                alert('Not all sort keys are identical!\nThe sort key for category '+catname+' is different.');

                return;

            }

        }

    }

    // Now that we know that everything is OK, we can proceed with modifying the content of the editbox

    txt = txt.replace(catlinks0], "{{DEFAULTSORT:"+sortkey+"}}\n"+catlinks0]);

    for (i=0; i< catlinks.length; i++) {

        subst = catlinksi].replace(/\|[^\]]+/,"");

        txt = txt.replace(catlinksi], subst);

    }

    document.editform.wpTextbox1.value=txt;

    // Restore scroll position

    document.editform.wpTextbox1.scrollTop = scrollPosition;

}



$(function () {

  if(document.forms.editform) {

    mw.util.addPortletLink('p-cactions', 'javascript:defaultsort()', 'defaultsort', 'ca-defaultsort', '', '', document.getElementById('ca-purge'));

  }

});



/* </nowiki></pre> */
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/* <pre> [[User:DStoykov/defaultsort.js]] <nowiki> */



function defaultsort() {

//var apiurl = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?action=query&meta=siteinfo&siprop=namespaces&format=xml';

//var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : null;

//xmlhttp.open('GET',apiurl, false);

//xmlhttp.send(null);

//alert(xmlhttp.responseXML.getElementById('14').childNodes[0].nodeValue);



    var txt = document.editform.wpTextbox1.value;

    var sortkey = '';

    // Save the position of the editbox scrollbar

    var scrollPosition = document.editform.wpTextbox1.scrollTop;

    // Create an array of all category links

    if (txt.match(/\{\{\s*defaultsort/i)) {

        alert('There\'s already a defaultsort statement!');

        return;

    } 

    var catlinks = txt.match(/\[\[\s*((C|K)at(e|e)gor(y|i|ie|ia|ia|ija|io)|Кат(е|э)гор(ия|ија|ія|ыя)|Luokka|Flokkur)\s*:.*\]\]/ig);

    if (!catlinks) {

        alert('There are no category links!');

        return;

    } 

    for (i=0; i< catlinks.length; i++) {

        // Extract the name of the category

        var catname = catlinksi].replace(/.+\s*:\s*([^|]*[^|\s])\s*(\|.*)?\]\]/,"$1");

        // Extract the sort key 

        var match = /\|[^\]]+/.exec(catlinksi]);

        if (match == null) {

	          alert('Category '+catname+' doesn\'t include a sort key!'); 

            return;

        }

        // Strip the '|' and any trailing spaces

        var sk = match0].replace(/\|(.+)/, "$1").replace(/(\S) +$/,"$1");

        if (i == 0) {

            sortkey = sk;

        } else {

            if (sortkey != sk) {

                alert('Not all sort keys are identical!\nThe sort key for category '+catname+' is different.');

                return;

            }

        }

    }

    // Now that we know that everything is OK, we can proceed with modifying the content of the editbox

    txt = txt.replace(catlinks0], "{{DEFAULTSORT:"+sortkey+"}}\n"+catlinks0]);

    for (i=0; i< catlinks.length; i++) {

        subst = catlinksi].replace(/\|[^\]]+/,"");

        txt = txt.replace(catlinksi], subst);

    }

    document.editform.wpTextbox1.value=txt;

    // Restore scroll position

    document.editform.wpTextbox1.scrollTop = scrollPosition;

}



$(function () {

  if(document.forms.editform) {

    mw.util.addPortletLink('p-cactions', 'javascript:defaultsort()', 'defaultsort', 'ca-defaultsort', '', '', document.getElementById('ca-purge'));

  }

});



/* </nowiki></pre> */

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook