Conditionals in Invision Community

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}}