Falls "Bilder-Lightbox erstellen" - Titel selber bestimmen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gandalf
    Contao-Fan
    • 04.03.2010
    • 367

    #16
    Vielen Dank ! Auch an Toflar !
    Funktioniert aber leider auch nicht ganz...bekomme nun folgendes Erscheinungsbild
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: screenshot_eintrag_änderung3.jpg
Ansichten: 1
Größe: 14,9 KB
ID: 915616
    Es fehlen nun die Felder welche vorher im Quelltext noch ausgegeben wurden. Aber leider immer das Bild drin steckte. Es wird nur das Bild augegeben.Hier die momentane Ansicht des Quelltextes (Auschnitt bei einem Item)
    HTML-Code:
    <div class="item  even">
    <!-- Hier jetzt ausgabe von Bildmetadaten und Titel zusammengebastelt mit einem img-Inserttag -->
    <a href="tl_files/website/img/2109907752_b705d47019_o.jpg" rel="lightbox"><img src="system/html/2109907752_b705d47019_o-56ca4921.jpg" alt="" /></a>
    </div>
    Die Ausgabe im Quellcode müsste doch irgendwie so erfolgen:
    HTML-Code:
    <div class="item even">
    <div class="field restaurant_titel">
    	<div class="label">Titel</div>
    	<div class="value"><h3>Test</h3></div>
    
    </div>
    <div class="field restaurant_adresse">
    	<div class="label">Adresse</div>
    	<div class="value"><p>Mustername<br />Musterstrasse<br />Musterort<br />Tel. XXX</p></div>
    </div>
    <div class="field restaurant_kurzbeschrieb">
    	<div class="label">Kurzbeschrieb</div>
    	<div class="value"><p>Lorem Ipsum</p></div>
    
    </div>
    <div class="field restaurant_bild">
    	<div class="label">Bild</div>
    	<div class="value"><span class="image first even"><!-- Hier jetzt ausgabe von Bildmetadaten und Titel zusammengebastelt mit einem img-Inserttag -->
    <a href="tl_files/website/img/2109907752_b705d47019_o.jpg" rel="lightbox"><img src="system/html/2109907752_b705d47019_o-56ca4921.jpg" alt="" /></a>
    </span></div>
    </div>
    <div class="field restaurant_bildtitel">
    	<div class="label">Bild Titel</div>
    	<div class="value">Hier steht der Bildtitel</div>
    </div>
    
    </div>
    Oder liege ich da total falsch? Die gewünschten sichbaren Felder habe ich im Modul auch ausgewählt...

    Kommentar

    • MacKP
      Contao-Yoda
      • 15.06.2009
      • 13315

      #17
      Hallo Gandalf,
      sorry... hat ein wenig gedauert.. wollte dich nicht hängen lassen.

      Hier mal der nächste Versuch:

      PHP-Code:
      <?php if (count($this->entries)): ?>
      
      <div class="layout_simple">
      
      <?php foreach ($this->entries as $entry): ?>
      <div class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>">
      
       <?php if($entry['data']['restaurant_bild']['value']):?>
      
      <!-- Hier jetzt ausgabe von Bildmetadaten und Titel zusammengebastelt mit einem img-Inserttag -->
      {{image::<?php echo $entry['data']['restaurant_bild']['files']['0']; ?>?width=<?php echo $entry['data']['restaurant_bild']['meta']['0']['w']; ?>&height=<?php echo $entry['data']['restaurant_bild']['meta']['0']['h']; ?>&alt=<?php echo $entry['data']['restaurant_bildtitel']['value']; ?>&mode=crop&rel=lightbox}}
      
      
      <?php elseif($entry['data']['restaurant_bildtitel']['value']):?>
      <!-- nix Ausgabe -->
      <?php else: ?>
      <?php foreach ($entry['data'] as $field=>$data): ?>
      <?php if (!in_array($field, array('catalog_name','parentJumpTo'))): ?>
      <div class="field <?php echo $field; ?>">
          <div class="label"><?php echo $data['label']; ?></div>
          <div class="value"><?php echo $data['value']; ?></div>
      </div>
      <?php endif; ?>
      <?php endforeach; ?>
      <?php endif; ?>
      
      
      <?php if ($entry['showLink'] && $entry['link']): ?>
      <div class="link"><?php echo $entry['link']; ?></div>
      <?php endif; ?>
      <?php if ($entry['linkEdit']): ?>
      <div class="linkEdit"><?php echo $entry['linkEdit']; ?></div>
      <?php endif; ?>
      </div>
      
      <?php endforeach; ?>
      </div>
       
      <?php else: ?>
      
      <?php if ($this->condition): ?>
      <div class="condition"><?php echo $this->condition; ?></div>
      <?php else: ?>
      <p class="info">There are no entries matching your search.</p>
      <?php endif; ?>
      
      <?php endif; ?>
      Ich hatte ausversehen in der 2. if-Abfrage noch mal das Bild und nicht den Bildtitel drinn...
      Versuch das bitte mal.

      Viele Grüße
      Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
      [Arbeitet bei -> Paus Design & Medien]
      "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

      Kommentar

      • Gandalf
        Contao-Fan
        • 04.03.2010
        • 367

        #18
        Ist nett von dir...Dankeschön !
        Leider ändert sich die Situation nicht. Das Bild erscheint und die Lightbox funktioniert ebenfalls.Alle anderen dem Item zugewiesenen Felder fehlen in der Ausgabe...

        Gruss Gandalf

        Kommentar

        • xtra
          Maintainer
          • 02.07.2009
          • 2007

          #19
          So, dann bau ich mal eben....
          PHP-Code:
          <?php if (count($this->entries)): ?>
          <div class="layout_simple">
          <?php foreach ($this->entries as $entry): ?>
          <div class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>">
          <?php foreach ($entry['data'] as $field=>$data): ?>
           <?php if($field=='restaurant_bild'):?>
          {{image::<?php echo $entry['data']['restaurant_bild']['files']['0']; ?>?width=<?php echo $entry['data']['restaurant_bild']['meta']['0']['w']; ?>&height=<?php echo $entry['data']['restaurant_bild']['meta']['0']['h']; ?>&alt=<?php echo $entry['data']['restaurant_bildtitel']['value']; ?>&mode=crop&rel=lightbox}}
          <?php elseif(!in_array($field, array('catalog_name','parentJumpTo'))):?>
          <div class="field <?php echo $field; ?>">
              <div class="label"><?php echo $data['label']; ?></div>
              <div class="value"><?php echo $data['value']; ?></div>
          </div>
          <?php endif; ?>
          <?php endforeach; ?>
          
          <?php if ($entry['showLink'] && $entry['link']): ?>
          <div class="link"><?php echo $entry['link']; ?></div>
          <?php endif; ?>
          <?php if ($entry['linkEdit']): ?>
          <div class="linkEdit"><?php echo $entry['linkEdit']; ?></div>
          <?php endif; ?>
          </div>
          
          <?php endforeach; ?>
          </div>
           
          <?php else: ?>
          
          <?php if ($this->condition): ?>
          <div class="condition"><?php echo $this->condition; ?></div>
          <?php else: ?>
          <p class="info">There are no entries matching your search.</p>
          <?php endif; ?>
          
          <?php endif; ?>
          Grysse
          Chris
          Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

          Kommentar

          • Gandalf
            Contao-Fan
            • 04.03.2010
            • 367

            #20
            Hammer !!! Nun funktioniert es wirklich wie gewünscht...Yupiiiiiii!!!!!!!!!!!

            Ich möchte einfach mal was loswerden. Es ist einfach genial wie hier einem geholfen wird. Seinesgleichen kann man suchen Vielen Dank für euren Einsatz und die Geduld mit mir.
            Manchmal versucht und versucht man, kommt aber nicht wirklich weiter...da ist es schön wenn jemand weiterhelfen kann ! HERZLICHEN DANK !

            PS: Habe im Quelltext festgestellt, dass das Bild keinen
            HTML-Code:
            <div class="field restaurant_bild">
            </div>
            Container mitbekommt. Wegen dem ansprechen per CSS. Konnte ich aber anpassen.

            Gandalf
            Zuletzt geändert von Gandalf; 22.06.2010, 17:47.

            Kommentar

            • MacKP
              Contao-Yoda
              • 15.06.2009
              • 13315

              #21
              Super!

              Danke @ Xtra das du dich hier eingeklingt hast ;-)

              Dann werd ich das die Tage mal einfach ins Wiki kopieren. Wird sicher der ein oder andere noch so gebrauchen können

              Viele Grüße
              Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
              [Arbeitet bei -> Paus Design & Medien]
              "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

              Kommentar

              • xtra
                Maintainer
                • 02.07.2009
                • 2007

                #22
                Mit container sieht das Ganze dann so aus (hab obendrein noch ein bissel unnoetigen array ballast entfernt, was es etwas kyrzer macht):
                PHP-Code:
                <?php if (count($this->entries)): ?>
                <div class="layout_simple">
                <?php foreach ($this->entries as $entry): ?>
                <div class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''; ?>">
                <?php foreach ($entry['data'] as $field=>$data): ?>
                <div class="field <?php echo $field; ?>">
                 <?php if($field=='restaurant_bild'):?>
                {{image::<?php echo $data['files']['0']; ?>?width=<?php echo $data['meta']['0']['w']; ?>&height=<?php echo $data['meta']['0']['h']; ?>&alt=<?php echo $data['value']; ?>&mode=crop&rel=lightbox}}
                <?php elseif(!in_array($field, array('catalog_name','parentJumpTo'))):?>
                    <div class="label"><?php echo $data['label']; ?></div>
                    <div class="value"><?php echo $data['value']; ?></div>
                <?php endif; ?>
                </div>
                <?php endforeach; ?>
                
                <?php if ($entry['showLink'] && $entry['link']): ?>
                <div class="link"><?php echo $entry['link']; ?></div>
                <?php endif; ?>
                <?php if ($entry['linkEdit']): ?>
                <div class="linkEdit"><?php echo $entry['linkEdit']; ?></div>
                <?php endif; ?>
                </div>
                
                <?php endforeach; ?>
                </div>
                 
                <?php else: ?>
                
                <?php if ($this->condition): ?>
                <div class="condition"><?php echo $this->condition; ?></div>
                <?php else: ?>
                <p class="info">There are no entries matching your search.</p>
                <?php endif; ?>
                
                <?php endif; ?>
                Grysse
                Chris
                Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

                Kommentar

                • Gandalf
                  Contao-Fan
                  • 04.03.2010
                  • 367

                  #23
                  Hallo xtra
                  Habe nun mal deine Version bei mir getestet. Nun sieht die Ausgabe des Bildcontainer folgendermassen aus
                  HTML-Code:
                  <div class="field restaurant_bild">
                   <a href="#" title="&lt;span class" rel="lightbox"><img src="#" alt="&lt;span class" /></a>
                  </div>
                  Da stimmt was noch nicht so ganz
                  Gruss Gandalf

                  Kommentar

                  • xtra
                    Maintainer
                    • 02.07.2009
                    • 2007

                    #24
                    Das kann eigentlich nicht sein, denn das Einzige was ich noch gemacht habe ist eben die Erwsetzung des langen Ausdrucks
                    PHP-Code:
                    $entry['data']['restaurant_bild'] 
                    
                    durch
                    PHP-Code:
                    $data 
                    
                    Was der Theorie nach funktionieren mysste. *wunder*
                    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

                    Kommentar

                    • Gandalf
                      Contao-Fan
                      • 04.03.2010
                      • 367

                      #25
                      Du hast recht.
                      Die Anzeige im Quellcode war wie bei mir oben aufgeführt.
                      Habe versucht mal dem Fehler auf die Schliche zu kommen. Habe den Cache gelöscht und siehe da - die Ausgabe ist nun korrekt
                      Auch ohne das hinzufügen des CSS-Containers

                      Danke! Gandalf

                      Kommentar

                      • cubano
                        Contao-Nutzer
                        • 10.09.2009
                        • 107

                        #26
                        Hallo Leute

                        Ich will auch für die Lightbox einen Titel statt dem Bildnamen ausgeben.
                        Bei der Ausgabe von nur einem Bild habe ich das auch erfolgreich gelöst:
                        PHP-Code:
                        <?php if ($data['type'] == 'file'): ?>
                        <?php foreach ($data['meta'] as $metafield=>$metadata): ?>
                        <a rel="lightbox[<?php echo $metadata['lb']; ?>]" href="<?php echo $data['raw']; ?>" title="<?php echo $entry[data]['title']['value']; ?>"><img src="<?php echo $metadata['src']; ?>" alt="<?php echo $entry[data]['title']['value']; ?>" width="<?php echo $metadata['w']; ?>" height="<?php echo $metadata['h']; ?>" /></a><?php endforeach; ?>
                        <?php else: ?>
                        Mein Problem ist nun aber, wie man das lösen kann, wenn nicht nur 1 Bild, sondern 1 ganzer Ordner mit mehr als 20 Fotos ausgewählt wird. Da bekomme ich das href nicht richtig hin:

                        PHP-Code:
                        [foto_galerie] => Array
                                                (
                                                    [label] => Fotogalerie
                                                    [type] => file
                                                    [raw] => a:1:{i:0;s:30:"tl_files/images/objekte/muster";}
                                                    [value] => <span class="image first even"><a rel="lightbox[lbcatalogreader0]" title="Ib p015 1 1" href="tl_files/images/objekte/muster/ib_p015_1_1.jpg"><img src="system/html/ib_p015_1_1-fa1bdfef.jpg" alt="Ib p015 1 1" width="132" height="88" /></a></span><span class="image odd"><a rel="lightbox[lbcatalogreader0]" title="Ib p015 1 10" href="tl_files/images/objekte/muster/ib_p015_1_10.jpg"><img src="system/html/ib_p015_1_10-b7e373e7.jpg" alt="Ib p015 1 10" width="132" height="88" /></a></span><span class="image even"><a rel="lightbox[lbcatalogreader0]" title="Ib p015 1 11" href="tl_files/images/objekte/muster/ib_p015_1_11.jpg"><img src="system/html/ib_p015_1_11-7c434622.jpg" alt="Ib p015 1 11" width="132" height="88" /></a></span>
                                                    [files] => Array
                                                        (
                                                            [0] => tl_files/images/objekte/muster/ib_p015_1_1.jpg
                                                            [1] => tl_files/images/objekte/muster/ib_p015_1_10.jpg
                                                            [2] => tl_files/images/objekte/muster/ib_p015_1_11.jpg
                                                            [3] => tl_files/images/objekte/muster/ib_p015_1_12.jpg
                                                        )
                        
                                                    [meta] => Array
                                                        (
                                                            [0] => Array
                                                                (
                                                                    [src] => system/html/ib_p015_1_1-fa1bdfef.jpg
                                                                    [alt] => Ib p015 1 1
                                                                    [lb] => lbcatalogreader0
                                                                    [w] => 132
                                                                    [h] => 88
                                                                    [wh] => width="132" height="88"
                                                                    [caption] => 
                                                                    [metafile] => 
                                                                )
                        
                                                            [1] => Array
                                                                (
                                                                    [src] => system/html/ib_p015_1_10-b7e373e7.jpg
                                                                    [alt] => Ib p015 1 10
                                                                    [lb] => lbcatalogreader0
                                                                    [w] => 132
                                                                    [h] => 88
                                                                    [wh] => width="132" height="88"
                                                                    [caption] => 
                                                                    [metafile] => 
                                                                )
                        
                                                            [2] => Array
                                                                (
                                                                    [src] => system/html/ib_p015_1_11-7c434622.jpg
                                                                    [alt] => Ib p015 1 11
                                                                    [lb] => lbcatalogreader0
                                                                    [w] => 132
                                                                    [h] => 88
                                                                    [wh] => width="132" height="88"
                                                                    [caption] => 
                                                                    [metafile] => 
                                                                )
                        
                                                            [3] => Array
                                                                (
                                                                    [src] => system/html/ib_p015_1_12-5a899938.jpg
                                                                    [alt] => Ib p015 1 12
                                                                    [lb] => lbcatalogreader0
                                                                    [w] => 132
                                                                    [h] => 88
                                                                    [wh] => width="132" height="88"
                                                                    [caption] => 
                                                                    [metafile] => 
                                                                )
                        
                                                        )
                        
                                                ) 
                        
                        Hat da jemand eine Lösung oder gibts ne einfachere Variante?
                        Vielen Dank

                        Kommentar

                        • MacKP
                          Contao-Yoda
                          • 15.06.2009
                          • 13315

                          #27
                          Hallo cubano,
                          warum machst du das dann nicht über eine meta.txt Datei?
                          Die kannst du ja ganz einfach mit dem http://www.contao.org/erweiterungsli...000009.de.html erstellen.

                          Wenn du das nicht möchtest, wirds relativ kompliziert, da du ja die Namen irgendwo angeben musst. Bei einer x beliebigen Anzahl von Bildern musst du also irgend etwas machen um für jedes eine Eingabe machen zu könnnen. Das könntest du mit dem Multitextwizard versuchen (wobei du da ne xml Ausgabe hast, die du dann den Bildern zuweisen musst per Hand).
                          Nicht gerade das Gelbe vom Ei.

                          Was du auch noch versuchen könntest, wäre nen extra Katalog für die Bilder erstellen, wo edes Item nur ein Bild ist. Die dann den anderen Einträgen zuweisen und die dann verknüpfen...

                          Zum Schluss hätte ich noch eine Grundlegende Hilfestellung für dich beim Umgang mit Bildergalerieen im Catalog: http://de.contaowiki.org/Catalog_Tem...vorhanden_sind

                          Viele Grüße
                          Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
                          [Arbeitet bei -> Paus Design & Medien]
                          "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

                          Kommentar

                          • cubano
                            Contao-Nutzer
                            • 10.09.2009
                            • 107

                            #28
                            Hallo MacKP

                            Vielen Dank für deine Antwort!
                            Ich brauche pro Objekt für alle Fotos immer den gleichen Titel und ich wusste nicht, wie ich die Angaben aus dem meta (src) mit denen aus dem files (href) übereinstimmend übernehmen konnte. Mittlerweile konnte ich es aber lösen

                            PHP-Code:
                            <?php foreach ($data['meta'] as $metafield=>$metadata): ?>
                            <a rel="lightbox[<?php echo $metadata['lb']; ?>]" href="<?php echo $data['files'][$metafield]; ?>" title="<?php echo $entry[data]['title']['value']; ?>"><img src="<?php echo $metadata['src']; ?>" alt="<?php echo $entry[data]['title']['value']; ?>" width="<?php echo $metadata['w']; ?>" height="<?php echo $metadata['h']; ?>" /></a>
                            <?php endforeach; ?>
                            Danke nochmals und Gruss
                            cubano

                            Kommentar

                            Lädt...