Categories > [German] Deutscher TBS Support >

block kombinieren mit if/else

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: thomas
Date: 2006-06-08
Time: 13:14

block kombinieren mit if/else

irgendwie komm ich nicht weiter, ich bin schon völlig gefrustet.
ich versuche einen block auszugeben, wobei ich die ausgabeform vom inhalt eines bestimmten Array-Elementes abhängig machen möchte.
PHP-Code:
$lx[] = array('name' => stripslashes($liste['view_name']),'filename' => stripslashes($liste['filename']) ,'desc' => stripslashes($liste['beschreibung']), 'type' => stripslashes($liste['filetype']), 'url' => '/uploads/', 'server' => 'http://'.$_SERVER["SERVER_NAME"]);
lx[] ist korrekt gefüllt, und nun will ich eine Ausgabe in einer Tabelle erzeugen, die im Pseudocode in etwa so aussehen sollte:
block=begin
wenn lx.filetype = "Audio"
   blende den Code für mp3-player mit lx.filename ein
sonst wenn lx.filename = "Video"
   blende den Code für flashvideo-player mit lx.filename ein
sonst
   zeige Link mit lx.filename
block=ende

ich habe schon einige if/else-Konstrukte mit TBS gemacht, auch schon mal Blöcke dargestellt, aber ich scheitere aus dieser Kombination aus beidem.
Könnte mir eventuell jemand helfen? ich komme einfach nicht weiter.
danke schon mal im vorraus
thomas
By: thomas
Date: 2006-06-09
Time: 14:36

Ich habs immer noch nicht geschafft

ich kämpfe hier wie ein Löwe rum, aber entweder ich hab das ganze nicht kapiert, oder ich bin zu blöd dafür.
ich bekomme bei dem vorher genannten Beispiel einfach kein if/elseif/else -Konstrukt auf die Reihe. Es wäre echt dringend, dass mir jemand mal ein kleines Beispiel dazu postet, ich kann sämtliche Werte aus dem Block auslesen und kann auch eine einfache Verzweigung erzeugen, da aber 'type' mehr als nur 2 Werte haben kann, scheitere ich mit dem ganzen und bin am verzweifeln
bitte bitte,  wenigstens ein kleiner denkanstoss würde mir vielleicht schon helfen.

danke schon im vorraus
By: NeverPanic
Date: 2006-06-11
Time: 20:39

Re: Ich habs immer noch nicht geschafft

Bin schon dabei... teste aber noch, will dir ja nix falsches verkaufen.
In diesem Fall kannst du if/elseif/else nicht verwenden, sondern brauchst when.
By: NeverPanic
Date: 2006-06-11
Time: 21:22

Re: Ich habs immer noch nicht geschafft

http://dev.n-everpanic.de/

Der Block "lx" wird zunächst ausgeführt.
onshow, also wenn $tbs->Show(); aufgerufen wird, werden mehrere when-Blocks (onshow_handle_[lx.filename]) überprüft. (Die Bedingung ist bei mir regex, damit Groß-/Kleinschreibung egal ist, ein normaler Stringvergleich würde aber auch funktionieren)
Falls keiner der beiden Blocks video oder audio ausgeführt wird, wird auf jeden Fall der Block mit der Bedingung default angezeigt.
By: thomas
Date: 2006-06-12
Time: 09:44

Re: Ich habs immer noch nicht geschafft

Ich danke dir für die Hilfe, damit konnte ich was anfangen.
Ich war mit meinen Versuchen eigentlich recht dich dran, nur habe ich bei mir onshow falsch eingesetzt, irgendwie habe ich das wohl noch nicht richtig verstanden und mein englisch ist nicht wirklich berauschend, so dass ich vielleicht auch was im handbuch nicht richtig interpretiert habe.
es wäre wahrscheinlich echt mal nicht schlecht, wenn dort nochein paar deutsche sätze dazukämen  :)
Danke noch mal für die Hilfe
thomas