Gesperrten Benutzer automatisch einen Benutzerrang zuteilen

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Alduin
Mitglied
Beiträge: 44
Registriert: 15.09.2012 13:49
Wohnort: Deutschland
Kontaktdaten:

Gesperrten Benutzer automatisch einen Benutzerrang zuteilen

Beitrag von Alduin »

Grüsst euch!
Ich hoffe das ich hier Hilfe find.

Ich hab mir eine "Gesperrt" Ranggrafik erstellen lassen, weil ich wollte, das wenn ein Benutzer gesperrt wird (unabhängig von der Dauer) automatisch den Benutzerrang "Gesperrt" zugeteilt bekommt, und wenn der User wieder durch mich entsperrt wird oder automatisch nach Ablauf der Zeit wieder seinen ursprünglichen Benutzerrang zurückbekommt.

Ich möchte nur den Benutzerrang geändert haben automatisch, nicht die Benutzerrechte oder die Benutzergruppe.

Vielen dank schonmal für die kommenden Antworten.

Gruss, Alduin

LisaserstesForum
Mitglied
Beiträge: 996
Registriert: 28.08.2008 20:20
Wohnort: Kassel

Re: Gesperrten Benutzer automatisch einen Benutzerrang zutei

Beitrag von LisaserstesForum »

Hey Alduin, dafür gab es mal eine MOD, die wurde aber eingestellt, weil man nach einiger Zeit merkte, dass die MOD den Moderatoren ihren Rang weg nimmt. Deswegen solltest du das lieber per Hand machen.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Gesperrten Benutzer automatisch einen Benutzerrang zutei

Beitrag von Miriam »

Irgendwas war da mal. Was genau weiß ich nicht mehr. Da gab es ungelöste Herausforderungen, soweit ich mich entsinne.
Das mit dem Moderatoren Rang sollte nicht so wild sein: Ein gesperrter Moderator ist kein Moderator mehr.
Zuletzt geändert von Miriam am 16.09.2012 12:08, insgesamt 1-mal geändert.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
LisaserstesForum
Mitglied
Beiträge: 996
Registriert: 28.08.2008 20:20
Wohnort: Kassel

Re: Gesperrten Benutzer automatisch einen Benutzerrang zutei

Beitrag von LisaserstesForum »

Ja, dabei ging es aber um die aktiven (nicht gesperrten) Moderatoren, die ihren Rang immer wieder verloren haben.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Gesperrten Benutzer automatisch einen Benutzerrang zutei

Beitrag von Miriam »

'kay.

Mal sehen... was hältst Du von dieser Idee? -->
  1. Du erstellst einen Spezialrang namens "gesperrt" und stellst dafür ein Bild ein und alles, was Du eben brauchst.
    • Du findest die ID dieses neuen Rangs heraus indem du
      1. in die Tabelle phpbb_ranks schaust oder
      2. im ACP unter Ränge die ID durch "überfahren" des grünen Zahnrades beim Rang aus der angezeigten URL herausliest.
        (Bsp.: /adm/index.php?i=ranks&sid=e9c40ecb6ec7a4ae512d9b813f2fa74b&mode=ranks&action=edit&id=2)
    • Du baust folgenden Code ein:
      Finde in der includes/functions_display.php
      • Code: Alles auswählen

        function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank_img_src)
        {
            global $ranks, $config, $phpbb_root_path;
        
            if (empty($ranks))
            {
                global $cache;
                $ranks = $cache->obtain_ranks();
            } 
      tausche ihn aus gegen:
      • Code: Alles auswählen

        function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank_img_src, $user_id = false)
        {
            global $ranks, $config, $phpbb_root_path, $phpEx, $db;
            
            $banned_rank_id = 2; //set special rank ID here
        
            if (empty($ranks))
            {
                global $cache;
                $ranks = $cache->obtain_ranks();
            }
        
            if (isset($user_id))
            {
                if (!function_exists('phpbb_get_banned_user_ids'))
                {
                    include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
                }
        
                if ( in_array((int)$user_id, phpbb_get_banned_user_ids((int)$user_id)) )
                {
                    $rank_title = (isset($ranks['special'][$banned_rank_id]['rank_title'])) ? $ranks['special'][$banned_rank_id]['rank_title'] : '';
                    $rank_img = (!empty($ranks['special'][$banned_rank_id]['rank_image'])) ? '<img src="' . $phpbb_root_path . $config['ranks_path'] . '/' . $ranks['special'][$banned_rank_id]['rank_image'] . '" alt="' . $ranks['special'][$banned_rank_id]['rank_title'] . '" title="' . $ranks['special'][$banned_rank_id]['rank_title'] . '" />' : '';
                    $rank_img_src = (!empty($ranks['special'][$banned_rank_id]['rank_image'])) ? $phpbb_root_path . $config['ranks_path'] . '/' . $ranks['special'][$banned_rank_id]['rank_image'] : '';
                    return;
                }
            } 
    • Überall, wo Du diese neue angepaßte Anzeige haben möchtest, änderst Du den Aufruf der Funktion get_user_rank() etwas ab, indem Du die ID des zu überprüfenden Users einfügst:
      Bspw.: in der viewtopic.php
      suche
      • Code: Alles auswählen

                    get_user_rank($row['user_rank'], false, $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
         
      tausche aus gegen:
      • Code: Alles auswählen

                    get_user_rank($row['user_rank'], false, $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src'], $poster_id);
         
      suche:
      • Code: Alles auswählen

                    get_user_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']); 
      tausche aus gegen:
      • Code: Alles auswählen

                    get_user_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src'], $poster_id);
         
    Nun wird der jeweilige User automatisch mit einem Spezialrang "gesperrt" gekennzeichnet, falls er gebannt wurde und nach dem Entsperren, ist er wieder mit dem originalen Rang unterwegs.

    Beachte, daß Du folgende Zeile nach den Vorgaben Deines Boards anpassen mußt: $banned_rank_id = 2; //set special rank ID here
    Was genau angepaßt werdeen muß, sollte unerklärt klar sein. :-P
    Gruss, Miriam.
    Ich schmeiß' alles hin und...
    ... lasse es liegen
    Benutzeravatar
    Alduin
    Mitglied
    Beiträge: 44
    Registriert: 15.09.2012 13:49
    Wohnort: Deutschland
    Kontaktdaten:

    Re: Gesperrten Benutzer automatisch einen Benutzerrang zutei

    Beitrag von Alduin »

    Puh, da muss ich aber ne Menge ändern. Den Rang "Gesperrt" hab ich schon :P
    Aber danke, dass du mir den Code vorgibst, ich werd mich wohl bald daran setzen.

    #Edit: Ich hab das mit dem banned_ID rank gemacht aber es passiert nichts.
    Und "überall wo ich das angezeigt haben will" versteh ich auch nicht so recht ^^
    Benutzeravatar
    Miriam
    Mitglied
    Beiträge: 12310
    Registriert: 13.10.2004 07:18
    Kontaktdaten:

    Re: Gesperrten Benutzer automatisch einen Benutzerrang zutei

    Beitrag von Miriam »

    Wenn Du die Codes so eingebaut und auch die Spezialrang ID eingepflegt hast, wird bei den gesperrten Benutzern dieser Rang in der Profilansicht der Themenansicht gezeigt.

    Falls Du das auch noch woanders angepaßt haben möchtest, z.B. in der Profilansicht oder wo sonst noch Ränge angezeigt werden, dann mußt Du in den entsprechenden PHP Dateien den besagten Funktionsaufruf um den Paramater der User ID erweitern. Das ändert sich natürlich von Datei zu Datei; ist also nicht immer gleich. Mal heißt der Parameter $user_id mal $poster_id etc. pp.

    Im Zweifel kannst Du gern dem Link in meiner Signatur folgen. :roll:
    Gruss, Miriam.
    Ich schmeiß' alles hin und...
    ... lasse es liegen
    Benutzeravatar
    Alduin
    Mitglied
    Beiträge: 44
    Registriert: 15.09.2012 13:49
    Wohnort: Deutschland
    Kontaktdaten:

    Re: Gesperrten Benutzer automatisch einen Benutzerrang zutei

    Beitrag von Alduin »

    Hab ich ja alles gemacht, bei der functions_display.php und bei der viewtopic.php.
    Und entsprechend auch die RangID ersetzt bei der functions_display.php bei diesem banned-rankID. (bei mir ist das die 10).
    Trotzdem passiert nichts.

    Und in der unteren Hälfte deines Beitrags sind irgendwie alle Codes gleich...
    Und ich weiss garnicht wohin mit denen.
    Benutzeravatar
    Miriam
    Mitglied
    Beiträge: 12310
    Registriert: 13.10.2004 07:18
    Kontaktdaten:

    Re: Gesperrten Benutzer automatisch einen Benutzerrang zutei

    Beitrag von Miriam »

    Meinst Du die unter 4.?

    Na dann suche mal nach get_user_rank. Ich habe 2 Ergebnisse. Wieviele hast Du in der viewtopic.php?
    \viewtopic.php (2 hits) hat geschrieben: Line 1129: get_user_rank($row['user_rank'], false, $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
    Line 1182: get_user_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
    Die Codes sind mitnichten identisch. Schreibe dort jeweils VOR ); diesen Code: , $poster_id
    Gruss, Miriam.
    Ich schmeiß' alles hin und...
    ... lasse es liegen
    Benutzeravatar
    Alduin
    Mitglied
    Beiträge: 44
    Registriert: 15.09.2012 13:49
    Wohnort: Deutschland
    Kontaktdaten:

    Re: Gesperrten Benutzer automatisch einen Benutzerrang zutei

    Beitrag von Alduin »

    Also in jedem Codeabsatz wo dieses user_rank drinne ist soll ich vor jedem ); dieses poster_id Zeug schreiben? direkt davor oder mit Leerzeichen?
    (Jetzt hast du es weginstens vereinfacht, das da oben ist nämlich ab der zweiten Hälfte des Beitrages irgendwie verwirrend)
    Antworten

    Zurück zu „[3.0.x] Mod Suche/Anfragen“