Ankündigung

Einklappen
Keine Ankündigung bisher.

Template-Bedingungen (conditionals)

Einklappen
X
Einklappen
Momentan aktive Benutzer in diesem Thema: 1 (0 Benutzer und 1 Gäste)

  • Template-Bedingungen (conditionals)

    Durch Templatebedingungen können je Nach Variablen-Zustand verschiedene Ausgaben generiert werden. Dies ist zum Beispiel nützlich um eine Seite für Gäste anders als für die angemeldeten Benutzer darzustellen, oder zum Beispiel Teile des Templates nur für bestimmte Benutzergruppen darzustellen.

    Hier ein paar Beispiele wie Template-Bedingungen verwendet werden können:

    Benutzer angemeldet/ nicht angemeldet/ gehört zu Benutzergruppe:
    HTML-Code:
    <vb:if condition="!$user OR $user['userid'] > 0">  
      Sehen nur registrierte Benutzer.
    </vb:if>
    HTML-Code:
    <vb:if condition="!$user OR $user['userid'] < 1">
      Sehen nur nicht registrierte Benutzer.
    </vb:if>    
    HTML-Code:
    <vb:if condition="!$user OR $user['userid'] < 1">
          Sehen nur nicht registrierte Benutzer.
    <vb:elseif condition="$user['usergroupid'] == 6" />
        Sehen nur Administratoren
    <vb:else />
          Sehen nur registrierte Benutzer (alle Benutzergruppen).
    </vb:if>
    Benutzergruppe des Benutzers:
    HTML-Code:
    <vb:if condition="is_member_of($user, array(6,5,7))">
        Gehört der Benutzergruppe Admin, Super-Mod oder Moderator an (auch sekündäre Benutzergruppen!).
    </vb:if>
    Kann auch wie folgt dargestellt werden (hier wird nur die primäre Benutzergruppe abgefragt!):
    HTML-Code:
    <vb:if condition="in_array($user['usergroupid'], array(6,5,7))">
        Gehört der Benutzergruppe Admin, Super-Mod oder Moderator an.
    </vb:if>
    Und-Verknüpfungen:
    HTML-Code:
    <vb:if condition="$user['posts'] > 200 AND $user['usergroupid'] != 2">
        Können Nur Benutzer mit mehr als 200 Beiträgen und nicht der Benutzergruppe 2 angehören sehen
    </vb:if>
    Oder-Verknüpfung:
    HTML-Code:
    <vb:if condition="$user['posts'] > 200 OR $user['usergroupid'] != 2">
        Können Nur Benutzer mit mehr als 200 Beiträgen oder nicht der Benutzergruppe 2 angehören sehen
    </vb:if>
    Und- in Verbindung mit oder-Verknüpfung
    HTML-Code:
    <vb:if condition="$page['pageid'] == 2 AND ($user['posts'] > 200 OR $user['usergroupid'] != 2)">
        Können Nur Benutzer mit mehr als 200 Beiträgen oder nicht der Benutzergruppe 2 angehören sehen, wenn diese sich gerade auf der Seite 2 befinden
    </vb:if>
    Weitere Beispiele:

    HTML-Code:
    <vb:if condition="$user['posts'] > 200">
        Können Nur Benutzer mit mehr als 200 Beiträgen sehen
    </vb:if>
    HTML-Code:
    <vb:if condition="preg_match('/^https?:\/\//', $smilie['image'])">
      Das Verfassen von Kommentare wurde deaktiviert.

    Tutorial-Tags

    Einklappen

    Neuste Tutorials

    Einklappen

    • PHP Template-Syntax
      delicjous
      In den Templates können gewisse PHP-Funktionen abgerufen werden. Hierzu könnt Ihr die Methode vb:php anwenden.
      Im folgenden ein paar Beispiele:

      Erzeugt ein Array:
      Code:
      {vb:set Array, {vb:php array}}
      Hier kommt raus: alles klein geschrieben
      Code:
      {vb:php strtolower, 'ALLES KLEIN GESCHRIEBEN'}
      Unter den Funktionen noch ein vollständiges Beispiel mit erläterungen!


      Erlaubte Funktionen:
      • implode() - Verbindet Array-Elemente zu einem
      ...
      25.12.2017, 14:41
    • Template-Bedingungen (conditionals)
      delicjous
      Durch Templatebedingungen können je Nach Variablen-Zustand verschiedene Ausgaben generiert werden. Dies ist zum Beispiel nützlich um eine Seite für Gäste anders als für die angemeldeten Benutzer darzustellen, oder zum Beispiel Teile des Templates nur für bestimmte Benutzergruppen darzustellen.

      Hier ein paar Beispiele wie Template-Bedingungen verwendet werden können:

      Benutzer angemeldet/ nicht angemeldet/ gehört zu Benutzergruppe:
      HTML-Code:
      <vb:if condition="!$user
      ...
      18.11.2017, 17:51
    • Warum ein Add-on besser ist als eine manuelle Anlage im AdminCP
      delicjous
      Möchtet Ihr über einen Hook verschiedene Funktionen, oder einfach nur ein paar Zeilen HTML-einfügen, ist in vielen Anleitung die Rede von "Template erstellen und über einen HOOK an der entsprechenden Stelle einblenden."

      Warum dies zwar sehr gut funktioniert, aber meiner Meinung nach nicht die beste Art der Erweiterung ist, hier kurz erläutert.
      Als Beispiel nehme ich die Erweiterung der Breadcrumbs, welche ich bereits als kleines Modul (.XML) erstellt habe.
      ...
      25.10.2017, 14:42
    Lädt...
    X