terminal42 / contao-notification_center

The most popular notification configuration extension for the Contao Open Source CMS!
63 stars 39 forks source link

Anhänge via Tokens funktionieren nicht (mehr) mit dem `contao-fineuploader` #342

Open wiphi opened 2 months ago

wiphi commented 2 months ago

Hallo zusammen, folgende Module setze ich ein:

Contao: 4.13.44
terminal42/contao-fineuploader: 3.4.11
terminal42/notification_center: 2.0.9 

In einem Formular habe ich den Contao-Fineuploder als Feld eingebunden (file). Bei diesem können die Frontend-Benutzer mehrere Dateien hochladen. Diese Dateien sollen dann per Mail über das Notification-Center versandt werden. Dazu habe ich in der Benachrichtigung das Feld Dateianhänge via Tokens mit dem Token ##form_file## gefüllt.

In der Notification-Center Version 1.7 funktionierte das noch ohne Probleme, in der Version 2.0.9 leider nicht mehr. Es wird keine Datei mehr übermittelt. Ändere ich den Token in ##form_file_0## wird zumindest eine Datei übermittelt. Da ich aber nie genau sagen kann wie viele Dateien der Benutzer hochlädt, ist das leider keine Option eine Liste an Tokens ##form_file_XX## zu schreiben.

Beim Debuggen ist mir aufgefallen, dass im MailerGateway.php die Prüfung isBulkyItemVoucher fehlschlägt. Aber ich hab leider zu wenig Wissen, um das Problem korrekt zu beheben.

    private function addAttachmentsFromTokens(LanguageConfig $languageConfig, Parcel $parcel, EmailStamp $emailStamp): EmailStamp
    {
        $tokens = StringUtil::trimsplit(',', $languageConfig->getString('attachment_tokens'));

        foreach ($tokens as $token) {
            $vouchers = StringUtil::trimsplit(',', $this->replaceTokens($parcel, $token));

            foreach ($vouchers as $voucher) {
                if ($this->isBulkyItemVoucher($parcel, $voucher)) {  // <-- hier schlägt die Prüfung fehl, da keine ID sondern der Dateiname enthalten ist
                    $emailStamp = $emailStamp->withAttachmentVoucher($voucher);
                }
            }
        }

        return $emailStamp;
    }

Viele Grüße und besten Dank für die schöne Erweiterung und Pflege dessen!

Toflar commented 1 month ago

Kann das irgendwer reproduzieren? Wir haben zig Kunden mit Installationen mit Fineuploader und NC2 und Fileuploads und bisher kamen keine Reports rein.

wiphi commented 1 month ago

Danke für die Info @Toflar. Dann scheint ers ja kein allgemeines Problem zu sein. Ich schau mal, ob ich das reproduzierbar in einer leeren Umgebung aufbauen kann. Die Installation wurde geupgraded, vielleicht hängt das damit zusammen... Ich melde mich wieder.

w3scout commented 1 week ago

@Toflar: hier (C5.3, NC2.0, kein Fineuploader, stattdessen mit dem Token eines Formular-Textfeldes in "Dateianhänge via Tokens") besteht das gleiche Problem. Die isBulkyItemVoucher-Prüfung gibt false zurück. Könnte Zugangsdaten zur Verfügung stellen, falls Du es Dir selbst anschauen möchtest?

Schmidty2 commented 1 week ago

Hallo, ich habe das selbe Problem mit der Erweiterung https://github.com/trilobit-gmbh/contao-zipuploads-bundle. Konfiguration genau wie in der Doku von Zipuploads beschrieben. Bei Dateienhänge via Tokens ist ##form_autogeneratedZippedUploads## eingetragen. Unter Contao 4.13 und dem NC 1.7 funktioniert das, unter Contao 5.3.12 und NC 2.0.13 funktioniert es nicht.

Toflar commented 1 week ago

@Toflar: hier (C5.3, NC2.0, kein Fineuploader, stattdessen mit dem Token eines Formular-Textfeldes in "Dateianhänge via Tokens") besteht das gleiche Problem. Die isBulkyItemVoucher-Prüfung gibt false zurück. Könnte Zugangsdaten zur Verfügung stellen, falls Du es Dir selbst anschauen möchtest?

Nicht nötig, ein Pfad zu einer Datei in einem Token ist nicht mehr supported in Version 2. Ich habe die Gründe dokumentiert: https://github.com/terminal42/contao-notification_center/commit/55749edc897fe70b4fbd66f4f10052db83c25b5c

ich habe das selbe Problem mit der Erweiterung https://github.com/trilobit-gmbh/contao-zipuploads-bundle.

Gleiches Problem, das Bundle muss angepasst werden und den Zip-Upload als Bulky Item für das Notification Center zur Verfügung stellen. Also aktuell nicht kompatibel mit NC2.

w3scout commented 1 week ago

@Toflar: alles klar, danke für die Aufklärung. Nur noch zum vollständigen Verständnis: das Feld "Dateianhänge via Tokens" ist also ab NC2.0 ohne Funktion?

Toflar commented 1 week ago

Nein, das funktioniert natürlich (oder soll funktionieren) sonst müsste es ja nicht da sein. Aber das verwendete Token muss einen Bulky Item Storage Voucher beinhalten und dem Parcel muss via Stamp mitgeteilt worden sein, dass dieses Token zu diesem Parcel gehört.

wiphi commented 1 week ago

@Toflar Danke für die Erläuterung! Das bedeuet doch eigentlich, dass das NC korrekt arbeitet und die anderen Erweiterungen, wie contao-fineuploader, contao-zip-uploads-bundle, etc. angepasst werden müssten? Also besser ein Issue in den jeweiligen Repos aufmachen und auf dieses hier verlinken?

fritzmg commented 1 week ago

There should be no issues with terminal42/contao-fineuploader (see also https://github.com/terminal42/contao-notification_center/issues/342#issuecomment-2232964489).

Toflar commented 1 week ago

Fineuploader stellt keine eigenen Tokens zur Verfügung. Das ist ja ein Formularfeld und läuft über den normalen Prozess von Formularfeldern mit form_*. Das contao-zip-uploads-bundle macht eigene Tokens die von Formularfeldern unabhängig sind.

veronikaplenta commented 1 week ago

@Toflar ich hab das Problem, wenn ich selber Dateianhänge via Tokens in einem CreateParcelEventListener hinzufüge. Ich erstelle ein Bulky Item Storage Voucher, schreibe das in den Token und hänge das Bulky Item Storage Voucher als Bulky Item Stamp mit dran. Wie bei wiphi gibt bei mir isBulkyItemVoucher im MailerGateway false zurück. Ich konnte das schon näher eingrenzen, hab mir den Inhalt des Tokens in meinem EventListener und im MailerGateway angeguckt und die Werte sind unterschiedlich. Warum das passiert, hab ich bisher aber nicht rausgefunden. (Mehr Infos sind auch im Slack zu finden: https://contao.slack.com/archives/CLTUNH78X/p1723208283618539)

theDyingMountain commented 5 days ago

Ich kann das Problem nachstellen. Gleicher Server (IONOS) Contao 4.13, NC 1.7, FineUploader 3.4 -> Datei in E-Mail als Anhang Contao 5.3, NC 2.0, FineUplaoder 3.4 -> Datei nicht als Anhang, nur Pfad ist in der E-Mail

fritzmg commented 5 days ago

Contao 5.3, NC 2.0, FineUplaoder 3.4 -> Datei nicht als Anhang, nur Pfad ist in der E-Mail

Poste die Widget Konfiguration.

theDyingMountain commented 5 days ago

Es wurde nichts geändert an den Einstellungen Screenshot 2024-08-22 at 11-02-09 Formulare Online-Bewerbung ohne Select Felder Formularfeld ID 55 bearbeiten