Eigene Extension - Mehrere Fotos auslesen

  • Kopfduell Kopfduell
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    20. 04. 2011, 16:59

    Hallo alle zusammen,

    ich hoffe der ein oder andere "Extension Profi" kann mir bei meinem Problem weiterhelfen: Ich habe mich jetzt auch mal getraut eine eigene Extension zu schreiben und bin erstaunlicher Weise schon recht weit gekommen. Das Frontend Plugin soll eine Art Mitarbeiter Plugin sein, bei dem neben ein paar trivialen Variablen (Name, Alter, etc.) auch [b]mehrere[/b] Fotos pro Mitarbeiter gespeichert/ausgelesen werden sollen. Dafür habe ich im Kickstarter ein Feld des Typs "Files" gewählt.
    Funktioniert soweit auch ganz gut. In der Datenbank werden die URLs der Originalbilder hinterlegt. Das Problem ist die Ausgabe, ich bin zu schwach in PHP um die einzelnen Fotos mehreren Variablen zuzuweisen. In meiner _pi1.php steht folgendes

    1. ...
    2. $fotos = $row["fotos"];
    3. if ( empty($fotos) ) {
    4. $fotos = "";
    5. }
    6. else {
    7. $fotos = "<div class='big_pic'><img src='uploads/tx_actornism/".$fotos."' /></div>\r\t\t\t";
    8. }
    9. ...

    ergibt in der Ausgabe logischerweise

    1. <div class="big_pic"><img src="uploads/tx_actornism/bild_1.jpg,bild_2.jpg,bild_3.jpg"></div>

    Funktioniert natürlich nur, wenn nur ein einziges Bild abgespeichert wird.

    Ich brauche aber am Ende die Variablen $foto1, $foto2,..., $fotoX, die dann die jeweiligen Bilder referenzieren, alá:

    1. <div class="big_pic"><img src="uploads/tx_actornism/bild_1.jpg"></div>
    2. <div class="big_pic"><img src="uploads/tx_actornism/bild_2.jpg"></div>
    3. <div class="big_pic"><img src="uploads/tx_actornism/bild_3.jpg"></div>
    4.  
    5. usw.

    Außerdem würde ich auch gerne die referenzierten Bilder nur als Thumbnails darstellen, die dann auf das Originalbild linken. Eigentlich ähnlich wie bei dem typischen Seiteninhalt "Nur Bilder", nur halt ohne die ganzen Zusatzklassen und mit Link auf die Originalfiles.

    Hat irgendjemand einen Lösungsansatz, bzw. einen hilfreichen Tutoriallink? Hab mich jetzt schon halb wahnsinnig gesucht und nix gefunden...für jeden Hinweis bin ich also sehr sehr dankbar!

    Beste Grüße


  • 1
  • vince vince
    Sternenflotten-Admiral
    0 x
    180 Beiträge
    6 Hilfreiche Beiträge
    20. 04. 2011, 17:58

    Hallo,

    Versuch's mal so:

    1. $foto_array = explode (",",$row["fotos"]);

    dann steht in $foto_array[0]z.B. bild_1.jpg, in $foto_array[1]steht bild_2.jpg usw.

    Dann gibt's zwei Möglichkeiten.

    1)Alles in eine Variable:

    1. $fotos = "";
    2. foreach ($foto_array as $foto)
    3. {
    4. $fotos.='<div class="big_pic"><img src="uploads/tx_actornism/'.$foto.'"></div>';
    5.  
    6. }

    2)Arbeitest Du mit einem Template? Dann kann man ein Subpart Template verwenden. Außerdem gibt's zum Bilder einbinden die Typo3-API
    (dafür am besten mal ein Tutorial anschauen)

    Gruß,

    Vince.

  • Kopfduell Kopfduell
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    21. 04. 2011, 11:31

    Hey Vince,

    danke erst mal! Der "explode" Befehl, das array und die foreach - Schleife waren bei mir der Knackpunkt mit dem ich einfach nicht weitergekommen bin. Funktioniert jetzt einwandfrei, die Bilder werden in Originalgröße angezeigt.

    Mit einem speziellen Plugin - Template arbeite ich nicht. Ich weiß, ich weiß, ist gegen das Typo3 Prinzip, aber irgendwie finde ich das für mein kleines Plugin völlig ok, den gesamten Html Code in $content zu speichern und direkt auszugeben. Zumal fast alle Felder des Plugins optional sind, s.d. ich die komplette Ausgabe über die "if...else" Schleifen in der _pi1.php lenke.

    Was mich jetzt noch brennend interessiert, ist das generieren der Thumbnails. Kann man das auch direkt in der _pi1.php machen, oder benötige ich da in jedem Fall die Typo3-API? Hast Du einen Link zu einem bestimmten Tutorial?

    Am Ende soll der HTML Code dann ungefähr so aussehen:

    1. <div class="thumbnailomat"><a id="foto_1_k" href="foto_gross_1.jpg" target="self"><img src="foto_klein_1.jpg"/></a></div>
    2.  
    3. <div class="thumbnailomat"><a id="foto_2_k" href="foto_gross_2.jpg" target="self"><img src="foto_klein_2.jpg"/></a></div>

    DAAANKE für jeden Tipp!

  • vince vince
    Sternenflotten-Admiral
    0 x
    180 Beiträge
    6 Hilfreiche Beiträge
    21. 04. 2011, 11:55

    Hallo,

    Hier schonmal ein tutorial für Extension Programmierung:
    http://www.traum-projekt.com/forum/73-workshops-und-tutorials/101411-workshop-typo3-extension-programmierung.html

    Wegen der Thumbnails:

    Du könntest z.B. ein 2. DB Feld anlegen, wo die Thumbnails reinkommen.
    (dann beim einfügen aber auf die Reihenfolge achten)

    kleiner Tipp: mit der php Funktion is_file() kannst Du überprüfen, ob die Datei existiert.

  • 1