Das geschieht mit dieser Abfrage:
Code: Alles auswählen
// Hier die Gruppen-ID's angeben, für die es gilt, die Usermitgliedschaft festzustellen
// Mehrere Gruppen-IDs sind durch Kommata voneinander zu trennen.
// Wird nur eine Gruppe angegeben, so kann auch folgende Zeile verwendet werden:
// $special_groups = 1; // Gruppen-ID = 1
$special_groups = array(1, 2); // Gruppen mit der ID 1 und 2
// Feststellung der Mitgliedschaft
$sql = "SELECT g.group_id FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
WHERE g.group_id IN ($special_groups);
AND g.group_id = ug.group_id
AND ug.user_pending <> " . TRUE . "
AND g.group_single_user <> " . TRUE . "
AND ug.user_id = " . $userdata['user_id'];
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not get special group data', '', __LINE__, __FILE__, $sql);
}
$special_user = $db->sql_numrows($result);
$db->sql_freeresult($result);
// Bedingung für die Mitgliedschaft, bzw. Nichtmitglieder
if ($special_user != 0)
{
// Block für Mitglieder
// Sollte dieser Block nicht benötigt werden, so sind nur diese Kommentarzeilen und
// die direkt anschliessende Folgezeile zu entfernen. Der else-Zweig muss dann bestehen
// bleiben!
$template->assign_block_vars('member_block', array());
}
else
{
// Block für Nichtmitglieder
// Diesen Part ab else komplett entfernen, wenn der entsprechende Block nicht benötigt wird.
$template->assign_block_vars('none_member_block', array());
}
Diese Abfrage kann in der page_header.php oder in der .php_Datei eingesetzt werden (bei letzterer immer vor $template->pparse(...), in der die Switches verwenden werden sollen.
In der betreffenden .tpl-Datei ist dann der Block für Gruppenmitglieder mit
Code: Alles auswählen
<!-- BEGIN member_block -->
<!-- END member_block -->
Code: Alles auswählen
<!-- BEGIN none_member_block -->
<!-- END none_member_block -->
Selbstverständlich kann einer der beiden Blöcke auch weggelassen werden, wenn dieser nicht benötigt wird.
Dazu sollte aber auch die Bedingung, wie oben angegeben, entsprechend angepasst werden, um nicht unnötige Prüfungen durchführen zu lassen.
Eine Auswahl durch den User ist hierbei nicht möglich, dieses wäre jedoch um eine Einstellung im Benutzerprofil erweiterbar.