Seite 1 von 1
text in viewforum nur für nicht eingeloggte User anzeigen'
Verfasst: 19.11.2007 09:52
von whiterussian
Ich möchte einen Text in viewforum.php nur dann anzeigen, wenn ein User nicht eingeloggt ist. Gibt es dafür so eine ähnliche Lösung wie den <!-- BEGIN switch_user_logged_out --> -Switch, der ja aber scheinbar nur im overall_header funktioniert?
Verfasst: 19.11.2007 10:45
von gn#36
Der Switch sollte eigentlich überall funktionieren wenn er im overall_header funktioniert.
Verfasst: 19.11.2007 10:53
von whiterussian
tut er aber leider nicht...
Ich habe den Switch genau gleich wie im Header verwendet. Resultat: Wenn ich den logged_out-Switch nehme erscheint der Text weder bei eingeloggten noch bei ausgeloggten Usern. Das ist definitiv nicht die gleiche Funktionsweise wie im Header.
Irgendjemand eine Idee?
Verfasst: 19.11.2007 19:23
von gn#36
Der Switch funktioniert entweder überall oder gar nicht.
Aufpassen musst du allerdings wenn du ihn innerhalb eines anderen Blocks verwendest:
Code: Alles auswählen
<!-- BEGIN block_x -->
<!-- BEGIN switch_user_logged_out -->
<!-- END switch_user_logged_out -->
<!-- END block_x -->
funktioniert so ohne weiteres nicht unbedingt, hierfür ist in der passenden PHP Datei eine Zeile notwendig:
Code: Alles auswählen
$template->assign_block_vars('block_x.switch_user_logged_out',array());
Dieser "Switch" ist in Wirklichkeit nämlich nichts anderes als eine missbrauchte Schleife und unterliegt daher den gleichen Regeln (KB:template_system, KB:template_syntax).
Verfasst: 26.11.2007 10:57
von whiterussian
Habe deine Antwort leider erst heute endeckt, aber das ist tatsächlich ein Teil des Problems.
Gut, es geht darum in viewforum.php etwas zu ergänzen. Die Stelle, an der ich den Switch benutzen will, steht zwischen <!-- BEGIN topicrow --> und <!-- END topicrow -->.
Interpretiere ich deinen Post richtig, müsste ich dann doch in viewforum.php folgende Zeile ergänzen (mit leerem Array):
Code: Alles auswählen
$template->assign_block_vars('topicrow.switch_user_logged_out',array());
Die habe ich unmittelbar nach
eingefügt.
Im viewforum-Template habe ich dann den Code zwischen <!-- BEGIN switch_user_logged_out --> und <!-- END switch_user_logged_out --> eingefügt. Leider wird der Text dazwischen aber immer noch unabhägig vom Login-Status des Benutzers angezeigt.
Habe ich grundsätzlich das Konzept richtig verstanden? Sieht jemand, warum es noch nicht funktioniert?
Verfasst: 26.11.2007 17:34
von gn#36
Bei der Reihenfolge in der du die beiden anordnen musst vertue ich mich immer, die ist nicht gleichgültig.
Wenn du das aber genau so eingefügt hast ist da zusätzlich ein konzeptioneller Fehler drin: Du prüfst gar nicht ob die Bedingung zutrifft bevor du den Switch setzt.
Du brauchst also eher so eine Konstruktion:
Code: Alles auswählen
if($userdata['user_id'] == ANONYMOUS || !$userdata['session_logged_in'])
{
$template->assign_block_vars('topicrow.switch_user_logged_out', array());
}
Verfasst: 26.11.2007 17:56
von whiterussian
VIELEN DANK, DU BIST MEIN RETTER!
Ich habe das genau wie von dir notiert direkt vor
eingefügt und jetzt funzt es!