Die grundlegendste Logikprüfung ist ein einfaches if/else. Damit kannst Du HTML einfügen, wenn eine Bedingung zutrifft, oder etwas anderes, wenn sie nicht zutrifft.
Die Syntax ist einfach:
{{if [expression]}}
HTML-Ausgabe wenn expression zutrifft
{{else}}
HTML-Ausgabe wenn expression NICHT zutrifft
{{endif}}
Es gibt auch einen elseif-Tag, mit dem Du andere Bedingungen angeben kannst, um zu überprüfen, ob frühere Bedingungen nicht übereinstimmten.
{{if [expression]}}
HTML-Ausgabe wenn expression zutrifft
{{elseif [expression]}}
HTML-Ausgabe wenn expression zutrifft
{{else}}
HTML-Ausgabe wenn expressions NICHT zutreffen
{{endif}}
Praxisbeispiele
Benutzer
{{if \IPS\Member::loggedIn()->member_id === NULL}}
Dieser Inhalt wird nur Gästen angezeigt, da sie eine NULL-member_id haben.
{{endif}}
{{if \IPS\Member::loggedIn()->member_id}}
Dieser Inhalt wird nur eingeloggten Benutzern angezeigt, da ihre member_id eine Zahl ist, die gleich wahr ist.
{{endif}}
Benutzergruppen
{{if \IPS\Member::loggedIn()->member_group_id === 4}}
Dieser Inhalt wird nur Benutzern angezeigt, die sich in der Gruppe mit der ID 4 befinden.
{{endif}}
{{if in_array( \IPS\Member::loggedIn()->member_group_id, array( 2, 4, 6 ) )}}
Dieser Inhald wird nur Benutzern angezeigt, die sich in Gruppe 2, 4 oder 6 befinden.
{{endif}}
Foren
{{if $forum->id == 13 OR $forum->id == 10}}
Dieser Inhalt wird nur im Forum mit der ID 10 angezeigt.
{{endif}}
{{if in_array( $forum->id, array( 10, 13 ) )}}
Dieser Inhalt wird nur in den Foren mit den IDs 10 und 14 angezeigt.
{{endif}}
{{if request.app == 'forums' && request.module == 'forums' && request.id == 3}}
Dieser Inhalt wird nur angezeigt, wenn der Benutzer in der Anwendung "Forum" das Forum mit der ID 3 betrachtet.
{{endif}}
Anwendungen
{{if \IPS\Request::i()->app == "downloads"}}
Dieser Inhalt wird nur in der Anwendung "Downloads" angezeigt.
{{endif}}
Themes
{{if \IPS\Member::loggedIn()->skin == "1"}}
Dieser Inhalt wird nur in dem Theme mit der ID 1 angezeigt.
{{endif}}
Seiten
{{if \IPS\Request::i()->app == 'cms' and \IPS\Request::i()->controller == 'page' and \IPS\Request::i()->module == 'pages' and $page = \IPS\cms\Pages\Page::$currentPage and \in_array($page->id, array(1,2,3,4,5))}}
Dieser Inhalt wird nur auf den Seiten mit den IDs 1,2,3,4 und 5 angezeigt.
{{endif}}
Module
{{if request.module === 'system' && request.controller === 'privacy'}}
Dieser Inhalt wird nur auf dem Modul "privacy" angezeigt.
{{endif}}
Sprache
{{if \IPS\Member::loggedIn()->language()->bcp47() == 'en-US'}}
Dieser Inhalt wird angezeigt, wenn der Benutzer die Sprache Englisch eingestellt hat.
{{endif}}
Siehe auch Working with Members
Update 10.10.2020: Wie ich vorhin erfahren musste hat IPS den oben verlinken Artikel offline genommen. Vielleicht überarbeiten sie ihn nur und er ist bald wieder verfügbar.
Problem mit Seite melden?