MediaWiki:Seitenempfehlung.js
aus Kamelopedia, der wüsten Enzyklopädie
Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
/* * Version 2011-05-15.1 sollte halbwegs fehlerfrei funktionieren CODE BEFINDET SICH IN Common.js UM DIE WARTEZEITEN BEIM NACHLADEN VON SKRIPTEN ZU MINIMIEREN */ var hwList; // HatWas-Liste var entry; var subpath = '/Empfehlung'; // Name bzw. Pfad der Kamelbau-Unterseiten // Es gibt KEINE Regeln bzgl. der persönlichen Empfehlungen, ein automatischer Daumen taucht jedoch nur auf // Seiten auf, wo es auch potentiell lesenswertes Zeug geben tut // // HINWEIS an ---> DUFO <---- // FINGER WEG VON DEN NAMENSRÄUMEN, wehe, du nimmst da was raus // var hwNS = (typeof(hwNS) == 'object') ? hwNS : new Array ("", "File", "Kamelionary", "Kamelobooks", "News", "Projekt", "Frage"); // hierhin die Namensräume, wo der Daumen auftauchen soll (Achtung! canonical namespaces!); // Empfehlungsliste auslesen function readHwList(username, action) { jQuery.ajax({ url: mw.config.get( 'wgScript' ), data: { title: "Kamel:" + username + subpath, action: "raw" }, cache: false, // Noch keine Empfehlungs-Seite angelegt error: function() { hwList = new Array(); switch (action) { case "add": adHW(); break; case "remove": removeHW(); break; } }, // Empfehlungs-Seite auslesen success: function(data) { hwList = data.match(/\[\[.*\]\]/g); switch (action) { case "add": adHW(); break; case "remove": removeHW(); break; } } }); } // Seite zur Empfehlungsliste hinzufügen function adHW() { // edit-Token holen jQuery.ajax({ url: '/api.php', data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" }, cache: false, success: function(data) { var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken'); hwList.push(entry); // Aktuelle Seite dazu hwList = sortHW(hwList); // Sortieren // Empfehlungsliste bearbeiten jQuery.ajax({ url: '/api.php', type: 'POST', cache: false, data: { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "+ " + entry, token: edittoken }, success: function(data) { var text = '<p>Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde zu deinen <a href="' + mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> hinzugefügt.</p>'; jQuery('#mw-js-message').html(text); jQuery('#mw-js-message').slideDown('fast'); } }) } }); } function removeHW() { // edit-Token holen jQuery.ajax({ url: '/api.php', data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" }, cache: false, success: function(data) { var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken'); var i = jQuery.inArray(entry, hwList); delete hwList[i]; // Aktuelle Seite wech hwList = sortHW(hwList); // Sortieren // Empfehlungsliste bearbeiten jQuery.ajax({ url: '/api.php', type: 'POST', cache: false, data: { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "- " + entry, token: edittoken }, success: function(data) { var text = '<p>Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde von deinen <a href="' + mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> entfernt.</p>'; jQuery('#mw-js-message').html(text); jQuery('#mw-js-message').slideDown('fast'); } }) } }); } function showHW(username) { /* soll später html-Code für Empfehlungslisten ausspucken */ } // doppelte & leere Einträge entfernen + alphabetisch sortieren function sortHW(list) { var sorted = new Array(); for(var i=0; i<list.length; i++){ for(var j=i+1; j<list.length; j++){ if (list[i] == list[j]) j = ++i; } if (typeof(list[i]) != 'undefined') sorted.push(list[i]); } return sorted.sort(); } // Das ganze starten jQuery(document).ready(function() { //if(typeof(disableGaGA) != 'undefined' && disableGaGA) return; if(jQuery.inArray(mw.config.get( 'wgCanonicalNamespace' ), hwNS) != -1) { entry = (mw.config.get( 'wgCanonicalNamespace' ) == "File") ? "[[:" + Seitenname.replace(/_/g, ' ') + "]]" : "[[" + Seitenname.replace(/_/g, ' ') + "]]"; jQuery('#p-views ul').append('<li class="icon"><span><a href="#"></a></span></li>'); jQuery('#p-views li:last').ajaxComplete(function() { if(jQuery.inArray(entry, hwList) != -1) { jQuery(this).attr('id', 'ca-unhw'); jQuery('#ca-unhw a').html('Entfehlen'); jQuery('#ca-unhw a').attr('title', 'Seite nicht mehr empfehlen'); jQuery('#ca-unhw a').unbind('click'); jQuery('#ca-unhw a').bind('click', function() { readHwList(Kamelname, 'remove') }); } else { jQuery(this).attr('id', 'ca-hw'); jQuery('#ca-hw a').html('Empfehlen'); jQuery('#ca-hw a').attr('title', 'Seite empfehlen'); jQuery('#ca-hw a').unbind('click'); jQuery('#ca-hw a').bind('click', function() { readHwList(Kamelname, 'add') }); } }); readHwList(Kamelname, false); } })