Fandom


  • AmonFatalis sagte:
    Auf der Seite Spezial:Benutzer sind gewisse Gruppen ausgewählt und andere nicht. Eine der nicht ausgewählten ist Chat-Moderator.

    Kann man das ändern lassen? Es ist nämlich unpraktisch, dass Chat-Moderatoren nur dort gelistet sind, wenn man das jedes Mal wieder ändert ...

    ForestFairy sagte:
    Hallo AmonFatalis. Mir wurde gerade gesagt, dass man das mit JS von deiner Seite aus machen könnte. Vielleicht eine Frage für das technische Forum, wenn Du dich nicht mit JS auskennst...

    Hallo, wie man sich schon denken kann, bin ich nicht in der Lage obiges mit JS zu regeln, weshalb ich nun hier schreibe ...

    Hat jemand mit den nötigen Kenntnissen lust ein Script zu schreiben, mit dem Chat-Moderator zu den als default ausgewählten Benutzergruppen gehört?

    MfG,

    AmonFatalis Mein Haupt-Profil Meine Nachrichtenseite

      Lade Editor…
    • Das Auswählen ist nicht das Problem

      Common.js:

      Checkboxen = document.getElementsByTagName("input");
      for (i=0; i < Checkboxen.length; i++) {
        if (Checkboxen[i].value == 'chatmoderator') {      //edit: 2x= ist ein Vergleich 1x = ist eine Zuweisung (und damit immer true)
          Checkboxen[i].checked = true;
          break;
        }
      }
      oTable.fnDraw();

      Die erste Anweisung setzt die Checkbox auf "checked" (also das Häkchen rein) - Es müssen leider alle Checkboxen abgesucht werden, weil einige Programmierer es lustig fanden IDs doppelt und x-fach zu vergeben (wodurch keine davon anspringbar ist).
      Die zweite Anweisung habe ich mir aus dem Script geklaut. Es ist die Funktion, die beim Betätigen des Buttons ausgeführt wird. Hoffe es funktioniert für dich.

        Lade Editor…
    • Die Erklärung ist doch für die Katz, das sollte serverseitig richtig eingestellt sein, gibt keinen vernünftigen Grund, dass Chatmods ausgeblendet werden.

        Lade Editor…
    • @ 20M61: Danke für deine Mühe. :) Ich sehe leider (überraschenderweise) keine Änderungen (bisher), wobei mir das, was ich von dem javascript dort oben im Detail verstehe, schlüssig erscheint ...
      @ PedroM: Der Sachverhalt wäre eigentlich für die Verbesserungsvorschläge an Spezial:Kontakt. Immerhin ist wie von dir erwähnt, wikia-weit kein Wiki zu finden, dass die Chatmods verbergen will.

      Ich werde mal Kontakt aufnehmen.

        Lade Editor…
    • Wegen Bug-Beseitigung: Hast du mein Skript versucht einzusetzen? Wenn ja, dann auf welcher Seite? Dann kann ich mal gucken, ob es vielleicht ein Fehler hat und diesen beseitigen.

        Lade Editor…
    • Ich habe es sofort in das de.monsterhunter:MediaWiki:Common.js eingesetzt. Es wäre sehr gut, wenn du den Fehler finden könntest, da ich nicht weiß, ob und wann Wikia "meinen" Verbesserungsvorschlag umsetzt.

      Brauchst du dann temporäre sysop-Rechte wie im CoC-Wiki bis das läuft?^^

        Lade Editor…
    • Hmm ... das Problem ist, dass die Funktion nicht richtig gestartet wird. Meine JQuery-Kenntnisse sind jedoch zu gering um heraus zu finden, woran es liegt.

      Das hier ist das gesamte Skript von Wikia:

      Langer Wikia-JavaScript-Code
      function __makeParamValue() {
      	var f = document.getElementById('lu-form');
      	var target = "";
      	if (f.lu_target && f.lu_target.length > 0) {
      		for ( i = 0; i < f.lu_target.length; i++ ) {
      			if (f.lu_target[i].checked)
      				target += f.lu_target[i].value + ",";
      		}
      	}
      	return target;
      }
       
      $(document).ready(function() {
      	var baseurl = wgScript + "?action=ajax&rs=ListusersAjax::axShowUsers";
       
      	var oTable = $('#lu-table').dataTable( {
      		"oLanguage": {
      			"sLengthMenu": "Zeige _MENU_ Einträge pro Seite",
      			"sZeroRecords": "Keine Ergebnisse",
      			"sEmptyTable": "Keine Ergebnisse",
      			"sInfo": "Zeige <strong>_START_</strong> bis <strong>_END_</strong> von <strong>_TOTAL_</strong> Einträgen",
      			"sInfoEmpty": "<!-- ??? missing qqq -->Zeige <strong>0</strong> bis <strong>0</strong> von <strong>0</strong> Einträgen",
      			"sInfoFiltered": "",
      			"sSearch": "Suche",
      			"sProcessing": "<img src='" + stylepath + "/common/images/ajax.gif' /> Lädt…",
      			"oPaginate" : {
      				"sFirst": "Erste Seite",
      				"sPrevious": "Vorherige Seite",
      				"sNext": "Nächste Seite",
      				"sLast": "Letzte Seite"
      			}
      		},
      		"sCookiePrefix" : "Listusers-wikia",
      		"aLengthMenu": [[10, 25, 50], [10, 25, 50]],
      		"sDom": '<"dttoolbar"><"top"flip>rt<"bottom"p><"clear">',
      		"aoColumns": [
      			{ "sName": "username" },
      			{ "sName": "groups" },
      			{ "sName": "revcnt" },
      			{ "sName": "loggedin" },
      			{ "sName": "dtedit" }
      		],
      		"bProcessing": true,
      		"bServerSide": true,
      		"bFilter" : false,
      		"sPaginationType": "full_numbers",
      		"sAjaxSource": baseurl,
      		/*"fnInitComplete" : function ( oInstance, oSettings, json ) {
      			// make CSS buttons
      		},*/
      		"fnServerData": function ( sSource, aoData, fnCallback ) {
      			var limit		= 30;
      			var offset 		= 0;
      			var groups	 	= __makeParamValue();
      			var loop		= 1;
      			var order 		= '';
       
      			var sortingCols = 0;
      			var _tmp = new Array();
      			var _tmpDesc = new Array();
      			var columns		= new Array();
      			var sortColumns = new Array();
      			var sortOrder	= new Array();
      			var iColumns	= 0;
       
      			for ( i in aoData ) {
      				switch ( aoData[i].name ) {
      					case 'iDisplayLength'	: limit = aoData[i].value; break;
      					case 'iDisplayStart'	: offset = aoData[i].value; break;
      					case 'sEcho'			: loop = aoData[i].value; break;
      					case 'sColumns'			: columns = aoData[i].value.split(","); break;
      					case 'iColumns'			: iColumns = aoData[i].value; break;
      					case 'iSortingCols'		: sortingCols = aoData[i].value; break;
      				}
       
      				if ( aoData[i].name.indexOf( 'iSortCol_', 0) !== -1 )
      					sortColumns.push(aoData[i].value);
       
      				if ( aoData[i].name.indexOf( 'sSortDir_', 0) !== -1 )
      					sortOrder.push(aoData[i].value);
      			}
       
      			if ( sortingCols > 0 ) {
      				for ( i = 0; i < sortingCols; i++ ) {
      					var info = columns[sortColumns[i]] + ":" + sortOrder[i];
      					_tmp.push(info);
      				}
      				order = _tmp.join('|');
      			}
       
      			$.ajax( {
      				"dataType": 'json',
      				"type": "POST",
      				"url": sSource,
      				"data": [
      					{ 'name' : 'groups', 	'value' : groups },
      					{ 'name' : 'username',	'value' : ( $('#lu_search').exists() ) ? $('#lu_search').val() : '' },
      					{ 'name' : 'edits', 	'value' : ( $('#lu_contributed').exists() ) ? $('#lu_contributed').val() : 5 },
      					{ 'name' : 'limit', 	'value' : limit },
      					{ 'name' : 'offset',	'value' : offset },
      					{ 'name' : 'loop', 		'value' : loop },
      					{ 'name' : 'numOrder',	'value' : sortingCols },
      					{ 'name' : 'order',		'value' : order }
      				],
      				"success": fnCallback
      			} );
      		}
      	} );
       
      	var toolbar = '<div class="lu_filter">';
      	toolbar += '<span class="lu_filter lu_first">Zeige Benutzer ab:</span>';
      	toolbar += '<span class="lu_filter"><input type="text" name="lu_search" id="lu_search" size="5" value=""></span>';
      	toolbar += '<span class="lu_filter lu_first">Beiträge</span>';
      	toolbar += '<span class="lu_filter"><select name="lu_contributed" id="lu_contributed" >';
      			toolbar += '<option  value="0">alle Benutzer';
      			toolbar += '<option  value="1">1 oder mehr';
      			toolbar += '<option selected=\'selected\' value="5">5 oder mehr';
      			toolbar += '<option  value="10">10 oder mehr';
      			toolbar += '<option  value="20">20 oder mehr';
      			toolbar += '<option  value="50">50 oder mehr';
      			toolbar += '<option  value="100">100 oder mehr';
      		toolbar += '</select></span>';
      	toolbar += '<span class="lu_filter"><input type="button" value="Zeige" id="lu-showusers"></span></div>';
       
      	$("div.dttoolbar").html( toolbar );
      	$('#lu-showusers').click( function() { oTable.fnDraw(); } );
      } );

      Hierdurch wird leider nicht neu geladen, was angezeigt werden soll.

      Ich hab aber auch einen Fehler oben hinein gemacht:

      Checkboxen = document.getElementsByTagName("input");
      for (i=0; i < Checkboxen.length; i++) {
        if (Checkboxen[i].value == 'chatmoderator') {
          Checkboxen[i].checked = true;
          break;
        }
      }
      // oTable.fnDraw();     // funktioniert leider nicht

      In Zeile 3 (If-Anweisung) hätte ich 2 "=" Zeichen setzen müssen und nicht eines. Eigentlich ein Anfängerfehler. Sorry dafür :(

        Lade Editor…
    • Das ist alles Wikias Fehler. :D Ich werde Andrea auch nochmal kontaktieren.

        Lade Editor…
    • Zum Spielen: Hier hab ichs in meinem Testwiki eingesetzt: 20M61/Spezial:Benutzer

      Es wird nur das Häkchen gesetzt. Ich hoffe hierbei darauf, dass mein Code schneller abgearbeitet wird, als das JQuery, was ja erst nach Seitenaufbau beginnt. Mit etwas Glück ist das Häkchen da, bevor die Funktion drüber geschaut hat. - Leider habe ich keinen Chat-Mod. Hab jetzt meinen Bot ernannt. Vielleicht bringt das was.

        Lade Editor…
    • Ich teste das mal.

      Edit: Randbemerkung, aber wird bei dir auch der 30. Juni als letzter Login angezeigt?

      Funktioniert - Ich habe aber auch keinen ChatMod. :)

        Lade Editor…
    • AmonFatalis sagte:
      Funktioniert - Ich habe aber auch keinen ChatMod. :)

      LOL! Warum machen wir das ganze gleich nochmal xD

      Ich nutz die Benutzerübersicht total selten. Meist bleibe ich auch eingeloggt. Heute habe ich mich zwar neu angemeldet auf dem Wiki, aber irgendwie scheint er das nicht verarbeitet zu haben. Da müsstest du ggf. Andrea fragen, wie das zustande kommt mit dem letzten Login.

        Lade Editor…
    • Es geht um das Prinzip. Jeder sollte einen Chat-Moderator ernennen können, ohne dass dieser aus den Statistiken von Spezial:Benutzer fliegt.

      Und ich würde das so wie so gerne können.^^

      Edit@Einloggen: Im Monster Hunter Wiki hat sich angeblich auch noch keiner im Juli eingeloggt. Aber wenn andere das auch sehen, ist alles gut.^^
        Lade Editor…
    • Aber er würde ja trotzdem als "normaler angemeldeter Benutzer" angezeigt werden (ich glaube die Auswahl ist "keine Benutzergruppe".

      Die Rechtevergabe bei Wikia ist (mit Ausnahme von "unangemeldet") immer zusätzlich. Das heißt, wenn ich als Admin jemanden sperren kann und als Bürokrat nicht, dann kann ich als Bürokrat UND Admin trotzdem jemanden sperren (und nebenbei bin ich dann auch angemeldeter User und kann Seiten bearbeiten - Bei der Suche kann ich über Bürokrat, Admin und Angemeldet gefunden werden - zumindest in der Theorie).

        Lade Editor…
    • Bei Spezial:Benutzer wechselt er aber. Wenn ich jemanden ernennen verringert sich "Keine Gruppe" um 1 und die Rechte-Gruppe XY erhöht sich. Anders herum genau so.

        Lade Editor…
    • Krass, worauf du achtest :D Hab es gerade hier im Community-Wiki nachgeschaut: Hier ist Dragon Rainbow ChatMod. Wenn man nicht das Häkchen setzt, dann ist er wirklich nicht zu finden, der arme.

      Also thumb up für deine Aufmerksamkeit :D

        Lade Editor…
    • @AmonFatalis

      Der 30. Juni ist im Augenblick total angesagt, vor allem in der Zeit zwischen 20:00 und 21:00 h.

      Kurz gesagt: Jepp, ist auch in anderen Wikis so.

        Lade Editor…
    • Am Montag talke ich mal über Spezial:Kontakt.

        Lade Editor…
    • Ein Fandom-Benutzer
        Lade Editor…
Diesem Beitrag zustimmen
Beitrag zugestimmt!
Leute, die dieser Nachricht zustimmten anzeigen
Nutzung von Community-Inhalten gemäß CC-BY-SA , sofern nicht anders angegeben.