Seite 1 von 1
Bestimmte Code-Teile einer *.tpl soll nicht geladen werden
Verfasst: 02.03.2004 01:15
von Bruth
Hi,
ich habe mal eine kleine code frage.
ist es ein großer aufwand, bestimmten Code aus einer *.tpl-Datei für z.B. nicht registrierte User oder nur für eine bestimmte Gruppe anzuzeigen.
Wenn es nicht zu schwer ist, würde ich mich über ein weg freuen, da ich keine anhung habe, wo man anfangen soll dafür....
Verfasst: 02.03.2004 11:38
von Acid
Code: Alles auswählen
<!-- BEGIN switch_user_logged_in -->
<!-- END switch_user_logged_in -->
Wenn du den tpl-Teil damit umschliesst, sehen nur eingeloggte, registrierte User den Bereich.
Code: Alles auswählen
<!-- BEGIN switch_user_logged_out -->
<!-- END switch_user_logged_out -->
..damit nur ausgeloggte User (oder Gäste).
Es liessen sich noch andere Sachen definieren (obiges ist bereits Standard), z.B. ob Admins, Mods usw.
Code: Alles auswählen
<!-- BEGIN switch_user_is_authorized -->
<!-- BEGIN switch_user_is_authorized -->
Dies müsstest du dann noch in der page_header.php definieren (blau is neu).
}
if( $userdata['user_level'] == ADMIN )
{
$template->assign_block_vars('switch_user_is_authorized', array());
}
// Add no-cache control for cookies if they are set
Das ist jetzt natürlich nur ein Beispiel; da gibt´s verschiedenste Varianten.
Mit Gruppen ist dies natürlich auch möglich (s.
Beispiel).
Verfasst: 02.03.2004 12:37
von Bruth
thx, genau das wollte ich haben

Verfasst: 02.03.2004 23:24
von Bruth
Doch noch zwei fragen
du hast ja im link dies gemeint
Code: Alles auswählen
$allowed_u = array();
$allowed_u[] = 'g3'; // <-- ID der Gruppe eintragen
$access_allowed = false;
if( in_array($userdata['user_id'],$allowed_u))
{
$access_allowed = true;
}
else
{
$sql = "SELECT g.group_id, g.group_name
FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE ug.user_id = '" . $userdata['user_id'] . "'
AND g.group_id = ug.group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get user group.', '', __LINE__, __FILE__, $sql);
}
$access_allowed = false;
while( list($group_id, $group_name) = $db->sql_fetchrow($result) )
{
if( in_array('g' . $group_id[group_id],$allowed_u ))
{
$access_allowed = true;
break;
}
if( in_array('g' . $group_name[group_name],$allowed_u))
{
$access_allowed = true;
break;
}
}
if( !$access_allowed )
{
$template->assign_block_vars('switch_zahlende_user', array());
}
}
meine erste frage.im andeem post, war es ja für zugriffverweigerung. wenn ich es umgekehrt machen will, dann muss ich doch bei der variable "$access_allowed" alles einfach umdrehen, also was true ist wird false und was false ist wird true oder????
meine zweite besieht sich eher aufs verstehen, als nur anwenden. ich verstehe die else sache nicht, wann kommt es vor, wenn der inhalt vor dem else rankommt und wenn der else inhalt rankommt?? könntest du mir bitte dies erklären