Contao-Camp 2024
Ergebnis 1 bis 16 von 16

Thema: Bildname in den Titel kopieren

  1. #1
    Contao-Fan Avatar von Zille
    Registriert seit
    23.12.2015.
    Beiträge
    570

    Standard Bildname in den Titel kopieren

    Moin,
    öfters muss ich Galerien anlegen, bei denen Bildnamen und Titel gleich sein sollen. Das ist wichtig, damit Kunden die richtige Bilder bestellen können. So weit, so langweilig.
    Aber richtig langweilig wird es, wenn die Galerie mehr als 100 Bilder umfasst, wie es bei Hochzeiten üblich ist. Da jeweils den Namen zu kopieren und im Titel einfügen … och nö.
    Gibt es dafür ein Tool, das die Arbeit vereinfachen könnte?!

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.935

    Standard

    Das sollte sich doch durch eine Anpassung am Template machen lassen, das bei der Ausgabe verwendet wird: Dort, wo der Titel ausgegeben wird, den Dateineman (Bildnamen?) ausgeben lassen.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Fan Avatar von Zille
    Registriert seit
    23.12.2015.
    Beiträge
    570

    Standard

    Na ja, jetzt wo du es schreibst …
    Danke, schaue ich mir an.

  4. #4
    Contao-Fan Avatar von Zille
    Registriert seit
    23.12.2015.
    Beiträge
    570

    Standard

    Es ist – auf Grund meiner PHP-UNkenntniss – dann doch nicht so einfach …

    Mir scheint, man muss als erstes im Template 'gallery_default' ein angepasstes Template 'picture_default' aufrufen.
    Die Anpassung vom 'picture_default' selbst erfolgt dann in Zeile 11 bei dem Teil von
    PHP-Code:
    <?php if ($this->title) echo ' title="' $this->title '"'?>
    richtig? Aber was muss dort eingetragen werden? Es soll IMMER der Bildname an Stelle des Titels angezeigt werden (also auch dann, wenn das Feld von Titel leer ist).

    Kann mir bitte an dieser Stelle jemand den richtigen PHP-Code verraten?
    Danke.

  5. #5
    Contao-Fan Avatar von JMMB
    Registriert seit
    08.03.2012.
    Beiträge
    260
    User beschenken
    Wunschliste

    Standard

    Hallo,

    im Template picture_default gibt es keine Variable die nur den Bildnamen enthält.

    Im Template gallery_dafault hingegen schon. Da muss dann aber der Teil

    PHP-Code:
    <?php $this->insert('picture_default'$col->picture); ?>
    ersetzt werden.

    Du kannst das Picture selber generieren, das käme dann an die Stelle:

    PHP-Code:
        <?php 
                  $image_path 
    $col->src
                  
    $image = \Picture::create($image_path6)->getTemplateData();
                  
    $image['title'] = $col->linkTitle;
                  
    $this->insert('picture_default'$image); 
                  
    ?>
    Die "6" steht hier für die ID einer im Backend definierten Bildgröße, damit kannst Du dann auch die Boardmittel nutzen um Bildgrößen zu definieren.
    Den Image Title überschreibst Du dann mit dem linkTitle, der enthält den Dateinamen.

    So habe ich es in einer 4.4 er Version.

    Ob es der optimale Weg ist weiß ich nicht, funktioniert aber.


    Hoffe es hilft weiter.
    Geändert von JMMB (15.12.2023 um 07:16 Uhr)

  6. #6
    Contao-Fan Avatar von Zille
    Registriert seit
    23.12.2015.
    Beiträge
    570

    Standard

    Besten Dank für den Vorschlag – aber da funktioniert nix (es ändert sich gar nichts).
    Bei mir ist es Version 4.7.6

    Ich habe das Template gallery_dafault kopiert, umbenannt und dann die Veränderung eingesetzt.
    PHP-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) echo ' title="' $col->linkTitle '"'?>><?php $this->insert('picture_default'$col->picture); ?></a>
                <?php else: ?>
                  <?php 
                    $image_path 
    $col->src
                    
    $image = \Picture::create($image_path6)->getTemplateData();
                    
    $image['title'] = $col->linkTitle;
                    
    $this->insert('picture_default'$image); 
                  
    ?>
                <?php endif; ?>
                <?php if ($col->caption): ?>
                  <figcaption class="caption"><?= $col->caption ?></figcaption>
                <?php endif; ?>
              </figure>
            </li>
          <?php endif; ?>
        <?php endforeach; ?>
      <?php endforeach; ?>
    </ul>
    Danach habe ich in der gewünschten Gallery unter Template-Einstellungen/Galerietemplate das soeben geänderte Template ausgewählt und gespeichert. Auch nach Systemwartung (um Chach zu leeren) gibt es keinerlei Veränderung. Hm.

    Ebenso verstehe ich nicht im geringsten, weshalb ich die Bildgröße ändern soll oder könnte. Funktioniert der vorgeschlagene Weg eventuell nicht, weil ich dafür keine extra Bildgröße definiert habe?! Diese Zusatzfunktion verwirrt … ich möchte nur, dass der Dateiname an der Stelle des Titels erscheint.

  7. #7
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    JMMB hatte geschrieben
    Zitat Zitat von JMMB Beitrag anzeigen
    Da muss dann aber der Teil

    PHP-Code:
    ?php $this->insert('picture_default'$col->picture); ?> 
    ersetzt werden.
    Da du den neuen Code in ein else geschrieben hast, wird er wohl nicht ausgeführt.

  8. #8
    Contao-Fan Avatar von Zille
    Registriert seit
    23.12.2015.
    Beiträge
    570

    Standard

    Aha.
    Und? Wie ist es richtig?

  9. #9
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Wie kann man das besser beschreiben?

    Du ersetzt in der langen Zeile den Teil
    <?php $this->insert('picture_default', $col->picture); ?>
    durch den von JMMB angegebenen Code...

  10. #10
    Contao-Fan Avatar von Zille
    Registriert seit
    23.12.2015.
    Beiträge
    570

    Standard

    Zitat Zitat von folkfreund Beitrag anzeigen
    Wie kann man das besser beschreiben?

    Du ersetzt in der langen Zeile den Teil …
    Ahja, also in der längeren Zeile … das war nicht ersichtlich. Es lag vielmehr nahe den Code der anderen Zeile zu ändern, da dort eben auch der selbige und nichts anderes steht. Wie auch immer, ich habe es getan, und tatsächlich bewegt sich etwas.

    • Die Thumbnails werden ungewollt größer (ok, da müsste ich also eine neue Größe definieren),
    • der Cursor blinkt an der Stelle, wo der Dateiname erscheinen soll,
    • der Dateiname erscheint allerdings nicht.

    Hm, irgendwo klemmt es also noch, aber der Anfang erscheint erfolgsversprechend …

  11. #11
    Contao-Fan Avatar von Zille
    Registriert seit
    23.12.2015.
    Beiträge
    570

    Standard

    JMMB hat mich darauf hingewiesen (Danke!), dass die Übername des Bildnamens in den Titel in einer seiner 4.4 Installationen funktioniert. Das habe ich mir angeschaut und bemerkt, dass schon im ungeänderten Template – wenn der Titel frei gelassen, dort nichts eingetragen wird – der Bildname in der Lightbox links oben angezeigt wird. Und genau das will ich haben!

    In den Templates der "gallery_default.html5" gibt es dann auch einen kleinen Unterschied in Zeile 9:
    PHP-Code:
    <a href="<?= $col->href ?>"<?= $col->attributes ?><?php if ($col->linkTitle): ?> title="<?= $col->linkTitle ?>"<?php endif; ?>><?php $this->insert('picture_default'$col->picture); ?></a>
    PHP-Code:
    <a href="<?= $col->href ?>"<?= $col->attributes ?><?php if ($col->linkTitle) echo ' title="' $col->linkTitle '"'?>><?php $this->insert('picture_default'$col->picture); ?></a>
    Wenn man schon keine Ahnung von php hat, dann hilft doch Bauernschäue weiter. Na gut, nicht immer, nur meistens. Hier jedenfalls nicht.
    Denn einfach das Template aus 4.4 kopieren und in 4.8 einfügen (neues Template, umbenennen und dann in der Galerie das geänderte Galerietemplate aufrufen) bringt genau nüscht.

    Wie also kann ich das Verhalten/Ergebnis von 4.4 (Anzeigen des Bildnamens anstatt des Bildtitels) auch in 4.8 erreichen? Mir scheint, allein am Galerietemplate liegt es nicht …
    Danke.
    Geändert von Zille (11.10.2019 um 21:42 Uhr)

  12. #12
    Contao-Fan Avatar von Zille
    Registriert seit
    23.12.2015.
    Beiträge
    570

    Standard

    Keiner eine Idee, wie ich das Verhalten der Lightbox aus 4.4 (anzeigen des Dateinamens, wenn in den Metadaten unter Titel nix eingetragen ist) in 4.8 erreichen kann?!

  13. #13
    Contao-Nutzer
    Registriert seit
    27.01.2016.
    Beiträge
    12

    Standard Ausgabe des Dateinamens in der Lightbox

    Hallo an alle,

    ich möchte dieses Thema gerne neu aufgreifen.

    Ich brauche ebenfalls die Ausgabe des Dateinamens in der Lightbox und komme leider nicht weiter.

    Installiert ist Contao 4.11.

    Wenn ich Fotos hochlade, sind alle Meta-Daten logischer Weise leer. Früher (zumindest bei 3.5) wurde dann aber der Bildname / Dateiname automatisch als Alt-Tag gesetzt und in der Lightbox mit ausgegeben. Das ist in 4.11 aber nicht mehr der Fall. Somit hat kein Foto ein Alt-Tag und man muss es immer manuell setzen.

    Für einzelne in Artikeln verwendete Fotos ist dies natürlich absolut kein Problem.

    Bei mir geht es aber um viele und sehr umfangreiche Fotogalerien - wir sprechen von mehreren tausend Fotos. Da kann ich bei bestem Willen nicht bei jedem Foto Alt-Tag oder Title-Tag nachträglich pflegen.

    Da es viel besser aussieht, nutze ich nicht die "normale Lightbox" sondern "Lightcase". Aber auch da funktioniert es wie in der "normalen Lightbox" nicht. Man kann zwar einstellen, ob "caption" angezeigt werden sollen oder nicht, aber das hat leider keinen Einfluss auf den Dateinamen.

    Somit stellt sich also die Frage, ob es eine Möglichkeit gibt,

    • entweder den Dateinamen auszulesen und anzeigen zu lassen,
    • oder besser noch, einfach den Dateinamen wieder automatisch als Alt-Tag zu setzen?


    Ich bedanke mich schon jetzt für eure Unterstützung.

    Viele Grüße

    Michael

  14. #14
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von MichaelS Beitrag anzeigen
    • oder besser noch, einfach den Dateinamen wieder automatisch als Alt-Tag zu setzen?

    Da das Alt-Attribut in HTML eine semantische Bedeutung hat, wäre das keine gute Idee. https://www.seobility.net/de/wiki/ALT_Attribute
    Man sollte sich also schon die Arbeit machen die Metadaten auch auszufüllen. Ich finde das zwar auch ausgesprochen aufwendig, aber es ist m.E. wichtig.

    Ärgerlicher war für mich, wenn bei großen Bildmengen die Werte in den IPTC-Daten bereits vorhanden waren. Deshalb hatte ich vor relativ langer Zeit mal über die Übernahme der Daten etwas recherchiert https://www.tricd.de/php/iptc-daten-mit-php/. Ist aber über die Recherche nicht hinausgekommen, weil das Projekt damals nicht realisiert wurde.
    Im Forum gab es zu dem Thema ach mal einen Thread https://community.contao.org/de/show...o-DB-schreiben
    Vielleicht hilft Dir das ja weiter.

    Nachtrag: Vielleicht kannst Du @Spooky mit der Umsetzung über den PostUpload Hook auch beauftragen.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  15. #15
    Contao-Nutzer
    Registriert seit
    27.01.2016.
    Beiträge
    12

    Standard

    Vielen Dank für deine Antwort.

    Du hast natürlich vollkommen Recht damit, dass der Dateiname kein aussagekräftiges Alt-Attribut ist.

    Da es sich aber tatsächlich um mehrere tausend Fotos handelt, werden diese definitiv kein manuell gepflegtes Alt-Attribut erhalten. Bei aller Wichtigkeit muss ich das hier vernachlässigen.

    Jedoch nicht vernachlässigen kann ich die Notwendigkeit, jedes Foto eindeutig identifizieren zu können. Und da das nun mal am besten über den Dateinamen geht, soll dieser in der Lightbox angezeigt werden. Das kann dann auch gerne der Titel (title) sein, das ist vollkommen egal.

    Ich dachte halt an das Alt-Attribut, da ja in Contao 3 der Dateiname automatisch als Alt-Attribut gezogen wurde. Dann müsste sich das in Contao 4 doch auch irgendwie möglich machen lassen.

    Aber wie gesagt, es darf auch gerne title sein.

    Oder aber mein anderer Gedanke ist der bessere. Kann man denn nicht den Dateinamen auslesen und anzeigen lassen?

    Viele Grüße

    Michael

  16. #16
    Contao-Nutzer
    Registriert seit
    06.02.2014.
    Beiträge
    61

    Standard

    Das Thema hier ist ja schon etwas älter, aber wenn jemand nach einer Lösung dafür sucht:

    ich habe in dem Beitrag hier:
    https://community.contao.org/de/show...227#post580227

    beschrieben, wie ich für Contao 5.2 per Datenbank-Export und PHP-Skript den Dateinamen in den Titel kopiert habe.

    Waren bei mir ca. 3500 Bilder und hat gut funktioniert.

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
  •