Du bist hier: Startseite > Fremd-Module > QuickSkin Version 5.0 > Kontroll-Strukturen

Kontroll-Strukturen

IF
Das if ... endif Konstrukt erleichtert die bedingte Darstellung von Template-Fragmenten.

Syntax:

<!-- IF var --> var is not empty! <!-- ENDIF var -->
<!-- IF name=='John Doe' --> Your name is John Doe! <!-- ENDIF name -->
<!-- IF name!='John Doe' --> Your name is not John Doe! <!-- ENDIF name -->

Eine Variable kann als rechter Teil des IF-Klausel verwendet werden.
 
Syntax:

<!-- IF name=variablename -->
   Your name match with {variablename}
<!-- ENDIF name -->
 
<!-- IF name!=top.variablename -->
   Your name doesn’t match with {top.variablename}
<!-- ENDIF name -->

Hinweis:
Der Variablename nach ENDIF ist optional
Die Variable kommt vom PHP-Code
IF/ELSE/ELSEIF Kontrollstrukturen können auch ineinander verschachtelt sein oder in BEGIN-IF Kontrollstrukturen eingefügt werden

ELSE
Das else Konstrukt erweitert ein if-Konstrukt um die Möglichkeit das, wenn eine Aussage FALSE ergibt, ein entsprechendes Template-Fragment eingefügt werden kann.

Syntax:

<!-- IF usergroup="ADMIN" -->
   <a href="admin.php"> ADMIN Login </a><br />
<!-- ELSE -->
   You are in guest mode!<br />
<!-- ENDIF usergroup -->

Hinweis:
Der Variablename nach ENDIF ist optional
Die Variable kommt vom PHP-Code
IF/ELSE/ELSEIF Kontrollstrukturen können auch ineinander verschachtelt sein oder in BEGIN IF Kontrollstrukturen eingefügt werden

ELSEIF
Mit dem elseif-Konstrukt kann ein if-Konstrukt nahezu endlos erweitert werden.

Syntax:

<!-- IF usergroup="ADMIN" -->
   <a href="admin.php"> Admin Staff Login </a><br />
<!-- ELSEIF usergroup="SUPPORT" -->
   <a href="support.php"> Support Staff Login </a><br />
<!-- ELSEIF usergroup -->
   <a href="other.php"> Standard Login </a><br />
<!-- ELSE -->
   You don't even have a usergroup!
<!-- ENDIF -->

Hinweis:
Der Variablename nach ENDIF ist optional
Die Variable kommt vom PHP-Code
IF/ELSE/ELSEIF Kontrollstrukturen können auch ineinander verschachtelt sein oder in BEGIN IF Kontrollstrukturen eingefügt werden

BEGIN ... END
Das begin ... end Konstrukt stellt die Möglichkeit bereit numerische Arrays zu durchlaufen. Jedes Element des numerischen Array wiederum muss ein assoziatives Array sein.Das Script zwischen einem eingebetteten <-! BEGIN -> und <-! END -> Tag wird so oft wiederholt wie es Elemente im nummerischen Array gibt.
Jedes  assoziative Array wird durch die folgenden zwei zusätzliche Elemente erweitert:

ROWCNT:
Die aktuelle Position des Elements innerhalb des übergeordneten Arrays. (0,1,2,3,...n)
ROWBIT:
Das niederwertigste Bit von ROWCNT. (0,1,0,1,0,1,...)
begin ... end blocks können leicht verschachtelt und analysiert werden (rekursiv)

Beispiel:

// Array initialisieren
$users = array(
   array( 'NAME' => 'John Doe',   'GROUP' => 'ADMIN' ),
   array( 'NAME' => 'Jack Doe',   'GROUP' => 'SUPPORT' ),
   array( 'NAME' => 'James Doe',  'GROUP' => 'GUEST' ),
   array( 'NAME' => 'Jane Doe',   'GROUP' => 'GUEST' ),
);
$page->assign( 'users',  $users );

Die Template-Datei würde dann enthalten:

<style type="text/css">
    .col0 { background-color: #D0D0D0; }
    .col1 { background-color: #F0F0F0; }
  </style>
  <table border="1" cellpadding="2" cellspacing="0">
    <tr>
      <th>No.</th>
      <th>Username</th>
      <th>Usergroup</th>
    </tr>
    <!-- BEGIN users -->
    <tr class="col{ROWBIT}">
      <td>{ROWCNT}</td>
      <td>{NAME}</td>
      <td>{GROUP}</td>
    </tr>
    <!-- END users -->
  </table>

Hinweis:
Der Variablename nach ENDIF ist optional
Die Variable kommt vom PHP-Code
IF/ELSE/ELSEIF Kontrollstrukturen können auch mit BEGIN ...END Kontrollstrukturen verschachtelt werden

INCLUDE
Hierbei handelt es sich nicht um eine echte Kontrollstruktur. Mit der INCLUDE-Direktive werden externe Daten in die Template-Datei geladen
Template-Dateien können in anderen Template-Dateien über die INCLUDE-Direktive includiert werden. Dabei können in diesen „Sub-Templates“ die gleichen Funktionen/Kontrollstrukturen verwendet werden.

Syntax:

<!-- INCLUDE templatename.html -->
// oder
<!-- INCLUDE templatename.php -->
// oder
<!-- INCLUDE templatename.meinTemplate -->

// oder…

Hinweis:
Include-Datei ist im Template-Verzeichnis (default '_skins/')
Ähnlich der Methode $page->addtpl ()… Unterschied ist dabei, dass "addtpl" die Daten in einer Variablen speichert, die dann ('$ page-> assign ()') zugewiesen bekommt (innerhalb des Haupt-Templates)

Die Kontroll-Strukturen werden nur innerhalb der Template-Datei(en) benutzt!

Aktuell

Leider werden in den neueren Versionen von Flyspray Eingriffe in der Serverkonfiguration gefordert. Deren Sinn ist wohl nur dem dem Entwickler bekannt. Bisher lief Flyspray einwandfrei und zur vollsten Zufriedenheit, und jetzt solche Änderungen... Also Flyspray ist auf "normalen" Websites nicht mehr nutzbar und kann nur sicher auf gemieteten VPNs etc. benutzt werden. Für mich ein Eigentor und der Grund mich, nach ca. 12 Jahren der Benutzung, davon zu verabschieden. Im Moment bin ich noch in der Testphase von verschiedenen Bugtrackern.


Noch aktuell

Eine besondere Überraschung kommt in Kürze, zusammen mit der PHP8.x-tauglichen Version!

nach oben