Ergebnis 1 bis 7 von 7

Thema: MP_Forms + Notification Center: generierter Anhang in E-Mail

  1. #1
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.740
    User beschenken
    Wunschliste

    Standard MP_Forms + Notification Center: generierter Anhang in E-Mail

    Moin,

    ich habe ein MP_Form, bei dem ich in verschiedenen Stepps Daten einhole und im letzten Stepp dynamisch ein PDF generiere - hier kann man vor dem Abschließen des Formulares das PDF sich zum Check ansehen.
    Anschließend gehen E-Mails per PDF raus. Die PDF-Datei liegt dann als physische Datei unter files/...

    Im Formular habe ich ein verstecktes Feld "offer_pdf" angelegt.

    Vor dem Umbau des MP_Forms mit dem SessionManager reichte das aus

    PHP-Code:

            $_SESSION
    ['MPFORMSTORAGE'][$formId][0]['files']['offer_pdf'] = [
                
    'name'     => $saveFile->name,
                
    'type'     => 'application/pdf',
                
    'tmp_name' => TL_ROOT '/' $saveFile->path,
                
    'error'    => 0,
                
    'size'     => \filesize(TL_ROOT '/' $saveFile->path),
                
    'uploaded' => true,
                
    'uuid'     => $saveFile->uuid
            
    ]; 
    das habe ich umgebaut zu

    PHP-Code:
            $sessionManager = new \MPFormsSessionManager($formId);

            
    $submitted['offer_pdf'] = $saveFile->path;
            
    $files['offer_pdf']     = [
                
    'name'     => $saveFile->name,
                
    'type'     => 'application/pdf',
                
    'tmp_name' => TL_ROOT '/' $saveFile->path,
                
    'error'    => 0,
                
    'size'     => \filesize(TL_ROOT '/' $saveFile->path),
                
    'uploaded' => true,
                
    'uuid'     => $saveFile->uuid
            
    ];

            
    $sessionManager->storeData($submitted, [], $files);

    //dd($sessionManager->getDataOfAllSteps()); 
    Wenn ich mir die getDataOfAllSteps dumpe, sieht das auch alles recht gut aus...

    Code:
    ^ array:4 [?
      "submitted" => array:18 [?
        "pnr" => "OA-4b59"
        "offer_pdf" => "files/form_offer_tool/offers/2023-06-11_OA-4b59.pdf"
        "fb_type" => "fb2"
        "Anrede" => "male"
        "Titel" => ""
        "Vorname" => "Ingolf"
        "Nachname" => "TESTER"
        "Tel" => "03012345"
        "E_Mail" => "ich@web.de"
        "Firma" => "ich"
        "Strasse" => "1"
        "PLZ" => "2"
        "Ort" => "3"
        "Im_Vorfeld_beraten" => "nein"
        "Beraten_durch" => ""
        "ausgelagerte_prozesse" => "nein"
        "prozesse_ausgelagert" => ""
        "disclaimer" => "accepted"
      ]
      "labels" => array:15 [?]
      "files" => array:1 [?
        "offer_pdf" => array:7 [?
          "name" => "2023-06-11_OA-4b59.pdf"
          "type" => "application/pdf"
          "tmp_name" => "/xyz/files/form_offer_tool/offers/2023-06-11_OA-4b59.pdf"
          "error" => 0
          "size" => 337022
          "uploaded" => true
          "uuid" => b"\x08êÝS\x08e\x11RT\x00¾Gœ"
        ]
      ]
      "originalPostData" => array:1 [?]
    ]

    nur im NC wird kein mehr Anhang mitgesendet

    Hat jemand eine Idee, wo die Säge klemmt?

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.740
    User beschenken
    Wunschliste

    Standard

    Merker von Antwort aus Slack von Toflar:

    Du injectest dir das FormManagerFactoryInterface und holst dir den FormManager via forFormId($formId). Dann kannst du da die Step-Daten holen und verändern, sind alles Objekte.
    Sind alles immutable Objekte. Also du holst dir das Step Object, machst dann in deinem Fall $steps = $steps->withFiles(....) mit den modifizierten Files und setzt $steps wieder auf dem Manager. Das verhindert dumme Fehler mit Referenzen und so

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

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    nur im NC wird kein mehr Anhang mitgesendet
    Wie hast du den Anhang dem Notification Center mitgeteilt?
    » sponsor me via GitHub or PayPal or Revolut

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.740
    User beschenken
    Wunschliste

    Standard

    Wie geschrieben, habe ich ein verstecktes Feld "offer_pdf" angelegt - im NC habe ich bei "Dateianhänge via Tokens" ein "##form_offer_pdf##" eingetragen...

  5. #5

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

    Standard

    Reicht es nicht einfach, wenn du in einem prepareFormData Hook (mit Priority >0) den entsprechenden PDF Pfad zu den Daten hinzufügst?
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.740
    User beschenken
    Wunschliste

    Standard

    könnte ich probieren - da aber die Datei schon im vorletzten Schritt erzeugt wird, müsste ich die Info zum Dateipfad über eine Session-Variable weiter reichen

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
  •