Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: efg Bildauswahl; Pfad auf Dateinamen kürzen

  1. #1
    Contao-Nutzer Avatar von Luminanz
    Registriert seit
    02.02.2011.
    Beiträge
    198

    Standard efg Bildauswahl; Pfad auf Dateinamen kürzen

    Hallo

    Ich benutze in einem Formular die Möglichkeit der Bildauswahl. In der Bestätigungsmail möchte ich dann die ausgewählten Bilder auflisten. Leider wird dort der ganze Pfad ausgegeben. Ich möchte diesen Pfad aber gerne auf den Dateinamen kürzen.

    Ich habe bereits den Hook 'processEfgFormData' eingerichtet, damit ich die POST-Variablen vor dem Mailversand bearbeiten kann. Dieser funktioniert soweit, nur leider schaffe ich es nicht die Pfadangaben als Dateinamen auszugeben.

    Ich habe es hiermit probiert:
    PHP-Code:
    foreach ($arrSubmitted['bildauswahl'] as $key => $var)
    {
    $arrSubmitted['bildauswahl'][$key] = (basename)$var;

    Hoffe mir kann jemand weiterhelfen.

    Besten Dank schon mal!

  2. #2
    Contao-Nutzer
    Registriert seit
    01.11.2012.
    Ort
    Kiel
    Beiträge
    109

    Standard

    Angenommen, deine Pfadangabe hat folgende Form: /var/www/undsoweiter/bild.gif

    Dann löscht folgende Funktion alle Zeichen von Beginn der Pfadangabe bis zum letzten Schrägstrich (inklusiv):
    PHP-Code:
    $arrSubmitted['bildauswahl'][$key] = preg_replace('/^.*\//'''$var); 
    Das Ergebnis ist dann: bild.gif.

  3. #3
    Contao-Nutzer Avatar von Luminanz
    Registriert seit
    02.02.2011.
    Beiträge
    198

    Standard

    Hallo MartinG

    Danke für deine Antwort. Ich habe es nun wie folgt versucht:
    PHP-Code:
    foreach ($arrSubmitted['bildauswahl'] as $strBildauswahl) {
                
    preg_replace('/^.*\//'''$strBildauswahl);
                } 
    Leider funktioniert das auch nicht. Ich vermute, dass das Problem bei der Schleife liegt.

  4. #4
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.446
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    moin,

    in der schleife fehlt ne zuweisung auf ne variable.

    dan wird das gehen.

    gruß cliff

  5. #5
    Contao-Nutzer Avatar von Luminanz
    Registriert seit
    02.02.2011.
    Beiträge
    198

    Standard

    Hallo Cliff

    Danke für den Hinweis.
    Ich habe noch etwas herumprobiert, aber leider erfolglos.

    Ich würde gerne die Dateinamen wieder in der Ausgangsvariable speichern, hier also: $arrSubmitted['bildauswahl'].
    So könnte ich in der Bestätigungsmail wieder darauf zugreiffen.
    Wie müsste die Schleife dann aussehen?

  6. #6
    Contao-Nutzer
    Registriert seit
    01.11.2012.
    Ort
    Kiel
    Beiträge
    109

    Standard

    Moin Luminanz,

    eigentlich sollte es gehen, wenn du den PHP-Code aus deinem ersten Posting nutzt und das preg_replace():
    PHP-Code:
    foreach ($arrSubmitted['bildauswahl'] as $key => $var

        
    $arrSubmitted['bildauswahl'][$key] = preg_replace('/^.*\//'''$var); 

    Ich weiss aber gerade nicht aus dem Kopf, inwieweit die Extension efg oder Contao selbst später beim Versand der eigentlichen Mail auf diese Variable ($arrSubmitted) zugreifen. Falls sie den kompletten Pfad benötigen, um z.B. die hochgeladene(n) Datei(en) zu verschieben, könnte es zu Fehlern kommen. Das musst du testen.

  7. #7
    Contao-Nutzer Avatar von Luminanz
    Registriert seit
    02.02.2011.
    Beiträge
    198

    Standard

    Ich könnte schwören, dass ich das gleich zuallererst probiert habe. Vermutlich hat sich irgend ein Tippfehler eingeschlichen
    Danke jedenfalls für’s nochmalige Anstossen

    Ich musste noch den Umweg über eine separate Variable machen, da – sowie ich vermute – efg die Pfadangaben vor dem Mailversand noch einmal aufbereitet (domain wird vor den Pfad zum Benutzerverzeichnis angehängt, Liste wird mit Kommas getrennt).

    So hat es für mich nun funktioniert:

    PHP-Code:
    foreach ($arrSubmitted['bildauswahl'] as $key => $var)
                {
                
    $array[$key] = preg_replace('/^.*\//'''$var);
                }
                
    $arrSubmitted['bildnamen'] = implode("\n"$array); 
    Besten Dank euch beiden!

  8. #8
    Contao-Nutzer
    Registriert seit
    12.08.2014.
    Beiträge
    6

    Standard

    Hi zusammen,
    für mich ist dieses Thema nun in einem aktuellen Projekt auch interessant geworden.
    Mit den Pfaden zur Bilddatei kann man in der E-Mail nicht so richtig etwas anfangen.

    Da ich mit hooks nicht wirklich gut umgehen kann, meine Bitte:
    Könntet ihr so gut sein und mir kurz erklären, welche Datei um den PHP-Code von Luminanz erweitert werden muss?

    Besten Dank :-)

  9. #9
    Contao-Nutzer
    Registriert seit
    22.06.2009.
    Beiträge
    156

    Standard

    Hallo supercarsten, hast du eine Lösung für das Entfernen der Pfade in der E-Mail gefunden? Stehe auch vor diesem Problem.

    Grüße

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
  •