bx:if

Das Tag if zeigt seinen Inhalt nur an, wenn eines oder mehrere innere Tags einen Inhalt besitzen.

<bx:if [type="{any | one | all}"] [trim] [rekursiv="{n}"] ] > Inhalt </bx:if>
<bx:if.1>...<bx:if.2>...<bx:if.else>...</bx:if.else>...</bx:if.2>...<bx:if.else>...</bx:if.else>...</bx:if.1> 

Bei mehreren geschachtelten Schleifen kann ein Bezeichner angegeben werden (ab Version 2.6.0.). Die else-Blöcke beziehen sich auf das jeweils direkt übergeordnete if. Ab Version 2.6.2 kann man auch trim angeben, damit störende Leerzeichen und Umbrüche ignoriert werden (auf die das if sonst anschlagen würde).

type="any" Inhalt nur anzeigen, wenn mindestens ein Tag einen Inhalt hat
type="one" Inhalt nur anzeigen, wenn genau ein Tag einen Inhalt besitzt
type="all" (Standard) Inhalt nur anzeigen, wenn alle Tags einen Inhalt haben
trim Check Leerzeichen und Umbrüche im zu prüfenden Inhalt (entspricht einem tools.trim um das zu prüfende Tag)
rekursiv Check auch verschachtelte Ebenen, n gibt die Ebene an (siehe Beispiel)

Beispiele

<bx:if recursive="1" type="any">
  <ul>
    <bx:recordfield.alleAnsprechpartner>
      <li><bx:recordfield.Name/></li>
    </bx:recordfield.alleAnsprechpartner>
  </ul>
</bx:if>

Alternativ bisher:
<bx:iF>
  <ul>
    <bx:recordfield.alleAnsprechpartner>
      <bx:if><li><bx:recordfield.Name/></li></bx:if>
    </bx:recordfield.alleAnsprechpartner>
  </ul>
</bx:iF>

Ansprechpartner (mit umgebenenden

<bx:if>
 zu prüfende <bx:tags>
 <bx:if.else [showalways]> 
  alternativer Text
 </bx:if.else> 
</bx:if> 

Der Inhalt dieses Tags wird immer dann ausgeführt, wenn die Bedingungen des übergeordneten Tests nicht zutreffen.

Kurzform:

<bx:if else=“keine Angabe“><bx:recordfield.Ansprechpartner/></bx:if> 

entspricht:

<bx:if>
  <bx:recordfield.Ansprechpartner/>
  <bx:if.else>
    keine Angabe
  </bx:if.else>
</bx:if> 
showalways Inhalt des else-Blocks wird immer ausgegeben* (ab *V2.6.1) siehe Beispiel

Beispiele

<bx:if>
  <a href="<bx:recordfield.Link />">
  <bx:if.else showalways> 
    <bx:recordfield.Bild />
  </bx:if.else>
  </a>
</bx:if> 

Hier wird in jedem Fall das Bild ausgegeben und nur falls Link gefüllt ist, wird ein a-Element um das Bild gesetzt.

if.elseif

<bx:if>
  zu prüfende <bx:tags>
  <bx:if.elseif> 
    weiterer zu prüfender Inhalt
    <bx:if.else>
      alternativer Inhalt
    </bx:if.else>
  </bx:if.elseif> 
</bx:if> 

Statt bx:if.else kann auch bx:if.elseif verwendet werden. Die Besonderheit liegt darin, dass dieses Tag dann wie eine verschaltete if-Verzweigung wirkt, es startet also eine eigene Auswertung seines Inhalts.

Beispiele

<bx:if>
  <bx:recordfield.Telefon/>
  <bx:if.elseif> 
    <bx:recordfield.Handy/>
    <bx:if.else>
      telefonisch nicht erreichbar
    </bx:if.else>
  </bx:if.elseif> 
</bx:if> 

Erst wird geprüft, ob eine Telefonnummer angegeben ist und wenn vorhanden ausgegeben. Wenn nicht, wird nach der Handynummer gefragt und wenn diese angegeben ist, ausgegeben. Wenn keine der beiden Felder ausgefüllt ist, wird der Text ausgegeben.

if.ignore

<bx:if>
  zu prüfende <bx:tags>
  <bx:if.ignore>
    <bx:recordfield.wird_nicht_geprueft />
  </bx:if.ignore>
</bx:if>

Um Bereiche innerhalb eines bx:if-Tags von der Inhaltsprüfung auszuschließen, kann bx:if.ignore verwendet werden. Der Inhalt dieses Tags wird ganz normal auf der Seite angezeigt.

Beispiele

<bx:if>
  <img src="<bx:recordfield.Bild type="path"/>" alt="<bx:if.ignore><bx:recordfield.Alt_Titel/></bx:if.ignore>">
</bx:if>

Wenn ein Bild angegeben ist, wird das img-Tag(Bild) angezeigt, der Alt-Titel, der erfahrungsgemäß nicht immer vorhanden ist, wird von der Prüfung ausgeschlossen, d.h. wenn er fehlt, bleibt der alt-Parameter leer, das Bild wird aber trotzdem ausgegeben.

filter

Um JSP-Bausteine als Filter eines bx:if- oder bx:if.elseif-Tags zu verwenden, geben Sie als zusätzlichen Parameter filter="<filtername>" an. Die Entscheidung, ob der Inhalt ausgegeben wird oder nicht, wird dann dem Script überlassen. Die vorhergehende Auswertung durch das Tag selbst wird im Request-Parameter attrValue übergeben, welche über jenen Parameter auch geändert werden kann.


Revision #4
Created 28 May 2026 09:30:27 by Batix
Updated 28 May 2026 14:53:30 by Batix