Seite 1 von 2
<-- BEGIN xx --> Text <-- END xx -->
Verfasst: 26.07.2007 00:52
von Giga-Tronic
Hi
ich möchte, dass ein Link in meinem Header nur für bestimmte User sichtbar ist. Es gibt sowas ja auch für eingeloggte user etc ( <-- BEGIN switch_user_logged_in> )
Die Leute, die diesen Link sehen sollen möchte ich dann anhand der User IDs festlegen.
Ist sowas möglich? Ich danke Euch vielmals!
Gruß
Andi
Verfasst: 26.07.2007 08:34
von Dr.Death
Du könntest einen Switch in der page_header.php einbauen:
Code: Alles auswählen
if ( in_array ($userdata['user_id'], array(2,3,4) ) )
{
$template->assign_block_vars('switch_special_user', array());
}
Die Ziffern im Array sind die User IDs Deiner speziellen User mit einem Komma getrennt.
Den speziellen Link kannst du nun in der overall_header.tpl mit dem folgenden Switch steuern:
Code: Alles auswählen
<!-- BEGIN switch_special_user -->
[... hier steht dein Code, der nur ausgeführt wird, wenn der User ein Spezial User ist ...]
<!-- END switch_special_user -->
Verfasst: 26.07.2007 17:56
von Giga-Tronic
Hi
Danke für deine Antwort, werde es gleich testen
Verfasst: 09.08.2007 14:09
von phillip
also bei mir hats nicht funktionniert
ich hab in der page_header
Code: Alles auswählen
if ( $userdata['user_level'] == 1 )
{
$template->assign_block_vars('switch_admin');
}
und in der bbcode.tpl
Code: Alles auswählen
<!-- BEGIN switch_admin -->
.....
<!-- END switch_admin -->
Verfasst: 09.08.2007 14:28
von gn#36
Du musst ein wenig aufpassen wo du die <!-- BEGIN xx --> und <!-- END xx --> platzierst. Wenn du nämlich diese in einem anderen Block platzierst, dann ändert sich der Aufruf der in der page_header.php stehen muss.
Als Beispiel:
Das Template sieht grob so aus:
Code: Alles auswählen
<!-- BEGIN block_a -->
--- HTML ---
<!-- BEGIN block_b -->
--- HTML ---
<!-- END block_b -->
--- HTML ---
<!-- END block_a -->
Dann muss das in der page_header.php so aufgerufen werden:
Code: Alles auswählen
$template->assign_block_vars('block_a.block_b',array());
Siehe auch KB:template_syntax und KB:template_system
Verfasst: 09.08.2007 15:02
von phillip
also gehts nur mit
Code: Alles auswählen
if ( $userdata['user_level'] == '1' )
{
$template->assign_block_vars('switch_admin');
}
gar nicht?
und wo genau müsste ich das eigentlich einfügen, bei mir gibts hier header probleme....
Verfasst: 09.08.2007 15:14
von gn#36
Doch schon, allerdings kann es sein, dass das nicht geht wenn sich dieser Switch innerhalb eines anderen Blocks im Template befindet.
Allerdings dürfte die Funktion assign_block_vars wenn ich mich nicht irre auch grundsätzlich beide Parameter verlangen, also wenn überhaupt
Ich würde auch statt
lieber
verwenden, das ist zwar nur Kosmetik, aber wenn man später noch mal draufschaut (oder jemand anderes draufschauen soll) dann sind sprechende Bezeichungen immer günstiger.
Verfasst: 09.08.2007 15:25
von phillip
ja stimmt...
Könntest du mir vielleicht die Sache für den page_header schnell zusammenfassen, bin ein bisschen aus der Übung... (also nicht das ich zu faul wäre!)
Verfasst: 09.08.2007 15:46
von gn#36
Also eigentlich ist da doch nicht mehr viel zu zu machen. Außerdem weiß ich ja gar nicht was du sonst noch so für Switches in deinem overall_header.tpl oder sonstigen Templates rumfliegen hast die du alle abdecken müsstest. Diese Switches sind leider nicht so ganz günstig programmiert worden. Für jede Verschachtelung die vorkommt müsstest du eben ein Konstrukt wie
Code: Alles auswählen
if($userdata['user_level'] == ADMIN)
{
$template->assign_block_vars('switch_admin',array());
$template->assign_block_vars('uebergeordneter_block_1.switch_admin',array());
...
}
hinzufügen.
Verfasst: 09.08.2007 18:49
von phillip
ach so meinst du das! ja ok, jetzt ist ein licht aufgegangen.
Demfall alle BBdingsbums reinpacken

Danke für die Hilfe.
Ich meld mich nochmals
