hightopone
Goto Top

User Statusunabhängig in einen Forum Ignorieren

Hallo und Guten Tag,

Diese Anleitung soll für Menschen sein , die daran Interesse haben unabhängig von der jeweiligen Forensoftware User zu Ignorieren,unabhängig davon welchen Status die einzelnen User besitzen.

Es wird von daher auch möglich sein Moderatoren und Administratoren auf die Ignore Liste zu setzen oder User die Gruppen zugehören von denen es durch die Konfiguration der Forensoftware nicht erwünscht ist,dass diese Ignoriert werden.

Es muss also jeder der diese Anleitung nutz und angebotene Funktion nutzen will vorher abwägen,ob es Sinnig ist einen Administratoren oder Moderatoren auf die Ignore Liste zu setzen,weil dieses Vor- oder auch Nachteile des Anwenders haben kann.

Diese Anleitung wird für den Firefox sein und explizit für die Aktuelle phpBB 3 Forensoftware .

Ich gehe aber vorab noch auf die Forensoftware phpBB 2 ein und vBulletin für die es schon Add-Ons für den Firefox gibt und wo ich keinen weiteren Anlass sehe näher drauf einzugehen.Das Add-On für vBulletin gibt es hier vBulletin Add-on und für phpBB 2 ist es dieses phpBB 2 Add-on .

Kommen wir jetzt zu dem phpBB 3 ,dass Script welches dazu genutzt wird, wurde von PHerison für phpBB 3 modifiziert und zur Verfügung gestellt (Quellcode), so wie es hier genutzt und beschrieben wird.

Ich werde auch auf die Stellen eingehen,die jeder selber Modifizieren muss,um es in den entsprechenden Forum seiner Wahl nutzen zu können. Die Quelle der Herkunft meiner Information über das Script findet ihr hier .

Kommen wir nun vorab zu dem was wir noch benötigen,um das Script lauffähig zu machen.

Wir benötigen für den Firefox folgendes Add-On Greasemonkey , da es sonst nicht möglich ist das Script zu laden,weil der Firefox dieses Add-On benötigt um überhaupt Scripts Laden zu können,die wir nutzen wollen.

Ein Texteditor der ist bei jedem Windows mit On Bord und somit wird hier keine weitere Software benötigt. Der Texteditor wird dazu benötigt,damit der Quellcode dort in das .txt Dokument eingefügt werden und bearbeitet werden kann.

Und den Firefox selber den wir hier bekommen.

Nachdem wir jetzt den Firefox installiert haben,dass Add-on Greasemonkey in den Firefox hinzugefügt wurde und wir uns ein .txt Dokument geöffnet haben benötigen wir noch den Quellcode.

Das wäre dieser hier

// ==UserScript==
// @name         User Hide for http://www.geoclub.de
// @include      *.geoclub.de/viewtopic.php*
// @include      *.geoclub.de/ftopic*.html
// @description  Hides/unhides a user's posts and quotes
// @exclude
// ==/UserScript==

// original file by Unarmed
// found at: http://s93731204.onlinehome.us/firefox/greasemonkey/phpbb.ignore.user.js
// modified for geoclub.de by London Rain
// modified for phpBB3 by PHerison

(function() {
        // Get stored hidden users from cookie
        var users = ;
        var cookieName = "phpUserHide";
        for (var i = 0; i < document.cookie.split('; ').length; i++) {
                var oneCookie = document.cookie.split('; ')[i].split('=');
                if (oneCookie == cookieName) {
                        users = oneCookie[1].split(', ');
                        break;
                }
        }

        // Cursor functions
        var curPointer = function(event) {
                event.target.style.cursor = 'pointer';
                event.preventDefault();
        };
        var curDefault = function(event) {
                event.target.style.cursor = 'default';
                event.preventDefault();
        };

        // Add or remove a user from the cookie
        var addRemoveUser = function(event) {
                // Parse current cookie
                for(j = 0; j < document.cookie.split('; ').length; j++ ) {
                        var oneCookie = document.cookie.split('; ')[j].split('=');
                        if (oneCookie == cookieName) {
                                users = oneCookie[1].split(', ');
                                break;
                        }
                }
                var user = escape(event.target.nextSibling.innerHTML)
                notFound = true;
                for (var j = 0; j < users.length; j++) {
                        if (users[j] == user) {
                                users.splice(j, 1);
                                notFound = false;
                        }
                }
                if (notFound)
                        users.push(user);
                if (users.length > 0) {
                        var date = new Date();
                        var days = 365;
                        date.setTime(date.getTime() + (days*24*60*60*1000));
                        var expires = '; expires=' + date.toGMTString();
                        var value = users.join(', ');
                        document.cookie = cookieName + '=' + value + expires + '; path=/';
                } else {
                        document.cookie = cookieName + '=;expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/';
                }
                window.alert(unescape(user) + ' has been ' + (notFound ? 'added to' : 'removed from')
                        + ' your hide list\n'
                        + 'You must refresh the page to view the changes.');
                event.preventDefault();
        };
        // Toggle display of user's post
        var togglePost = function(event) {
                var displayState = event.target.getAttribute('displaystate');
                if (displayState == 'none')
                        displayState = '';
                else
                        displayState = 'none';
                event.target.setAttribute('displaystate', displayState);

                containingRow = event.target.parentNode.parentNode.parentNode.parentNode;
                containingRow.firstChild.nextSibling.firstChild.nextSibling.nextSibling.style.display = displayState;
                event.preventDefault();
        };
        // Toggle display of user's quote
        var toggleQuote = function(event) {
                var displayState = event.target.getAttribute('displaystate');
                if (displayState == 'none')
                        displayState = '';
                else
                        displayState = 'none';
                event.target.setAttribute('displaystate', displayState);

                // Jump to quotecontent-<div>
                var containingRow = event.target.parentNode.nextSibling;
                containingRow.style.display = displayState;

                event.preventDefault();
        };

        // Find all the usernames in the page
        var results = document.evaluate("//b[@class='postauthor']", document, null, XPathResult.ANY_TYPE, null);
        var resultNodes = ;
        var aResult;
        while (aResult = results.iterateNext())
                resultNodes.push(aResult);

        // Loop through every user post on the page
        for (var i in resultNodes) {
                // containingRow = <table>
                var containingRow = resultNodes[i].parentNode.parentNode.parentNode.parentNode;
                // the info <tr> in the containing <table>
                var infoRow = resultNodes[i].parentNode.parentNode;
                // the message <tr> in the containing <table>
                var msgRow = resultNodes[i].parentNode.parentNode.nextSibling.nextSibling;
                // the postinfo <tr> in the containing <table>
                var appendixRow = resultNodes[i].parentNode.parentNode.nextSibling.nextSibling.nextSibling.nextSibling;
                // the username <td> in the containing <table>
                var elem = resultNodes[i].parentNode;
                // Format whitespace
                var user = escape(resultNodes[i].innerHTML);

                // Flag whether the user is in our hide list
                var notFound = true;
                for (var j = 0; j < users.length; j++) {
                        if (users[j] == user) {
                                notFound = false;
                        }
                }

                // Add relevant event handlers to user's name and a toggler node
                var toggler = document.createElement('span');
                toggler.setAttribute('title', "click to add or remove this user from your hide list");
                toggler.appendChild(document.createTextNode('[X] '));
                toggler.style.fontSize = "7pt";
                toggler.addEventListener('mouseover', curPointer, true);
                toggler.addEventListener('mouseout', curDefault, true);
                toggler.addEventListener('click', addRemoveUser, true);

                // <td> with Username
                elem.insertBefore(toggler, resultNodes[i]);

                // If this user isn't in our hide list, skip to the next user
                if (notFound)
                        continue;

                // Create a span to control toggling
                var span = document.createElement('span');
                span.appendChild(document.createTextNode('Toggle Display'));
                span.setAttribute('class', 'gensmallbold');
                span.style.textDecoration = 'underline';
                span.setAttribute('displaystate', 'none');
                span.addEventListener('mouseover', curPointer, true);
                span.addEventListener('mouseout', curDefault, true);
                span.addEventListener('click', togglePost, true);

                // Insert a <br> after the username and the span
                elem.appendChild(document.createElement('br'));
                elem.appendChild(span);

                var elemWidth = elem.offsetWidth; // user <td> width to restore later
                msgRow.style.display = 'none'; // hide message <tr>
                elem.style.width = (elemWidth-4) + 'px'; // 4 = padding-right-value: 2px; + padding-left-value: 2px;
                elem.nextSibling.nextSibling.style.width = "0%"; // remove width-information from following <td>
        }

        // Find all the usernames quoted in the page
        var results = document.evaluate("//div[@class='quotetitle']", document, null, XPathResult.ANY_TYPE, null);
        var resultNodes = ;
        var aResult;
        while (aResult = results.iterateNext())
        {
                resultNodes.push(aResult);
        }
        // Loop through every user quote on the page
        for (var i in resultNodes) {
                // Find username
                var usermatch = resultNodes[i].innerHTML.match(/(.*) hat geschrieben:$/);
                if (usermatch)
                        var user = escape(usermatch[1]);
                else
                        continue;

                // Flag whether the user is in our hide list
                var notFound = true;
                for (var j = 0; j < users.length; j++) {
                        if (users[j] == user) {
                                notFound = false;
                        }
                }

                // If this user isn't in our hide list, skip to the next user
                if (notFound)
                        continue;

                // Create a span to control toggling
                var span = document.createElement('span');
                span.appendChild(document.createTextNode('Toggle Display'));
                span.setAttribute('class', 'gensmallbold');
                span.style.textDecoration = 'underline';
                span.setAttribute('displaystate', 'none');
                span.addEventListener('mouseover', curPointer, true);
                span.addEventListener('mouseout', curDefault, true);
                span.addEventListener('click', toggleQuote, true);

                resultNodes[i].appendChild(document.createTextNode(' ')); // space between username and toggler
                resultNodes[i].appendChild(span);

                // Hide the quote
                resultNodes[i].nextSibling.style.display = 'none';







        }

})();

Den Quellcode müssen wir jetzt Kopieren und in das .txt Dokument einfügen.

Diese Zeilen müssen in dem Script an die URL des entsprechende Forum angepasst werden

// ==UserScript==
// @name         User Hide for http://www.geoclub.de
// @include      *.geoclub.de/viewtopic.php*
// @include      *.geoclub.de/ftopic*.html

Dieses sollten dann immer mit der URL des jeweiligen Forums angepasst werden,um dort auch mit dem Script die Ignore Funktion nutzen zu können.

Dieses könnte dann so aussehen,wenn man es für administrator.de anpassen würde

// ==UserScript==
// @name         User Hide for https://administrator.de
// @include      *.administrator.de/viewtopic.php*
// @include      *.administrator.de/ftopic*.html


Jetzt sollte nach der Modifikation bitte noch folgende Zeile hinzugefügt werden,da wir ja für die Modifikation selber gerade stehen wollen und niemand anderen die Verantwortung in die Schuhe schieben wollen für die Modifikation die wir gemacht haben.

Das sieht hier vorher so aus
// original file by Unarmed
// found at: http://s93731204.onlinehome.us/firefox/greasemonkey/phpbb.ignore.user.js
// modified for geoclub.de by London Rain
// modified for phpBB3 by PHerison

und sollte nach unserer Bearbeitung so aussehen

// original file by Unarmed
// found at: http://s93731204.onlinehome.us/firefox/greasemonkey/phpbb.ignore.user.js
// modified for geoclub.de by London Rain
// modified for administrator.de by Hightop One
// modified for phpBB3 by PHerison


Das .txt Dokument können wir jetzt speichern und dann sollten es so umbenennen,dass wir erkennen für welches Forum es gedacht sein soll,dieses könnte dann so aussehen user_hide_for_httpwwwadministrator.user.js. Wichtig hierbei ist es das aus der Dateiendung von dem .txt Dokument aus einen .txt jetzt ein .js wird,weil es sonst nicht funktionieren wird.

Damit hätten wir jetzt das Script fertig und müssen es nur noch in den Firefox einbinden damit wir es nutzen können,dass ist sehr einfach und das Add-On Greasemonkey wird uns dabei helfen.

Wir starten jetzt den Firefox und haben sichergestellt,dass das Add-On Greasemonkey installiert wurde und unser Script fertig ist und die Dateiendung .js aufweist.

Nun klicken wir oben Links im Firefox auf "Datei" suchen uns im Menü die Option "Datei öffnen...." heraus und klicken es an,dann gehen wir in den Verzeichnispfad wo wir unser Script abgelegt haben und öffnen es.

Das Add-on Greasemonkey wird seinen Dienst tun und es geht ein Pop-up Fenster auf indem wir gefragt werden,ob wir das Script installieren möchten,dieses bestätigen wir und können ab sofort unser Script in dem Forum nutzen für welches wir es Modifiziert haben.

Die Funktion innerhalb eines Forums zu nutzen ist recht einfach.Es sind in der User Darstellung von einem Beitrag bei jedem User ein graues X zu sehen,auf welches man nur Klicken muss und der User wird damit auf die Ignore Liste des Scriptes gesetzt und nach einer Aktualisierung werden wir den User nicht mehr lesen müssen.

Falls wir doch mal einen Ignorierten User lesen wollen steht uns nach dem Ignorieren die Option "Toggle Display" zur Verfügung auf welche nur geklickt werden muss um einen Beitrag wieder sichtbar zu machen.

Ich hoffe ich konnte mit dieser Anleitung ein paar Menschen glücklicher machen und verbleibe mit einem

freundlichen Gruß

Hightop One

Content-Key: 106375

Url: https://administrator.de/contentid/106375

Printed on: April 19, 2024 at 22:04 o'clock

Member: Dani
Dani Jan 27, 2009 at 13:06:24 (UTC)
Goto Top
Hi Hightop One,
nette Anleitung... face-wink Aber ob das so gut ist? Kannst du uns ein paar Gründe nennen (positive) warum dies sinnvoll sein kann?


Grüße,
Dani
Member: MonsterX
MonsterX Jan 27, 2009 at 15:33:19 (UTC)
Goto Top
Die Anleitung an für sich finde ich ja auch nicht schlecht, jedoch würde mich der Sinn/Unsinn dahinter mal interessieren, der solch einen Aufwand rechtfertigt...
Member: HightopOne
HightopOne Jan 27, 2009 at 17:34:23 (UTC)
Goto Top
N´abend, face-smile

der sinn ist eigentlich eher eine Verzweiflungstat gewesen.Die ich tun musste um in einem phpBB 3 Forum einen Administratoren zu Ignorieren mit dem ich mich Regelmäßig gekappelt hab.(genauer gesagt mit dem Technischen Admin)

Das ende vom Lied sah so aus,dass er verkündet hat,dass er mich jetzt ignoriert,weil er es kann und die Konfiguration des Forums es hergibt und ich mir sein Geschwätz noch weiter antun muss,weil ich es als User nicht könne.

Da wurde mein Ehrgeiz in mir geweckt und ich hab ihm zwei tage später deutlich gemacht,dass ich es besser könne und sogar seine PN´s und Beiträgen von anderen indem er zitiert wird nun auch nicht mehr lesen müsse,da er auf meiner ganz Privaten Ignore liste gelandet sei und mir seine Konfiguration des Forums in dem Punkt schnurz piep egal ist. face-smile

Naja,ab dann musste meine Frau vermitteln,weil sie selber in dem Forum als Admin unterwegs ist. *fg*

Abgesehen von den Privaten Disput den ich dort mit dem Technischen Admin hab(oder besser gesagt hatte face-smile ),der diese Leistung an den Tag förderte, hat es für den Allgemeinen Gebrauch den Vorteil,dass man User innerhalb eines Forums Ignorieren kann,welches dieses von der Konfiguration nicht zulässt,weil es einfach nicht gewünscht wird von der Administration.

Naja und sein wir doch mal ehrlich..,man muss ja nun nicht wirklich jeden Lesen...,ob es nun ein Admin, Mod oder einfacher User ist und genau deswegen macht es schon sinn so ein Script zu nutzen,wenn man dadurch ein wenig mehr Optionen haben möchte,als wie einem zugestanden wird,um Schwachsinniges anderer zu meiden ;)

Also im großen und ganzen gibt es nur einen Vorteil und der besteht darin,dass man endlich frei und selber bestimmen kann,wen man Lesen möchte und wen nicht. ( Endlich wieder ein wenig mehr Selbstbestimmung und überhaupt Vive la Revolution ! ;) )

gruß

Hightop
Member: Dani
Dani Jan 27, 2009 at 17:46:31 (UTC)
Goto Top
Hi,
schön...aber es hat schon einen Grund warum man den Admin nicht ignorieren kann - Benutzer eben schon. Ich bin mir ehrlichgesagt nicht sicher, ob die Anleitung so sinnvoll ist.


Grüße,
Dani