Datum Zeit
Shoutbox
Gästen ist das Schreiben von Mitteilungen nicht erlaubt.


tele955848  Offline
Verwarnstatus: warningwarningwarningwarning
06.02.2012 09:49
moin

Jackpot  Offline
06.02.2012 00:01
Sehr geehrte Mitglieder, absofort gibt es wieder Lose in unseren Lottosystem! Der neue Jackpot liegt bei 500 Score. Alle Angaben ohne Gewähr. Wink

Datalus  Offline
04.02.2012 01:57
@ fehlerlos noch einen versuch und ich sperre beide Accounts !

Datalus  Offline
04.02.2012 01:56
@ fehlerlos , keine freischaltung da du bereits einen Account hier hast ! ( Monk )

DjMicha1985  Offline
04.02.2012 01:09
@fehlerlos keine Freischaltung, da Account bereits vorhanden (Monk)

Ähnliche Themen
Thema Forum Antworten Letzter Beitrag
Woher User Gold 3? Infusionen 7 17. Januar 2012 07:43:31
bestimmte Gruppe Rate Infusionen 5 17. Dezember 2011 13:48:54
online-user-panel Infusionen 20 14. Dezember 2011 08:57:03
User Info Panel von Marcus Infusionen 2 28. November 2011 08:49:28
User Profil Block Infusionen 7 09. November 2011 10:41:35
Thread ansehen
Wer ist hier? 1 Gäste
 Drucke Thread
User aus Gruppe entfernen - Schnellzugriff
emblinux
#1 Drucke Post
Geschrieben am 15. Januar 2010 12:08:01
User Avatar




Posts: 3662
Registriert seit: 04.10.08

Meister
Nächstes Level: 3684/5000

Scores: gesperrt
In PHP-Fusion ist es als Administrator möglich, User per Schnellzugriff in eine Gruppe zu packen. Dazu braucht man lediglich auf das entsprechende Profil des Users gehen und unten erscheinen die Möglichkeiten diesen User zu bearbeiten, bannen, löschen oder einer Gruppe hinzuzufügen. Wie gesagt nur als Administrator mit dem entsprechendem Recht.

Aber wie entferne ich diesen User mal schnell wieder. Dazu muss man in den Adminbereich zu der Gruppenverwaltung, die Gruppe auswählen und dann auf löschen klicken. Nun habe ich mir gedacht, das geht doch auch schneller, so wie es ja auch mit dem hinzufügen geht, kann man das doch auch mit dem entfernen machen. Deshalb habe ich dazu einen Mod geschrieben, den ich euch hier auch nicht vorenthalten und vorstellen möchte.

Dazu sind nur geringfügige Änderungen notwendig.
* anzupassende Dateien:
- profile.php
- view_profile.php aus dem entsprechenden Sprach-Ordner ( z.B. locale/German)

Als 1. öffnet man die Datei profile.php und sucht dort folgenden Code:
Code

    if (iADMIN && checkrights("UG") && $user_data['user_id'] != $userdata['user_id'])
      {
        if ((isset($_POST['add_to_group'])) && (isset($_POST['user_group']) && isnum($_POST['user_group'])))
          {
            if (!preg_match("(^\.{$_POST['group_id']}$|\.{$_POST['group_id']}\.|\.{$_POST['group_id']}$)", $user_data['user_groups']))
              {
                $result = dbquery("UPDATE ".DB_USERS." SET user_groups='".$user_data['user_groups'].".".$_POST['user_group']."' WHERE user_id='".$user_data['user_id']."'");
              }
            redirect(FUSION_SELF."?lookup=".$user_data['user_id']);
          }
      }





und ersetze diesen durch den nun folgenden Code:

Code

    if (iADMIN && checkrights("UG") && $user_data['user_id'] != $userdata['user_id'])
      {
        if ((isset($_POST['add_to_group'])) && (isset($_POST['user_group']) && isnum($_POST['user_group'])))
          {
            if (!preg_match("(^\.{$_POST['group_id']}$|\.{$_POST['group_id']}\.|\.{$_POST['group_id']}$)", $user_data['user_groups']))
              {
                $result = dbquery("UPDATE ".DB_USERS." SET user_groups='".$user_data['user_groups'].".".$_POST['user_group']."' WHERE user_id='".$user_data['user_id']."'");
              }
            redirect(FUSION_SELF."?lookup=".$user_data['user_id']);
          }

        if ( ( isset($_GET['remove_group']) && isNum($_GET['remove_group']) && $_GET['remove_group'] == 1 )
          && ( isset($_GET['user_group']) && isnum($_GET['user_group']) ) && $user_data['user_level'] < $userdata['user_level'] )
          {
            if ( preg_match("(^\.{$_GET['user_group']}$|\.{$_GET['user_group']}\.|\.{$_GET['user_group']}$)", $user_data['user_groups']) )
              {
                $user_groups = preg_replace(array("(^\.{$_GET['user_group']}$)","(\.{$_GET['user_group']}\.)","(\.{$_GET['user_group']}$)"), array("",".",""), $user_data['user_groups']);
                $result = dbquery("UPDATE ".DB_USERS." SET user_groups='".$user_groups."' WHERE user_id='".$user_data['user_id']."'");
              }
            redirect(FUSION_SELF."?lookup=".$user_data['user_id']);
          }
      }





Es wurde die Verarbeitung zum entfernen der Gruppe hinzugefügt. Nun fehlt uns noch der Link, der uns dahinleitet. Dazu sucht man in der profile.php weiter nach folgendem Code:

Code
for ($i = 0; $i < count($user_groups); $i++) {
echo "<div style='float:left'><a href='".FUSION_SELF."?group_id=".$user_groups[$i]."'>".getgroupname($user_groups[$i])."</a></div><div style='float:right'>".getgroupname($user_groups[$i], true)."</div><div style='float:none;clear:both'></div>\n";
}




und ersetzt diesen durch folgenden:

Code

            for ($i = 0; $i < count($user_groups); $i++)
               {
                 echo "<div style='float:left'><a href='".FUSION_SELF."?group_id=".$user_groups[$i]."'>".getgroupname($user_groups[$i])."</a></div>";
                 echo "<div style='float:right'>".getgroupname($user_groups[$i], true)."</div>";
                 if (iADMIN && checkrights("M") && $user_data['user_id'] != $userdata['user_id'] && $user_data['user_level'] < $userdata['user_level'] )
                   {
                     echo "<br /><div style='float:right'><a href='".FUSION_SELF."?lookup=".$user_data['user_id']."&amp;user_group=".$user_groups[$i]."&amp;remove_group=1'>".$locale['418']."</a></div>";
                   }
                 echo "<div style='float:none;clear:both'></div>\n";
               }





Hier wurde nun der Link hinzugefügt, der uns dann zur Verarbeitung der Gruppenentfernung leitet. Damit der Link auch richtig angezeigt wird, fehlt uns lediglich noch der entsprechnde Text in der view_profile.php. Dazu öffnet man die Datei locale/German/view_profile.php und sucht nach:

Code
// View User Groups




und fügt davor folgende Zeile ein:

Code
$locale['418'] = "Aus Gruppe entfernen";




Den Text kann man natürlich auch noch ändern, so wie es jeder möchte.

Bitte macht von beiden Dateien ein Backup, damit man diese bei Problemen einfach wieder aufspielen kann. Das sollte es dann auch schon gewesen sein. Ich hoffe ihr könnt diesen Mod gebrauchen. Auf meiner Seite habe ich es im Einsatz, das es mir ein schnelleres Arbeiten ermöglicht. Für Feedback und konstruktive Kritik bin ich natürlich offen.


EDIT: Bugfix.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
MarcusG
#2 Drucke Post
Geschrieben am 15. Januar 2010 12:18:17
User Avatar




Posts: 2936
Registriert seit: 21.01.09

Meister
Nächstes Level: 2942/5000

Scores: gesperrt
Sehr gute Idee, funktioniert prima.
Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
emblinux
#3 Drucke Post
Geschrieben am 15. Januar 2010 14:52:31
User Avatar




Posts: 3662
Registriert seit: 04.10.08

Meister
Nächstes Level: 3684/5000

Scores: gesperrt
Danke. Leider musste ich gerade noch einen Bugfix vornehmen. Mit der nun oben aktualisierten Version ist es normalen Admins nicht mehr möglich andere Admins bzw. Superadmins aus diversen Gruppen zu entfernen. Soll also heißen, dass ein Admin oder SuperAdmin nur User/Admins mit kleinerem User-Level aus einer Gruppe entfernen darf.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
DJ-Papst
#4 Drucke Post
Geschrieben am 15. Januar 2010 21:55:07
User Avatar

Anfänger


Posts: 38
Registriert seit: 04.11.08

Lehrling
Nächstes Level: 38/50

Scores: gesperrt

Verwarnstatus: warningwarningwarningwarning
HIHI

Genau die Idee hat ich vor ein paar Tagen auch, weil´s die Arbeit erleichert und es schneller geht.

http://www.phpfus...d_id=24144

Erspart mir jetzt die Arbeit.

Aber geile sache emblinux. Dankeeeeeeeeeeeeee
 top
http://www.md-papst.eu
Bull Fullbright
#5 Drucke Post
Geschrieben am 21. Januar 2010 23:27:32
User Avatar

Anwender


Posts: 232
Registriert seit: 20.05.09

Erfahrener Benutzer
Nächstes Level: 234/250

Scores: gesperrt

Verwarnstatus: warningwarningwarningwarning
Hi, emblinux

Eine sehr gute idee die modifikation. Danke funktioniert auch prima.

klatsch
Gruß MyFusion
 top
http://mybosna.my.funpic.de/
DJ-Papst
#6 Drucke Post
Geschrieben am 06. Mai 2011 12:31:07
User Avatar

Anfänger


Posts: 38
Registriert seit: 04.11.08

Lehrling
Nächstes Level: 38/50

Scores: gesperrt

Verwarnstatus: warningwarningwarningwarning
emblinux schrieb:
Danke. Leider musste ich gerade noch einen Bugfix vornehmen. Mit der nun oben aktualisierten Version ist es normalen Admins nicht mehr möglich andere Admins bzw. Superadmins aus diversen Gruppen zu entfernen. Soll also heißen, dass ein Admin oder SuperAdmin nur User/Admins mit kleinerem User-Level aus einer Gruppe entfernen darf.


Sorry das ich diesen mehr als 1 Jahr alten beitrag hochhole. schweige

Aber mal anmerken muss das der Mod auch einwandfrei mit der 7.02.01 funzt.

Jetzt zum eigentlichen Problem. Ich hab mich dumm und dämlich Probiert mal mit den fehlern mal Funtioniert es aber dann nur einseitig.

emblinux könntest du mir den Fix wieder Rückgängig machen so das auch Super Admins andere Admin´s aus Gruppen entfernen können bzw Hinzufügen weil über die Benutzer Gruppen Option ist das immer sehr umständlich.

Danke Gruß

Papst
 top
http://www.md-papst.eu
emblinux
#7 Drucke Post
Geschrieben am 06. Mai 2011 13:05:59
User Avatar




Posts: 3662
Registriert seit: 04.10.08

Meister
Nächstes Level: 3684/5000

Scores: gesperrt
Das könnt ihr doch auch alleine oder...?

es geht letztendlich nur um folgende Stellen:

Code
$user_data['user_level'] < $userdata['user_level']




Diese muss man anpassen.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
DJ-Papst
#8 Drucke Post
Geschrieben am 06. Mai 2011 14:52:22
User Avatar

Anfänger


Posts: 38
Registriert seit: 04.11.08

Lehrling
Nächstes Level: 38/50

Scores: gesperrt

Verwarnstatus: warningwarningwarningwarning
Danke für den Denkanstoss

Ich hab zwar schon richtig gedacht mit Größer & Kleiner nur an der Falschen stelle geändert da war nen Denkfehler in meinem Kopf. schweigeDAU
 top
http://www.md-papst.eu
MarcusG
#9 Drucke Post
Geschrieben am 30. November 2011 13:05:05
User Avatar




Posts: 2936
Registriert seit: 21.01.09

Meister
Nächstes Level: 2942/5000

Scores: gesperrt
Ich weiss nicht genau seit welcher Version (muss 7.01.06 oder früher sein), aber die $locale['418'] in der view_profile.php ist belegt.
Code
<?php
// Member Profile
$locale['400'] = "Profil des Mitglieds";
$locale['401'] = "User Gruppe";
$locale['402'] = "Administrator Optionen";
// Administrator Options
$locale['410'] = "Bearbeiten";
$locale['411'] = "Sperren";
$locale['412'] = "L&ouml;schen";
$locale['413'] = "Dieses Mitglied sperren?";
$locale['414'] = "Dieses Mitglied l&ouml;schen?";
$locale['415'] = "Zu Gruppe hinzuf&uuml;gen:";
$locale['416'] = "Hinzuf&uuml;gen";
$locale['417'] = "Dieses Mitglied zur gew&auml;hlten Gruppe hinzuf&uuml;gen?";
$locale['418'] = "Aktivieren";
$locale['419'] = "Sperr-Protokoll ansehen";
// View User Groups
$locale['420'] = "User Gruppe ansehen";
$locale['421'] = "%u Mitglied";
$locale['422'] = "%u Mitglieder";
$locale['423'] = "Name des Mitglieds";
$locale['424'] = "Typ des Mitglieds";
// Member status
$locale['440'] = "Aktiv";
$locale['441'] = "Gesperrt";
$locale['442'] = "Deaktiviert wegen Inaktivit&auml;t";
$locale['443'] = "Tempor&auml;r gesperrt";
$locale['444'] = "Aus Sicherheitsgr&uuml;nden gesperrt";
$locale['445'] = "Abgebrochen";
$locale['446'] = "Anonymisiert";
$locale['447'] = "Deaktiviert";
$locale['448'] = "Grund:";
?>



Gruß Marcus

Support per Mail, PN, ICQ oder MSN ist kostenpflichtig!
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }
 top
http://phpfusion.marcusg.de
emblinux
#10 Drucke Post
Geschrieben am 30. November 2011 13:12:26
User Avatar




Posts: 3662
Registriert seit: 04.10.08

Meister
Nächstes Level: 3684/5000

Scores: gesperrt
Das kann dann ja jeder selbst anpassen. Ist ja nicht weiter schwer. Wink
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif
 top
http://www.fusion-ng.de
Springe ins Forum: