xenforo Conditionals - bedingte Anweisungen in Xenforo Templates

Dieses Thema im Forum "XenForo Tipps & Tricks" wurde erstellt von otto, 9. Juli 2015.

  1. otto

    otto AD Lizenznehmer

    2.694
    1.086
    7. Juli 2015
    LW-Meister
    Leipzig
    Conditionals = Bedingungen zum bedingten ausführen von Code innerhalb der Xenforo Templates.
    Quelle (EN): Brogan, Conditional Statements auf xenforo.com

    Die nachfolgend erklärten Bedingungen funktionieren nur in XenForo Templates innerhalb derer die entsprechenden Parameter und Argumente unterstützt werden!
    Die Templates generell findest Du im Administrator Kontrollbereich (ACP) unter der Rubrik "Erscheinungsbild" > "Styles und Templates".

    Inhalt:
    1. Grundlagen
    2. Bedingungen in den Templates vom ACP ein-/ausschalten
    3. Übersicht Xenforo Standard Bedingungen
    4. Beispiele für Xenforo Standard Bedingungen
    5. Übersicht Xenforo Resource Manager Bedingungen
    6. Beispiele für Xenforo Resource Manager Bedingungen
    7. Weitere Argumente für Bedingungen in Add-ons finden
    Im Anhang ein PDF dieser Resource zum herunter laden und ausdrucken. (folgt später)

    1. Grundlagen
    Bedingungen dienen in XenForo Templates dazu spezielle Code Blöcke nur unter bestimmten Voraussetzungen auszuführen. Sei es bspw. wenn eine Einstellung im Administrator Kontrollbereich gesetzt wurde oder wenn Sachen nur definierten Benutzergruppen angezeigt werden sollen. Wird eine Bedingung nicht erfüllt, dann wird der Code Block auch nicht ausgeführt.
    In dieser Art gibt es noch sehr viele weitere Einsatzmöglichkeiten für Bedingungen innerhalb der Templates.

    Eine solche Bedingung baut sich also beispielsweise wie folgt auf:
    "Wenn Argument x erfüllt oder nicht erfüllt dann führe nachfolgenden Code aus, Bedingung beendet"
    PHP:
    <xen:if is="{$visitor.user_id} == x">Code</xen:if>
    <xen:if is= ... > startet die Bedingung
    {$visitor.user_id} ist das Argument
    x ist der Parameter
    Code ist der Template Code, ausgeführt wenn die Bedingung zutrifft
    </xen:if> schließt die Bedingung ab, nachfolgender Code ist nicht mehr an die Bedingung gebunden​

    ... erweitern kann man diese Bedingungen mit Hilfe von:
    AND - und, zum kombinieren mehrerer Argumente

    PHP:
    <xen:if is="{$visitor.is_moderator} AND {$visitor.user_id} == x">
    Dieser Code wird hier nur dann ausgeführt,
    wenn der User die ID x hat UND Moderator ist.
    </
    xen:if>
    OR - oder, zum kombinieren mehrerer Argumente

    PHP:
    <xen:if is="{$visitor.is_admin} OR {$visitor.is_moderator}">
    Dieser Code wird für Administratoren und Moderatoren ausgeführt.
    </
    xen:if>
    xen:else - anderenfalls, kann innerhalb einer Bedingung bei nicht erfüllen der Hauptbedingung einen bestimmten Code Block ausführen, statt einfach zum normalen Code nach der nicht erfüllten Bedingung zu springen und dort weiter auszuführen

    PHP:
    <xen:if is="{$visitor.user_id} == x">
    Dieser Code wird für den Benutzer mit der ID x ausgeführt
    <xen:else />
    Allen anderen Benutzern wird dieser Code ausgeführt
    </xen:if>

    xen:elseif - anderenfalls, jedoch mit zusätzlicher/zusätzlichen Bedingung/-en

    PHP:
    <xen:if is="{$visitor.user_id} == x">
    Dieser Code wird für den Benutzer mit der ID x ausgeführt
    <xen:elseif is="{$visitor.user_id} == y" />
    Dieser Code wird für den Benutzer mit der ID y ausgeführt
    <xen:elseif is="{$visitor.user_id} == z" />
    Dieser Code wird für den Benutzer mit der ID z ausgeführt
    </xen:if>
    xen:else und xen:elseif können auch kombiniert innerhalb einer Kette von Bedingungen genutzt werden.

    PHP:
    <xen:if is="{$visitor.user_id} == x">
    Dieser Code wird für den Benutzer mit der ID x ausgeführt
    <xen:elseif is="{$visitor.user_id} == y" />
    Dieser Code wird für den Benutzer mit der ID y ausgeführt
    <xen:else />
    Dieser Code wird für alle anderen Benutzer ausgeführt,
    welche als User ID nicht x oder y haben.
    </
    xen:if>

    und präzisieren durch:
    == - true, wahr, der Parameter entspricht

    PHP:
    <xen:if is="{$visitor.user_id} == x">Code</xen:if>
    Code ausführen, wenn die Bedingung User ID entspricht x erfüllt ist
    =! - false, unwahr, der Parameter entspricht nicht

    PHP:
    <xen:if is="{$visitor.user_id} =! x">Code</xen:if>
    Code ausführen, wenn die Bedingung User ID entspricht x nicht erfüllt ist
    in_arry, array - array, Ansammlung von Parametern

    in_array gibt in Klammern zunächst das Argument und dann ebenfalls innerhalb von Klammern das array, also die Parameter, des Arguments Komma getrennt als Bedingung vor
    PHP:
    <xen:if is="in_array({$visitor.user_id}, array(x, y, z))">Code</xen:if>
    Code ausführen, wenn die Bedingung User ID entspricht x, y oder z erfüllt ist
    ! - false, unwahr, entspricht nicht

    kann bei Verwendung von arrays, einem "in_array" voran gestellt werden
    zB. true, wahr, Parameter entsprechen
    PHP:
    <xen:if is="in_array({$visitor.user_id}, array(x, y, z))">Code</xen:if>
    Code ausführen, wenn die Bedingung User ID entspricht x, y oder z erfüllt ist

    zB. false, unwahr, Parameter entsprechen nicht
    PHP:
    <xen:if is="!in_array({$visitor.user_id}, array(x, y, z))">Code</xen:if>
    Code ausführen, wenn die Bedingung User ID entspricht x, y oder z nicht erfüllt ist


    2. Bedingungen in den Templates vom ACP ein-/ausschalten
    Manchmal kann es sinnvoll sein wenn man eine Bedingung zB. nur zum Anzeigen spezieller Inhalte nutzt, das man diese schnell und einfach ein- und wieder ausblenden kann. Bequem über das ACP.


    Hier nun ein kurzes How To anhand eines Beispieles:

    Copyright by otto

    In Beabeitung - wird fortgesetzt...
     
OK Mehr Informationen

Diese Seite verwendet Cookies. Mit Deinem Klick auf OK, stimmst Du dem setzen von Cookies zu. Andernfalls werden keine gesetzt, was die Funktionalität einschränkt.