MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus ZUM-Grundschul-Wiki
Wechseln zu: Navigation, Suche
***** (***** | *****)
 
***** (***** | *****)
Zeile 1: Zeile 1:
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
 
 
 
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* Any JavaScript here will be loaded for all users on every page load. */
  
// <syntax type="javascript">
+
var isViewingMainPage = (/^MediaWiki(\/.+)? - MediaWiki$/.test(document.title));
 +
if (isViewingMainPage) {
 +
  document.write('<style type="text/css">/*<![CDATA[*/ #lastmod, #siteSub, h1.firstHeading { display: none !important; } #content { padding-top: 1em; }/*]]>*/</style>');
 +
}
  
    /**  
+
/* Force preview for anons */
        Toggles the display of elements on a page
+
/* by Marc Mongenet, 2006, fr.wikipedia */
        Author/contact: Austin Che http://openwetware.org/wiki/User:Austin_J._Che
+
        See http://openwetware.org/wiki/OpenWetWare:Toggle for examples and documentation
+
    */
+
  
// indexed array of toggler ids to array of associated toggle operations
+
function forcePreview() {
// each operation is a two element array, the first being the type, the second a class name or array of elements
+
  if (wgUserName != null || wgAction != "edit") return;
// operation types are strings like "_reset" or "" for the default toggle operation
+
  saveButton = document.getElementById("wpSave");
var togglers = new Array();    
+
  if (!saveButton) return;
var allClasses = new Object(); // associative map of class names to page elements
+
  saveButton.disabled = true;
 +
  saveButton.value = "Save page (use preview first)";
 +
  saveButton.style.fontWeight = "normal";
 +
  document.getElementById("wpPreview").style.fontWeight = "bold";
 +
}
 +
addOnloadHook(forcePreview);
  
function toggler(id)
+
/* End of forcePreview */
{
+
    var toBeToggled = togglers[id];
+
    if (!toBeToggled)
+
        return;
+
 
+
    // if some element is in list more than once, it will be toggled multiple times
+
    for (var i = 0; i < toBeToggled.length; i++)
+
    {
+
        // get array of elements to operate on
+
        var toggles = toBeToggled[i][1];
+
        if (typeof(toggles) == "string")
+
        {
+
            if (toggles.charAt(0) == '-')
+
            {
+
                // treat as an element ID, not as class
+
                toggles = document.getElementById(toggles.substring(1));
+
                if (toggles)
+
                    toggles = new Array(toggles);
+
            }
+
            else
+
                toggles = allClasses[toggles];
+
        }
+
        if (!toggles || !toggles.length)
+
            continue;
+
 
+
        var op = toBeToggled[i][0]; // what the operation will be
+
 
+
        switch (op)
+
        {
+
            case "_reset":
+
                for (var j in toggles)
+
                    toggles[j].style.display = toggles[j]._toggle_original_display;
+
                break;
+
            case "_show":
+
                for (var j in toggles)
+
                    toggles[j].style.display = '';
+
                break;
+
            case "_hide":
+
                for (var j in toggles)
+
                    toggles[j].style.display = 'none';
+
                break;
+
            case "":
+
            default:
+
                // Toggle
+
                for (var j in toggles)
+
                    toggles[j].style.display = ((toggles[j].style.display == 'none') ? '' : 'none');
+
                break;
+
        }
+
    }
+
}
+
  
function createTogglerLink(toggler, id)
+
/** includePage ************
 +
* force the loading of another JavaScript file
 +
*
 +
* Maintainer: [[Commons:User:Dschwen]]
 +
*/
 +
 +
function includePage( name )
 
{
 
{
    var toggle = document.createElement("a");
+
document.write('<script type="text/javascript" src="' + wgScript + '?title='
    toggle.className = 'toggler-link';
+
  + name
    toggle.setAttribute('id', 'toggler' + id);
+
  + '&action=raw&ctype=text/javascript"><\/script>'  
    toggle.setAttribute('href', 'javascript:toggler("' + id + '");');
+
);
    var child = toggler.firstChild;
+
    toggler.removeChild(child);
+
    toggle.appendChild(child);
+
    toggler.insertBefore(toggle, toggler.firstChild);
+
 
}
 
}
 +
/* End of includePage */
  
function toggleInit()
 
{
 
    var togglerElems = new Array();
 
    var toggleGroup = new Array();
 
  
    // initialize/clear any old information
+
/* Including extra .js pages */
    togglers = new Array();   
+
    allClasses = new Object();
+
       
+
    // make list of all document classes
+
    var elems = document.getElementsByTagName("*");
+
    var numelems = elems.length;
+
    for (var i = 0; i < elems.length; i++)
+
    {
+
        var elem = elems[i];
+
        if (!elem.className)
+
            continue;
+
  
        elem._toggle_original_display = elem.style.display;
+
// switches for scripts
        var togglerID = -1;
+
// TODO: migrate to JSConfig
        var elemClasses = elem.className.split(' '); // get list of classes
+
// var load_extratabs = true;
        for (var j = 0; j < elemClasses.length; j++)
+
var load_edittools = true;
        {
+
            var elemClass = elemClasses[j];
+
            if (! allClasses[elemClass])
+
                allClasses[elemClass] = new Array();
+
            allClasses[elemClass].push(elem);
+
 
+
            // all the special classes begin with _toggle
+
            if (elemClass.substring(0, 7) != "_toggle")
+
                continue;
+
 
+
            if (elemClass == "_togglegroup")
+
                toggleGroup = new Array();
+
            else if (elemClass == "_toggle")
+
                toggleGroup.push(elem);
+
            else if (elemClass.substring(0, 12) == "_toggle_init")
+
            {
+
                // set initial value for display (ignore the original CSS set value)
+
                // understands _toggle_initshow and _toggle_inithide
+
                var disp = elemClass.substring(12);
+
                if (disp == "show")
+
                    elem.style.display = '';
+
                else if (disp == "hide")
+
                    elem.style.display = 'none';
+
                elem._toggle_original_display = disp;
+
            }
+
            else if (elemClass.substring(0, 8) == "_toggler")
+
            {
+
                if (togglerID == -1)
+
                {
+
                    togglerID = togglers.length;
+
                    togglers[togglerID] = new Array();
+
                    togglerElems[togglerID] = elem;
+
                }
+
 
+
                // all classes are of form _toggler_op-CLASS
+
                // figure out what class we're toggling
+
                // if none is specified, then we use the current toggle group
+
                var toBeToggled;
+
                var hyphen = elemClass.indexOf('-');
+
                if (hyphen != -1)
+
                    toBeToggled = elemClass.substring(hyphen+1);
+
                else
+
                {
+
                    toBeToggled = toggleGroup;
+
                    hyphen = elemClass.length;
+
                }
+
 
+
                var op = elemClass.substring(8, hyphen);
+
                togglers[togglerID].push(new Array(op, toBeToggled));
+
            }
+
        }
+
    }
+
 
+
    // add javascript links to all toggler elements
+
    for (var i = 0; i < togglerElems.length; i++)
+
        createTogglerLink(togglerElems[i], i);
+
}
+
  
addOnloadHook(toggleInit);
+
// extra drop down menu on editing for adding special characters
 +
includePage( 'MediaWiki:Edittools.js' );
  
// </syntax>
+
/* End of extra pages */

Version vom 3. März 2008, 19:16 Uhr

/* Any JavaScript here will be loaded for all users on every page load. */
 
var isViewingMainPage = (/^MediaWiki(\/.+)? - MediaWiki$/.test(document.title));
if (isViewingMainPage) {
  document.write('<style type="text/css">/*<![CDATA[*/ #lastmod, #siteSub, h1.firstHeading { display: none !important; } #content { padding-top: 1em; }/*]]>*/</style>');
}
 
/* Force preview for anons */
/* by Marc Mongenet, 2006, fr.wikipedia */
 
function forcePreview() {
  if (wgUserName != null || wgAction != "edit") return;
  saveButton = document.getElementById("wpSave");
  if (!saveButton) return;
  saveButton.disabled = true;
  saveButton.value = "Save page (use preview first)";
  saveButton.style.fontWeight = "normal";
  document.getElementById("wpPreview").style.fontWeight = "bold";
}
addOnloadHook(forcePreview);
 
/* End of forcePreview */
 
/** includePage ************
 * force the loading of another JavaScript file
 *
 * Maintainer: [[Commons:User:Dschwen]]
 */
 
function includePage( name )
{
 document.write('<script type="text/javascript" src="' + wgScript + '?title='
  + name 
  + '&action=raw&ctype=text/javascript"><\/script>' 
 );
}
/* End of includePage */
 
 
/* Including extra .js pages */ 
 
// switches for scripts
// TODO: migrate to JSConfig
// var load_extratabs = true;
var load_edittools = true;
 
// extra drop down menu on editing for adding special characters
includePage( 'MediaWiki:Edittools.js' );
 
/* End of extra pages */