text in viewforum nur für nicht eingeloggte User anzeigen'

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
whiterussian
Mitglied
Beiträge: 19
Registriert: 13.05.2007 10:59

text in viewforum nur für nicht eingeloggte User anzeigen'

Beitrag 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?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Der Switch sollte eigentlich überall funktionieren wenn er im overall_header funktioniert.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
whiterussian
Mitglied
Beiträge: 19
Registriert: 13.05.2007 10:59

Beitrag 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?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
whiterussian
Mitglied
Beiträge: 19
Registriert: 13.05.2007 10:59

Beitrag 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

Code: Alles auswählen

$template->assign_block_vars('topicrow', array(...));
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?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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());
}
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
whiterussian
Mitglied
Beiträge: 19
Registriert: 13.05.2007 10:59

Beitrag von whiterussian »

VIELEN DANK, DU BIST MEIN RETTER!

Ich habe das genau wie von dir notiert direkt vor

Code: Alles auswählen

// Parse the page and print
eingefügt und jetzt funzt es!
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“