inaktiver Benutzer einer Gruppe deaktivieren

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
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.
Antworten
guellepumper
Mitglied
Beiträge: 34
Registriert: 21.08.2010 15:33

inaktiver Benutzer einer Gruppe deaktivieren

Beitrag von guellepumper »

Hallo

unter "Benutzer und Gruppen" gibt es "Automatisches löschen inaktiver Benutzer".

Die Funktion würde so weit ganz gut passen und funktionieren, aber ich möchte dies gerne auf eine Gruppe beschränken.
Gäste und Freunde z.B. sollten davon unbehelligt bleiben, nur in der Gruppe der Mitglieder sollte die Funktion nach inaktiven suchen.
jemand ne Idee wie ich das umsetzen kann?


phpbb 3.0.10
Rainbow Pearl Style http://www.phpbb.com/customise/db/style/rainbow_pearl/

Gruß Matze
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: inaktiver Benutzer einer Gruppe deaktivieren

Beitrag von Miriam »

Idee:
  • Du erstellst ein Gruppe namens Freunde.
  • Du packst alle Deine nichtzulöschenden Mitglieder in diese Gruppe (die Du evtl. als versteckte Gruppe erstellen solltest).
  • Du machst diese Codeänderungen und testest alles. Die zu Löschenden werden VORHER angezeigt und Du mußt dann nur abbrechen. Deine (nunmehr) Freunde sollten nicht angezeigt werden.
  • Codeänderungen:
    finde in der includes/acp/acp_prune.php
    • Code: Alles auswählen

              $bot_ids = array();
              while ($row = $db->sql_fetchrow($result))
              {
                  $bot_ids[] = $row['user_id'];
              }
              $db->sql_freeresult($result); 
    danach füge ein:
    • Code: Alles auswählen

              // Find friends using friends' group_id 
              $sql = 'SELECT user_id
                  FROM ' . USER_GROUP_TABLE  . ' 
                  WHERE group_id = (SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name = 'Freunde')";
              $result = $db->sql_query($sql);
      
              $friend_ids = array();
              while ($row = $db->sql_fetchrow($result))
              {
                  $friend_ids[] = $row['user_id'];
              }
              $db->sql_freeresult($result); 
    finde
    • Code: Alles auswählen

                  // Do not prune bots and the user currently pruning.
                  if ($row['user_id'] != $user->data['user_id'] && !in_array($row['user_id'], $bot_ids)) 
    tausche aus gegen:
    • Code: Alles auswählen

                  // Do not prune bots and the user currently pruning and no friends as well.
                  if ($row['user_id'] != $user->data['user_id'] && !in_array($row['user_id'], $bot_ids) && !in_array($row['user_id'], $friend_ids)) 
Abspeichern, testen, fertig.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
guellepumper
Mitglied
Beiträge: 34
Registriert: 21.08.2010 15:33

Re: inaktiver Benutzer einer Gruppe deaktivieren

Beitrag von guellepumper »

super vielen dank für die schnelle Antwort ... zum testen komme ich erst morgen ....

aber gleich noch ne Frage dazu .... ich soll ja die Gruppen quasi vom Suchen ausschließen ..... wie schaut der Code aus, wenn ich 5 verschieden Gruppen von der Suche ausschließen möchte ? (habe 6 Gruppen möchte aber nur in einer suchen.)

Die Gruppen die ich vom suchen ausschließen möchte heißen: mit der Zahl und der Klammer ;-)

1)Leader
2)Offiziere
4)Clan Friends
Gäste mit CF Status
ingo


geht es dann trotzdem? und kannst du mir das in den Code gleich einbauen? ..... ich selber kann das glaube nicht ....
oder müsste ich den ganze Code für jede Gruppe komplett erstellen?

danke schon mal fürs helfen
Gruß Matze
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: inaktiver Benutzer einer Gruppe deaktivieren

Beitrag von Miriam »

Find in den vorgeschlagenen Codeänderungen:
  • Code: Alles auswählen

            // Find friends using friends' group_id 
            $sql = 'SELECT user_id
                FROM ' . USER_GROUP_TABLE  . ' 
                WHERE group_id = (SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name = 'Freunde')";
            $result = $db->sql_query($sql);
    
            $friend_ids = array();
            while ($row = $db->sql_fetchrow($result))
            {
                $friend_ids[] = $row['user_id'];
            }
            $db->sql_freeresult($result);  
tausche aus gegen:
  • Code: Alles auswählen

            // Find friends using friends' group_id 
            $sql = 'SELECT user_id
                FROM ' . USER_GROUP_TABLE  . ' 
                WHERE group_id IN (SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name IN ('Leader', 'Offiziere', 'Clan Friends'))";
            $result = $db->sql_query($sql);
    
            $friend_ids = array();
            while ($row = $db->sql_fetchrow($result))
            {
                $friend_ids[] = $row['user_id'];
            }
            $db->sql_freeresult($result);  
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Malte

Re: inaktiver Benutzer einer Gruppe deaktivieren

Beitrag von Malte »

Hallo,

ich werde mich auch mal zu Wort melden:
In der MOD-Datenbank von phpBB.com gibt es diesen MOD:
http://www.phpbb.com/customise/db/mod/a ... _block_mod

Selbiger hat so viele verschiedene Funktionen, aber eine kann entscheidend sein:
Und zwar kann man mit selbiger Funktion im ACP im Benutzermenü ein Häkchen setzen bei "Benutzer von der automatischen Benutzerbereinigung ausschließen". Wenn man das macht, wird der Nutzer, wie man sich dann sicherlich denken kann, bei der automatischen Bereinigung nicht gelöscht. Dann macht man dad ganze eben nicht bei einer Gruppe, sondern markiert die Nutzer einzeln. Je nachdem, ob es wenige oder viele Nutzer sind, würde ich eben das eine oder andere empfehlen. Bei ganz vielen Nutzern, wäre das Benutzer ausschließen im ACP mühselig und falls es nur eine Hand voll ist, würde ich eine extra Gruppe dafür, für unsinnig halten.

Du kannst ja mal sehen, was du machen kann, ich persönlich warne dich jedoch auch davor, dass dieser Mod sehr umfangreich, sowohl an Funktionen, als auch an Installationsschritten ist, also würde ich dir, wenn du dein Board nicht all zu sehr verändern möchtest oder mit der Materie Modeinbau noch nicht ganz so vertraut, eher von dem MOD anraten und Mariams Variante ans Herz legen.

Viel Glück

Gruß
Malte :D
guellepumper
Mitglied
Beiträge: 34
Registriert: 21.08.2010 15:33

Re: inaktiver Benutzer einer Gruppe deaktivieren

Beitrag von guellepumper »

vielen danke euch beiden ... :-)

werde das von Miriam heute abend mal versuchen .....

Gruß Matze
guellepumper
Mitglied
Beiträge: 34
Registriert: 21.08.2010 15:33

Re: inaktiver Benutzer einer Gruppe deaktivieren

Beitrag von guellepumper »

habe es noch ein klein wenig den Namen anpassen müssen .... z.B. noch die 1) vor die Gruppen .....
habe auch noch Gäste Gruppe hinzugefügt ... funktionierte allerdings nur mit Gaeste.

Aber sonst funktioniert alles so weit und ist eine große Hilfe

Danke nochmal

Gruß Matze
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: inaktiver Benutzer einer Gruppe deaktivieren

Beitrag von Miriam »

Gern.

Der Gast als solches wird nicht gelöscht. Komme was wolle.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“