Zum Inhalt springen

Bilder blättern in eigener Extention

Erstellt am 12. August 2008 · Noch keine Antworten

Tags: Frage

ÁndreMansfeld ·

Hallo Typo3ler,
das Thema wurde zwar schon sehr oft in anderen Zusammenhängen besprochen, jedoch als simple Ausgabefunktion habe ichs noch nicht gefunden. Nach mehreren Tagen (Try and Error) wobei ERROR immer mein Ergebnis war muß ich Euch doch wieder um einen kleinen Denkanstoß bemühen.
Ich habe eine kleine Extention in der ganz normal die Daten aus der DB ausgelesen werden können. Für die Bildfunktion hatte ich mir mehrere MARKER gesetzt.
Also eine Standardausgabe mit einer WHILE Schleife.

Daten holen mit SELECT ->
WHILE SCHLEIFE
MARKER TEXT = $row mit TEXTausgabe
MARKER BILD1 = -> Function mit BILDausgabe von $row BILD1
MARKER BILD2 = -> Function mit BILDausgabe von $row BILD2
und so weiter.....
ALLES FUNKTIONIERT GUT :-)

Jetzt brauche ich aber folgendes...
Es gibt keine seperate Tabellenspalte mehr für Bild 1 und 2 ... , sondern jetzt habe ich dafür mit dem Kickstarter die Bilder in eine Tabellenspalte geholt indem ich bei FILE den WERT 5 eingesetzt habe.
Ich kann also im BE nun nicht 1 Bild sondern gleich 5 Bilder angeben, welche angezeigt werden sollen.
Im BE klappt das auch schon :-), nur die Ausgabe im FE will nicht.

Wenn ich das richtig verstehe müßte ich ja jetzt innerhalb der WHILE SCHLEIFE eine 2te WHILE SCHLEIFE für die Bilder anlegen. Dann dem MARKER noch sagen, dass er jetzt nicht ein einzelnes Bild, sondern die 2te WHILE Schleife ausgeben soll. Und hier scheitere ich #angry# .
Jetzt meine Fragen:
1. Wohin mit dem Code für die 2te WHILE Schleife?
Innerhalb der 1ten WHILE SCHLEIFE oder außerhalb (z.B. als Function oder ARRAY)
2. Wenn ich die Bildfunktion haben will, dann müßte ich ja auch den Code

$this->cObj->IMAGE(array('file' => 'uploads/tx_xyz/'.$row['?????'],'file.maxW' => 400,));

entsprechend an jedes Bild hängen, aber dafür müßte ich es doch in der Ausgabe irgendwie definieren.
Also dynamisch ansprechen(ich hab ja jetzt kein .row['bild1'] mehr. Ich hab dann erstes (zweites, drittes...) Bild aus dem Ordner!!
Meine Bildfunktion müsste dann ja eigentlich lauten :
WHILE Schleife
erstes Bild + Bildfunktion
zeites Bild + Bildfunktion
u.s.w.
Stehe da irgendwie voll auf dem Schlauch... :o

Naja, und um auf den TITEL des Posts zu kommen :-) ... schön wäre es wenn man dann in der Ausgabe nur ein Bild sehen würde und mit VOR <-> ZURÜCK einfach da durch navigieren könnte.

Hier dann nochmal der Code im Original(nur der wichtige Teil):

$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
        '*',   #select
        'tx_xyz_main', #from
        'hidden=0 and deleted=0 and pid='.$this->id,  #where
        $groupBy='',
        $orderBy='',
        $limit='');

        if($res) {
            $liste='';

        // Die gesamte WHILE Schleife für den Datensatz fängt hier an!!!
        while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {

          $markerArray['###TEXT1###']= $row ['text1'];
          $markerArray['###TEXT2###']= $row ['text2'];
          //$markerArray['###BILD1###']=$this->cObj->IMAGE(array('file' => 'uploads/tx_xyz/'.$row['bild1'])); // das geht natürlich so :-)
          //$markerArray['###BILD2###']=$this->cObj->IMAGE(array('file' => 'uploads/tx_xyz/'.$row['bild2'])); // das geht natürlich so :-)

          // Jetzt bitte die 2te WHILESCHLEIFE :-)

          $markerArray['###ALLEBILDER###']= ????????;

        $liste .= $this->cObj->substituteMarkerArrayCached($markerArray,array(),array());
            }
            $subpartArray['###ROW###']=$liste;
        } else {
            return $this->pi_getLL('nodata');
        }

        return $this->cObj->substituteMarkerArrayCached($subpart,$markerArray,array(),array());
    }

Ich hoffe Ihr könnt mir da auf die Sprünge helfen, sitze da schon seit Tagen dran.

Lieben Gruß
Andreas