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

Code: Alles auswählen

$template->assign_block_vars('switch_admin',array());
Ich würde auch statt

Code: Alles auswählen

if ( $userdata['user_level'] == '1' )
lieber

Code: Alles auswählen

if ( $userdata['user_level'] == ADMIN ) 
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 8)