Contao-Camp 2024
Ergebnis 1 bis 21 von 21

Thema: Galerie mit Download der Originaldaten?

  1. #1
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Beiträge
    173

    Standard Galerie mit Download der Originaldaten?

    Liebe Community,

    ich suche nach einer Möglichkeit, unter den Vorschaubildern der Galerie einen Downloadlink für die Originaldaten des Bildes aus der Dateiverwaltung einzusetzen.

    Hat das jemand schon mal gemacht und einen Tipp, wie man z.B. das Galerietemplate erweitern könnte?

    1000 Dank & viele Grüße!

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.031
    Partner-ID
    10107

    Standard

    Hm, ich denke bei einer automatischen Lösung kommst du hier schnell an die Arbeitsspeichergrenze (ich vermute mal, dass der Download Link ein Archiv sein soll).

  3. #3
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Beiträge
    173

    Standard

    Hallo Spooky,

    vielen Dank für die schnelle Antwort.

    Es soll zu jedem Bild ein eigener Link zu den jeweiligen Originaldaten generiert werden. Ich wüsste nicht, wie das den Speicher belastet?

    Ganz laienhaft gesprochen stelle ich mir eine Funktion vor, die im Gallery Template den dort vorgesehenen Link modifiziert, so das etwas rauskommt wie unten gezeigt:

    HTML-Code:
    <a href="/files/unterverzeichnis_bilder/das-ist-die-datei.jpg"<?php echo $col->attributes; ?> title="<?php echo $col->alt; ?>"><?php $this->insert('picture_default', $col->picture); ?></a>

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.031
    Partner-ID
    10107

    Standard

    Achsoo, unter jedem einzelnen Bild . Naja, eigenes gallery_default Template mit folgendem Inhalt zB:
    PHP-Code:
    <ul class="cols_<?php echo $this->perRow?>">
      <?php foreach ($this->body as $class=>$row): ?>
        <?php foreach ($row as $col): ?>
          <?php if ($col->addImage): ?>
            <li class="<?php echo $class?> <?php echo $col->class?>">
              <figure class="image_container"<?php if ($col->margin): ?> style="<?php echo $col->margin?>"<?php endif; ?>>
                <?php if ($col->href): ?>
                  <a href="<?php echo $col->href?>"<?php echo $col->attributes?> title="<?php echo $col->alt?>"><?php $this->insert('picture_default'$col->picture); ?></a>
                <?php else: ?>
                  <?php $this->insert('picture_default'$col->picture); ?>
                <?php endif; ?>
                <figcaption class="caption"><?php echo $col->caption?><?php if ($col->caption): ?><br/><?php endif; ?><a href="<?php echo $col->singleSRC?>"><?php echo $col->alt?></a></figcaption>
              </figure>
            </li>
          <?php endif; ?>
        <?php endforeach; ?>
      <?php endforeach; ?>
    </ul>
    Damit hast du in der <figcaption> auch immer einen Direktlink zum Original.
    Geändert von Spooky (14.10.2015 um 11:42 Uhr)

  5. #5
    Contao-Nutzer
    Registriert seit
    21.08.2009.
    Beiträge
    165

    Standard

    Hallo brain1965,

    ich habe das mit Bordmitteln umgesetzt (galerie und downloads).

    Die Bilder in der Galerie sind in Größe und Auflösung für das Anschauen im Web erstellt und in die Galerie gepackt:
    800x600px, 72dpi

    Zum Download habe ich die Bilder in einer Auflösung von 600dpi und in Originalgröße in das Element Downloads gepackt.

    Ein Beispiel, wie es aussehen könnte.

    Peter

  6. #6
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Beiträge
    173

    Lachendes Gesicht Wow!

    Hallo Spooky, hallo Peter64,

    großartig, hammermäßige und superschnelle Unterstützung! Der Tag ist gerettet
    Die Lösung von Spooky klappt schon mal (genau was ich wollte), die andere Version schau ich mir noch an.

    Auf jeden Fall schon mal Hut ab und herzlichen Dank!!

    Viele Grüße,
    Frank

  7. #7
    Contao-Nutzer Avatar von eddy
    Registriert seit
    20.03.2011.
    Beiträge
    154

    Frage

    Hallo zusammen,

    ich habe jetzt ein auch ein neues Template erstellt mit Spookys Quelltext. Wenn ich jetzt ins FE gehe zeigt er mir die Bilder mit dem Link auch an aber es steht rund um die Bilder sehr viel Quelltext.

    Mache ich etwas falsch?Unbenannt-1.jpg

    Gruß
    Eddy

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.031
    Partner-ID
    10107

    Standard

    Poste einen Link zur Seite und das Template.

  9. #9
    Contao-Nutzer Avatar von eddy
    Registriert seit
    20.03.2011.
    Beiträge
    154

    Standard

    Nachstehend der Quellcode
    Code:
    <ul class="cols_<?php echo $this->perRow; ?>">
      <?php foreach ($this->body as $class=>$row): ?>
        <?php foreach ($row as $col): ?>
          <?php if ($col->addImage): ?><?php var_dump($col); ?>
            <li class="<?php echo $class; ?> <?php echo $col->class; ?>">
              <figure class="image_container"<?php if ($col->margin): ?> style="<?php echo $col->margin; ?>"<?php endif; ?>>
                <?php if ($col->href): ?>
                  <a href="<?php echo $col->href; ?>"<?php echo $col->attributes; ?> title="<?php echo $col->alt; ?>"><?php $this->insert('picture_default', $col->picture); ?></a>
                <?php else: ?>
                  <?php $this->insert('picture_default', $col->picture); ?>
                <?php endif; ?>
                <figcaption class="caption"><?php echo $col->caption; ?><?php if ($col->caption): ?><br/><?php endif; ?><a href="<?php echo $col->singleSRC; ?>"><?php echo $col->alt; ?></a></figcaption>
              </figure>
            </li>
          <?php endif; ?>
        <?php endforeach; ?>
      <?php endforeach; ?>
    </ul>
    Da ich die Gallerie wieder auf das normale Template umgestellt habe( die Seite ist bereits online) wird der Link jetzt bestimmt nichts nützen.

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.031
    Partner-ID
    10107

    Standard

    Ah, entferne einfach das
    PHP-Code:
    <?php var_dump($col); ?>
    . Das hatte ich irrtümlich drin gelassen.

  11. #11
    Contao-Nutzer Avatar von eddy
    Registriert seit
    20.03.2011.
    Beiträge
    154

    Standard

    Vielen, vielen Dank!

  12. #12
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.466
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wunderbar, eben gesucht und das gefunden.
    Funktioniert auch unter 4.7.6 wunderbar.

    Inwieweit kann man den Code ergänzen, damit nicht nur das Bild in einem neuen Fenster geöffnet wird, sondern sich der Sichern-Dialog des jeweiligen OS öffnet?
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.031
    Partner-ID
    10107

    Standard

    Dafür gibt es ein HTML Attribut, welches von manchen Browsern unterstützt wird. Ansonsten bräuchtest du einen eigenen Controller, der den Download forciert (geht ab Contao 4.7 oder 4.8 auch über das Downloads Inhaltselement).

  14. #14
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Hallo,

    ich habe mir den Downloadpfad hardcoded reingesetzt (?file= Link für Direktdownload), da er vom Vorschaubild in der Galerie abweicht. Meine Frage wäre nun, wie ich das sinnvoller schreiben könnte?

    Code:
                <figcaption class="caption"><a href="/bestellung/?file=files/bilder/bestellung/2019/original/<?php echo $col->alt; ?>.jpg" title="Die Datei <?php echo $col->alt; ?>.jpg herunterladen"><?php echo $col->alt; ?></a></figcaption>
    Danke für Ideen,

    ToM

  15. #15
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Ich habe es jetzt so gelöst, völlig ausreichend, da es alle 2 Jahre nur Verwendung findet (und zudem im internen Bereich ist)...

    HTML-Code:
    <ul class="cols_<?= $this->perRow ?>" itemscope itemtype="http://schema.org/ImageGallery">
      <?php foreach ($this->body as $class => $row): ?>
        <?php foreach ($row as $col): ?>
          <?php if ($col->addImage): ?>
            <li class="<?= $class ?> <?= $col->class ?>">
              <figure class="image_container"<?php if ($col->margin): ?> style="<?= $col->margin ?>"<?php endif; ?>>
                <?php if ($col->href): ?>
                  <a href="<?= $col->href ?>"<?= $col->attributes ?><?php if ($col->linkTitle): ?> title="<?= $col->linkTitle ?>"<?php endif; ?>><?php $this->insert('picture_default', $col->picture); ?></a>
                    <?php
                      $file = \Input::get('file', true);
                      $myFile = \FilesModel::findByPath($file);
                      // Send the file to the browser and do not send a 404 header (see #4632)
                      if ($file != '' && null !== $myFile) {
                        $allowedDownload = trimsplit(',', strtolower(\Config::get('allowedDownload')));
                        if (in_array($myFile->extension, $allowedDownload))    {
                          \Controller::sendFileToBrowser($file);
                        }
                      }
                    ?> 
                  <figcaption class="caption">
                    <a href="/?file=<?= $col->singleSRC; ?>" title="Datei herunterladen"><?= $col->alt; ?></a>
                  </figcaption>
                <?php endif; ?>
              </figure>
            </li>
          <?php endif; ?>
        <?php endforeach; ?>
      <?php endforeach; ?>
    </ul>
    ToM

    Edith sagt: hier die Lösung!
    Geändert von Nightwing (25.02.2020 um 19:12 Uhr)

  16. #16
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Zitat Zitat von planepix Beitrag anzeigen
    Inwieweit kann man den Code ergänzen, damit nicht nur das Bild in einem neuen Fenster geöffnet wird, sondern sich der Sichern-Dialog des jeweiligen OS öffnet?
    Das tut bei mir, aber nur bei einer Seite?!?
    An der Größe kanns nicht liegen, denn auf Server A tut es, Server B leitet nur weiter, kein Download?!?

    Wie Spooky geschrieben hat, hab ich den eigenen Controller eingebaut:

    HTML-Code:
    <?php
      $file = \Input::get('file', true);
      $myFile = \FilesModel::findByPath($file);
      // Send the file to the browser and do not send a 404 header (see #4632)
      if ($file != '' && null !== $myFile) {
        $allowedDownload = trimsplit(',', strtolower(\Config::get('allowedDownload')));
        if (in_array($myFile->extension, $allowedDownload))    {
          \Controller::sendFileToBrowser($file);
        }
      }
    ?> 
    <ul class="cols_<?= $this->perRow ?>" itemscope itemtype="http://schema.org/ImageGallery">
      <?php foreach ($this->body as $class => $row): ?>
        <?php foreach ($row as $col): ?>
          <?php if ($col->addImage): ?>
            <li class="<?= $class ?> <?= $col->class ?>">
              <figure class="image_container"<?php if ($col->margin): ?> style="<?= $col->margin ?>"<?php endif; ?>>
                <?php if ($col->href): ?>
                  <a href="<?= $col->href ?>"<?= $col->attributes ?><?php if ($col->linkTitle): ?> title="<?= $col->linkTitle ?>"<?php endif; ?>><?php $this->insert('picture_default', $col->picture); ?></a>
                  <figcaption class="caption">
                    <a href="/?file=<?= $col->singleSRC; ?>" title="Datei herunterladen"><?= $col->alt; ?></a>
                  </figcaption>
                <?php endif; ?>
              </figure>
            </li>
          <?php endif; ?>
        <?php endforeach; ?>
      <?php endforeach; ?>
    </ul>
    Der Fehler kann ja fast nur hier sein? Merkwürdig ist: Rechte Mausetaste und Ziel speichern unter bei fehlerhaftem Verhalten: es speichert mir ne .htm Datei mit quasi dem Quelltext der Seite?!?

    ToM
    Geändert von Nightwing (25.02.2020 um 23:26 Uhr)

  17. #17
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    So, lange Versuchsreihe beendet, ich bin (k)einen Schritt weiter, nur der Wahnsinn klopft schon an
    Ich habe an mehreren aktuellen Installationen (Seite plus Testumgebung) das Template eingefügt --> funktioniert.
    Auf eben einer Seite (plus Testumgebung), wie bereits im Post zuvor, tut es nicht.

    Am Webspace / Hoster all-inkl kann es nicht liegen, denn sonst dürfte mein dort angelegter Unteraccount nicht tun, tut aber.
    Vorhin dann imselben Account, wo der Fehler entsteht, eine komplette Neuinstallation: Seitenlayout angelegt, Startpunkt angelegt, 3 Bilder per Dateisystem hochgeladen, Testseite mit Galerie und besagtem Template erstellt: Download funktioniert...

    Okay Watson, ich kombiniere: es muss ja dann an irgendwelchen Einstellungen liegen...
    Nach und nach localconfig, config.yaml, meine DCA, .htaccess hinzugefügt, dazwischen immer Systemwartung / Browsercache und Cache per CM löschen.
    Jetzt dr Knaller: Download funktioniert...

    Jetzt die Meisterfrage: an WAS bitte könnte es noch liegen, das obiges Template statt Dateidownload mir nur da ein *.htm Dokument liefert?

    ToM

  18. #18
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.031
    Partner-ID
    10107

    Standard

    Poste einen Link zur Seite.

  19. #19
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    I hab den Fehler!
    Vor dem Posten des Links hab ich testweise eine Galerie auf der Startseite angelegt, da die normalerweise im internen Bereich ist.
    Auf der Öffentlichen Startseite tut es.
    Meine Frage wäre nun: wie kann ich das im Code vom Template entsprechend ändern?

    ToM
    Geändert von Nightwing (27.02.2020 um 21:52 Uhr)

  20. #20
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.031
    Partner-ID
    10107

    Standard

    Ich verstehe nicht was du meinst. Poste einen Link zur Seite, wo man den Fehler sieht.

  21. #21
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Sie haben Post

    ToM
    Geändert von Nightwing (28.02.2020 um 11:33 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •