Temporary Membership on usergroups

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Temporary Membership on usergroups

Beitrag von Kiss News »

Hallo!
Hätte da eine Frage zu Deinem Mod:
#
#-----[ OPEN ]------------------------------------------
#
groupcp.php

#-----[ FIND ]------------------------------------------
#
for ( $i=0; $i < count($keywords); $i++ )
{

Dieses Code, auch nur irgendwelche Teile davon habe ich weder in meiner groupcp.php noch in einer originalen groupcp.php gefznden :rolleyes:

und da fehlt glaube ich ein Beistrich:

#-----[ IN-LINE FIND ]------------------------------------------
#
g.group_type

#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, ug.user_join_time, ug.user_remaining_time, g.group_remaining, g.group_remaining_time

oder irre ich mich da?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Mod ist aktualisiert.
Danke für die Hinweise.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

Danke!

included files: sollte 1 sein :rolleyes:
Zuletzt geändert von Kiss News am Di 16.Nov, 2004 18:23, insgesamt 1-mal geändert.
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

bekomme jetzt im ACP links diesen Error:

Parse error: parse error, unexpected '{' in /usr/export/www/vhosts/funnetwork/hosting/kissfanshop/phpbb2/admin/admin_groups.php on line 377

das is hier:

#-----[ FIND ]------------------------------------------
#
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql);
}

#
#-----[ AFTER, ADD ]------------------------------------------
#
$sql_update = '';
$group_moderator = $group_info['group_moderator'];
if ($group_info['group_remaining'] == 0 && $group_remaining == 1)
{
$user_join_time = ($group_remaining_time != 0) ? time() : 0;
$sql_update = "UPDATE " . USER_GROUP_TABLE . "
SET user_join_time = $user_join_time, user_remaining_time = " . $group_info['group_remaining_time'] . "
WHERE group_id = " . $group_info['group_id'] . "
AND user_id <> $group_moderator";
}
else ($group_info['group_remaining'] == 1 && $group_remaining == 0 || $group_remaining_time != 0)
{ $sql_update = "UPDATE " . USER_GROUP_TABLE . "
SET user_join_time = 0, user_remaining_time = 0
WHERE user_remaining_time <> 0
AND user_id <> $group_moderator";
}

if ($sql_update != '' && !$db->sql_query($sql_update))
{
message_die(GENERAL_ERROR, 'Could not update user remaining time', '', __LINE__, __FILE__, $sql_update);
}

ausserdem gibt es diesen Error:
Allgemeiner Fehler

Could not remove temporary user from group

DEBUG MODE

SQL Error : 1054 Unknown column 'user_remaining_time' in 'where clause'

DELETE FROM phpbb_user_group WHERE user_pending <> 1 AND user_remaining_time <> 0 AND user_join_time <> 0 AND (1100626870 - user_join_time) > (user_remaining_time * 86400)

Line : 374
File : /usr/export/www/vhosts/funnetwork/hosting/kissfanshop/phpbb2/includes/page_header.php
Zuletzt geändert von Kiss News am Di 16.Nov, 2004 18:42, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du musst vor Benutzung des Mods auch die Datenbank aktualisieren. Im Paket ist eine db_update.php dabei, die Du ausführen musst.
Und die vermeindlich falsche Klammer ist schon korrekt. Setze den SQL-Befehl in die nächste Zeile und prüfe, ob vorher/nachher nicht eine Klammer fehlt oder zuviel ist.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

Der Error kam ja, als ich das Datenbank update machen wollte :rolleyes:
der SQL Befehl IST in meiner Datei in der nächsten Zeile, die Klammer steht alleine in der Zeile, warum das hier so dargestellt wird, weiss ich nicht...
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn Du die Dateien änderst, bevor Du die db_update.php ausführst, erhälst Du diesen Fehler ;)
Führe folgende Zeilen jetzt am besten mit phpmyadmin (oder einem anderen DB-Tool) aus:

Code: Alles auswählen

ALTER TABLE phpbb_groups ADD COLUMN group_remaining TINYINT(11) DEFAULT '0' NOT NULL;
ALTER TABLE phpbb_groups ADD COLUMN group_remaining_time MEDIUMINT(11) DEFAULT '0' NOT NULL;
ALTER TABLE phpbb_user_group ADD COLUMN user_join_time INT(11) DEFAULT '0' NOT NULL;
ALTER TABLE phpbb_user_group ADD COLUMN user_remaining_time MEDIUMINT(5) unsigned DEFAULT '0' NOT NULL;
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

habe ich gemacht, jetzt kommt im ACP links diese Error-Meldung:

Parse error: parse error, unexpected T_VARIABLE in /usr/export/www/vhosts/funnetwork/hosting/kissfanshop/phpbb2/admin/admin_groups.php on line 378

das ist diese Zeile:

$sql_update = "UPDATE " . USER_GROUP_TABLE . "

und zwar in diesem Block:

else ($group_info['group_remaining'] == 1 && $group_remaining == 0 || $group_remaining_time != 0)

$sql_update = "UPDATE " . USER_GROUP_TABLE . "
SET user_join_time = 0, user_remaining_time = 0
WHERE user_remaining_time <> 0
AND user_id <> $group_moderator";
}

P.S.: UPDATE: alle meine User kommen automatisch in benutzergruppe 600, und nicht in 1, das habe ich mal geändert, hat ads was damit zu tun?
Zuletzt geändert von Kiss News am Mi 17.Nov, 2004 01:34, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du musst nach der Zeile else... die Klammer "{" lassen ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

aber dann kommt dieser Error links im ACP:

Parse error: parse error, unexpected '{' in /usr/export/www/vhosts/funnetwork/hosting/kissfanshop/phpbb2/admin/admin_groups.php on line 377

habe nochmal nachgesehen, ich habe diesen Block aber richtig eingefügt... :rolleyes:
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann ist davor irgendwo eine Klammer falsch. Ein else-Block muss schliesslich immer mit "{" beginnen und endet auf "}".
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

ich habe nun die Datei komplett neu gemacht, und es gibt wieder einen Error im ACP links:

Parse error: parse error, unexpected '{' in /usr/export/www/vhosts/funnetwork/hosting/kissfanshop/phpbb2/admin/admin_groups.php on line 254

also mit den Klammern habe ich mich nicht vertan, das war an dieser Stelle der erste Einbau, wo eine Klammer vorkam, und der ist richtig eingebaut.

#-----[ FIND ]------------------------------------------
#
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql);
}

#
#-----[ AFTER, ADD ]------------------------------------------
#
$sql_update = '';
$group_moderator = $group_info['group_moderator'];


und so sieht es bei mir auch aus...


message_die(GENERAL_ERROR, 'Could not update moderator permissions', '', __LINE__, __FILE__, $sql);
}
$sql_update = '';
$group_moderator = $group_info['group_moderator'];

mir ist auch aufgefallen, dass öfters mal ein IN-LINE FIND ist, obwohl der gesuchte Begriff erst in der nächsten Zeile ist... wie beispielsweise hier:

#-----[ IN_LINE AFTER, ADD ]------------------------------------------
#
, user_join_time, user_remaining_time

#
#-----[ IN_LINE FIND ]------------------------------------------
#
)";

#
#-----[ IN_LINE BEFORE, ADD ]------------------------------------------
#
, 0, 0

im "IN-LINE" gibt es zwar eine Klammer, aber ohne Anführungszeichen und Strichpunkt. Erst in der nöächsten zeile kommt der gesuchte Begriff, den Du meinst, wie ich annehme :rolleyes:

also ich finde der Einbau war nach der Anleitung richtig gemacht :rolleyes:

-- Code entfernt - Bitte sowas als Datei anhängen - OXPUS --
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

IN-LINE bezieht sich immer auf den zu suchenden Code(-Block), kann also dann auch über mehrere Zeilen gehen ;)
Und die Datei bitte anhängen. Sowas kann man hier als Quote-Text nicht mehr vernünftig und fehlerfrei bearbeiten, da einige Ersetzungen automatisch durchgeführt werden, was den Code zwangsweise zerstört.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

sorry, habe es mal online gestellt:
http://kissnews.de/admin_groupsUSERGROUP.txt
Zuletzt geändert von Kiss News am Mi 17.Nov, 2004 18:29, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Hier die Korrektur.

Was war falsch...
Die Klammern um das else in der Zeile 253 waren genau falsch herum ;)
Jeder Block beginnt mit einer offenen Klammer "{" und endet mit einer geschlossenen Klammer "}".
Also muss vor dem else eine "}" stehen, da die If-Bedingung geschlossen wird und nach dem else eine "{" kommen, da der Else-Teil beginnt.

Jetzt klarer?

-- File veraltet, daher gelöscht - OXPUS --
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

also ich hatte auch mehrere Varianten mit der Klammer ausprobiert...

mit Deiner Datei bekomme ich wieder diesen Error :rolleyes:

Parse error: parse error, unexpected '{' in /usr/export/www/vhosts/funnetwork/hosting/kissfanshop/phpbb2/admin/admin_groups.php on line 254
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Och, da hatte ich wohl ein if vergessen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

ja wenn das kleine Wörtchen wenn nicht wär' :)
sind also alle bugs gekillt und der Mod nun einsatzbereit :D
sehr schön :D :D danke!
sieht gut aus. man kann also eine zeitliche Begrenzung von Usergruppen machen. was passiert danach? Die Usergruppe existiert dann zwar noch, allerdings ohne Mitglieder nehme ich an...
Kann man auch User für eine bestimmte Zeit einer Usergruppe zuordnen? Das würde mich noch mehr interessieren :)
Also sprich: es gibt eine Usergruppe, beispielsweise die alle Rechte hat. Jetzt möchte ich einen User für 365 Tage diese Rechte geben, also in diese Usergruppe stecken. 5 Tage später soll ein anderer User für 182 Tage dieser Usergruppe beitreten. Das wäre toll, das wäre genau das, was ich suche...
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die Gruppe existiert ja notfalls auch ohne Mitglieder, der Moderator ist dann einzigstes Mitglied.
Und die User werden ja nicht alle auf einmal, sondern X-Tage nach Aktivierung aus der Gruppe entfernt.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

da steht:
Zeitlich begrenzte Mitgliedschaft für jeden User einzeln steuern:
aber wie geht denn das? nehmen wir an in Benutzergruppe X gibt es User Y und Z
User Y soll 5 Tage, User Z 10 Tage ab sofort Mitglied der Gruppe bleiben.
Wie stelle ich denn das ein? Ich habe nirgendwo gefunden, wie man das einzeln für die User einstellen kann...
hast Du vielleicht eine Liste von den Mods, die Du vorhast zu machen?
vielleicht würden mich da ja einige interessieren, da würde ich gleich testen :D
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Im ACP musst Du das für die betreffende Gruppe einschalten, dann wird jeder User, der in einer Gruppe aufgenommen werden soll, zunächst auf Pending gesetzt, als ob sich der User selber zur Gruppe hinzufügen möchte.
Der Gruppen-Moderator oder ein Admin gibt dann diese User frei und dabei kann eine Zeit in Tagen angegeben werden, wie lange die User in der Gruppe verweilen dürfen. Und das komplett für jeden User unterschiedlich. Eben 5, 10, 100, etc Tage.
hast Du vielleicht eine Liste von den Mods, die Du vorhast zu machen?
Ja. Schau auf dem Portal die Mod Request Liste an. Das ist noch alles offen.
Das Datum ist jeweils der Tag der Anforderung. Leider mangelt es mir an Zeit, so daß ich ständig schieben muss :(
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

achso, jetzt verstehe ich... eine Anleitung dazu im Mod wäre nicht schlecht :rolleyes:
hab's malversucht, jemanden zeitlich begrenzt in eine Gruppe aufzunehmen... ergibt folgenden Error ganz am Schluss, wenn man ihn akzeptieren möchte :(

Could not update user group table

DEBUG MODE

Line : 711
File : /usr/export/www/vhosts/funnetwork/hosting/kissfanshop/phpbb2/groupcp.php

Das liegt an diesem Codeschnipsel:

for ($i = 0; $i < count($members); $i++)
{
if ($group_info['group_remaining'] == TRUE)
{
$user_pending = (intval($user_remaining_time[$i]) != 0) ? 1 : 0;
$user_join_time = (intval($user_remaining_time[$i]) != 0 || $group_info['group_remaining_time'] != 0) ? time() : 0;
$user_remaining_time = intval($user_remaining_time[$i]);
}
else
{
$user_pending = 0;
$user_join_time = ($group_info['group_remaining_time'] != 0) ? time() : 0;
$user_remaining_time = $group_info['group_remaining_time'];
}

$sql_member = intval($members[$i]);

$sql = "UPDATE " . USER_GROUP_TABLE . "
SET user_pending = 0, user_join_time = $user_join_time, user_remaining_time = $user_remaining_time
WHERE user_id = $sql_member
AND group_id = $group_id";
if (!$db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Could not update user group table', '', __LINE__, __FILE__, $sql);
}
}
$sql = '';

P.S.: wenn jemand einer Usergruppe beitritt, bekommt er ja eine e-mail (kann man das eigentlich irgendwo abschalten?). Wenn jemand zeitlich begrenzt der Gruppe beitritt, wäre das schön, wenn das dann so auch im e-mail automatisch dabeitsteht :rolleyes:
Wäre das leicht zu realisieren?
Zuletzt geändert von Kiss News am Do 18.Nov, 2004 10:58, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Häng mal Deine jetzige groupcp.php hier an. Dann schaue ich mal dort nach dem Rechten.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Hier der hoffentlich richtige Fix. War mein Fehler.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten