Hallo,
da ich ein Forum nun um verschiedene Gruppen erweitern will, sollen erstmal alle bestehenden Benutzer einer Gruppe zugeordnet werden. Was ich natürlich nicht manuell machen will.
Das einzige was mir momentan einfällt ist ein PHP-Skript zu schreiben, welches user_id(s) aus der Tabelle phpbb_users ausliest und diese dann in der Tabelle phpbb_user_group mit der ID der Gruppe verbindet.
Hat jemand vielleicht ne bessere Idee?
Alle bestehenden Benutzer einer Gruppe zuordnen
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Re: Alle bestehenden Benutzer einer Gruppe zuordnen
Wozu brauchst du das?thorbytes hat geschrieben:... sollen erstmal alle bestehenden Benutzer einer Gruppe zugeordnet werden.
- Mahony
- Ehemaliges Teammitglied
- Beiträge: 12179
- Registriert: 17.11.2005 22:33
- Wohnort: Ostfildern Kemnat
- Kontaktdaten:
Hallo thorbytes
Schau dir mal den Auto Group MOD von Niels an. Eventuell wäre das ja das richtige für dich.
Grüße: Mahony
Schau dir mal den Auto Group MOD von Niels an. Eventuell wäre das ja das richtige für dich.
Damit kannst neue User automatisiert in eine Gruppe einfügen.1. Full MOD description
## -----------
## This mod will make it posible to add member to a user group,
## depending on there post count. This makes it posible to make a
## group "Everyone" (0 posts) where all members are members by default
## or a group like "Posters" (1 posts) where all users witch have
## posted are a member.
## Now also support MAX post count, so the users will be removed
## if they have more posts than required
Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Danke für den HinweisSteveHH hat geschrieben:Ist doch logisch, wenn man sich seinen Thread GENAU durchliest ... er will verschiedene Gruppen einrichten und die User, die er bisher hat, in EINE Gruppe sowie neue User in ANDERE Gruppen packen ... so habe ich das zumindest verstanden ..![]()

Ich hab das auch so verstanden, nur ist die vorgehensweise, jeden User in eine Gruppe zu werfen ziemlich aufwändig (siehe posting über mir)
Eventuell ist das was er haben will auch ohne Mods möglich, deswegen meine Nachfrage

Genau so ist das gedachtSteveHH hat geschrieben:Ist doch logisch, wenn man sich seinen Thread GENAU durchliest ... er will verschiedene Gruppen einrichten und die User, die er bisher hat, in EINE Gruppe sowie neue User in ANDERE Gruppen packen

Bzw. möchte ich bei neuen Usern auswählen können, in welche Gruppe die dann kommen.
Ich glaube ich hab was gefunden:
Simple Auto Group
Der lässt sich dann nach diesem Vorgang leicht wieder entfernen.
---- EDIT ----
Der "Simple Auto Group" funktioniert leider nur bei neu registrierten Benutzern.
So, ich habe nun einfach den Auto Group Mod hergenommen, ein wenig kopiert und verändert und schon hab ich das was ich brauche.
Wem's interessiert:
Wem's interessiert:
Code: Alles auswählen
## MOD Title: add_all_user_group.mod
## MOD Author: thorbytes
## MOD Description: Adds or deletes all users to a selected group
## Installation Level: Easy
## Installation Time: 13 Minutes
## Files To Edit: admin/admin_groups.php
## language/lang_english/lang_admin.php
## templates/subSilver/admin/group_edit_body.tpl
## Included Files: n/a
## Generator: MOD eclipse
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/
##############################################################
## Author Notes:
## This MOD is a workaround of some features from the Auto Group Mod
## <http://www.phpbbhacks.com/download/2203> from Niels.
##
## The idea is, that you only add all users to a specific group once.
##
## So the best usage is to install the MOD with EasyMod,
## add the users to the wanted group,
## and then deinstall the MOD again.
##############################################################
## MOD History:
##
## 2007-08-28 - Version 0.0.1
## - Initial Release
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ OPEN ]------------------------------------------
#
admin/admin_groups.php
#
#-----[ FIND ]------------------------------------------
#
'GROUP_MODERATOR' => $group_moderator,
#
#-----[ AFTER, ADD ]------------------------------------------
#
'L_GROUP_COUNT_EXPLAIN' => $lang['group_count_explain'],
'L_GROUP_COUNT_UPDATE' => $lang['Group_count_update'],
'L_GROUP_COUNT_DELETE' => $lang['Group_count_delete'],
#
#-----[ FIND ]------------------------------------------
#
$delete_old_moderator = isset($HTTP_POST_VARS['delete_old_moderator']) ? true : false;
#
#-----[ AFTER, ADD ]------------------------------------------
#
$group_count_update = isset($HTTP_POST_VARS['group_count_update']) ? true : false;
$group_count_delete = isset($HTTP_POST_VARS['group_count_delete']) ? true : false;
#
#-----[ FIND ]------------------------------------------
#
# this line must be found rigth below the abouve find tag, as this line are pressent 2 places
message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql);
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
if ($group_count_delete)
{
//removing old users
$sql = "DELETE FROM " . USER_GROUP_TABLE . "
WHERE group_id=$group_id
AND user_id NOT IN ('$group_moderator','".ANONYMOUS."')";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not remove users, group count', '', __LINE__, __FILE__, $sql);
}
$group_count_remove=$db->sql_affectedrows();
}
if ( $group_count_update)
{
//finding new users
$sql = "SELECT u.user_id FROM " . USERS_TABLE . " u
LEFT JOIN " . USER_GROUP_TABLE ." ug ON u.user_id=ug.user_id AND ug.group_id='$group_id'
WHERE ug.group_id is NULL
AND u.user_id NOT IN ('$group_moderator','".ANONYMOUS."')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, $sql.'Could not select new users, group count', '', __LINE__, __FILE__, $sql);
}
//inserting new users
$group_count_added=0;
while ( ($new_members = $db->sql_fetchrow($result)) )
{
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
VALUES ($group_id, " . $new_members['user_id'] . ", 0)";
if ( !($result2 = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error inserting user group, group count', '', __LINE__, __FILE__, $sql);
}
$group_count_added++;
}
}
#
#-----[ FIND ]------------------------------------------
#
$message = $lang['Updated_group'] . '<br />
#
#-----[ IN-LINE FIND ]------------------------------------------
#
$lang['Updated_group'] .
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
'<br />'.sprintf($lang['group_count_updated'],$group_count_remove,$group_count_added).
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/group_edit_body.tpl
#
#-----[ FIND ]------------------------------------------
#
{L_GROUP_HIDDEN}</td>
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<tr>
<td class="row1" width="38%"><span class="gensmall">{L_GROUP_COUNT_EXPLAIN}</span></td>
<td class="row2" width="62%">
<br/> <input type="checkbox" name="group_count_update" value="0"/> {L_GROUP_COUNT_UPDATE}
<br/> <input type="checkbox" name="group_count_delete" value="0"/> {L_GROUP_COUNT_DELETE}
</td>
</tr>
#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_admin.php
#
#-----[ FIND ]------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// add all user to group mod
$lang['group_count_updated'] = '%d member(s) have been removed, %d members are added to this group';
$lang['Group_count_update'] = 'Add/Update new users';
$lang['Group_count_delete'] = 'Delete/Update old users';
$lang['group_count_explain'] = 'Action for all users in this forum.';
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM