Mehrere WysiwygFormContainer und Anhänge beim bearbeiten führen zu gleicher objectID

  • App
    WoltLab Suite Core

    Unterdessen habe ich das Gefühl hier handelt es sich um einen Fehler oder wurde so nicht geplant.

    Wie unten geschrieben funktioniert das Hinzufügen von Attachments ohne probleme wenn ich einen neuen Eintrag erstelle da tmpHash für die Zuweisung der objectID verwendet wird. beim bearbeiten kann ich jedoch nicht mehrere IDs übergeben so dass es zu diesem Fehlverhalten kommt.

    Sollte ich doch etwas übersehen habe nehme ich gerne einen Tipp entgegen :)

    Sollte es nicht vorgesehen sein, wäre es nett wenn ihr dies in das Ideenforum verschieben könntet.

    Aktuell umgehe ich das Problem indem ich einen eigenen WysiwygFormContainer erstelle welcher die original Klasse verwendet, und habe dies hier einfach erweitert mit einer neuen Funktion setObjectID. Anschliessend habe ich in der Funktion updatedObject die überschreibung der ObjectID verhindert. Das klappt auch gut. Wäre aber natürlich schön wenn dies im Standardumfang möglich wäre.

    Urprüngliche Nachricht

    Ich habe in einem Formular zwei WyswigFornContainer mit Anhängen. Das ganze sieht so aus:

    PHP
    WysiwygFormContainer::create('content' . $languageID)
        ->label('my.app.content')
        ->required()
        ->messageObjectType('com.bemananas.myapp.content')
        ->enablePreviewButton(false)
        ->supportSmilies(MODULE_SMILEY)
        ->attachmentData('com.bemananas.myapp.content', $this->categoryID),

    Das ganze klappt auch beim Hinzufügen ohne probleme, da in die Datenbank der Wert tmpHash gespeichert wird und sobald die ID meines Eintrages bekannt ist diesen anhand des tmpHash korrekt zugeordnet wird.

    Wenn ich nun den Inhalt jedoch bearbeite, fügt er mir bei einem neuen Dateianhang jeweils als objectID nur die eine Sprache ein egal auf welchen der beiden ich den Dateianhang hochlade. Hier wird nicht berücksichtigt das es zwei Einträge gibt.

    Habe ich hier etwas übersehen und kann irgendwie die passende ObjectID übergeben welches die jeweilige Sprache hat?

    Einmal editiert, zuletzt von beMananas (2. Oktober 2021 um 09:42)

    • Offizieller Beitrag

    Hallo,

    nur damit ich das Problem richtig verstehe:

    • Du erstellst im Formular zwei Datenbankobjekte.
    • Beide Datenbankobjekte werden in einem Formular erstellt und bearbeitet?

    Ein Formular hat immer ein Datenbank-Objekt als Grundlage. Mit zwei getrennten Formularen sollte es funktionieren (ungetestet). Diese können ja trotzdem auf einer Seite angezeigt werden (wenngleich auch vermutlich nicht so komfortabel wie vorher).

  • Hallo Joshua

    Ja genau. Ich habe es nun mit einer neuen Klasse gelöst in der ich die ObjectID übergebe. So klappt es auch.

    Ich verwende ein Datenbankobject. Es wird nur eine andere Sprache verwendet. I18n habe ich nicht verwendet da es aktuell für die WYSIWYG Klasse nicht möglich ist ohne Plugin.

    Gruss


    Oliver

    Einmal editiert, zuletzt von beMananas (4. Oktober 2021 um 09:43)

    • Offizieller Beitrag

    Ich verwende ein Datenbankobject. Es wird nur eine andere Sprache verwendet. I18n habe ich nicht verwendet da es aktuell für die WYSIWYG Klasse nicht möglich ist ohne Plugin.

    Wie speicherst du das Objekt, wenn du ein Datenbankobjekt (= ein Eintrag in einer Tabelle und nicht zwei Einträge in einer [oder mehr] Tabelle[n]), dann musst du dynamisch ja die Spalten anpassen können?

    Aber ja, wenn es für dich funktioniert. Ich würde mich an deiner Stelle trotzdem mal damit beschäftigen, ob zwei getrennte Formulare (die auf einer Seite dargestellt werden) nicht einfacher/besser im Handling sind, alleine schon um das Formular anschließend nicht aufwendig verarbeiten zu müssen.

  • Es sind zwei AttachmentHandler. Ich gehe die Sprache in einer Schleife durch

    Code
    $attachmentHandlerField = 'content' . $languageID . '_attachmentHandler';
    $attachmentHandler = $this->parameters[$attachmentHandlerField];

    Aber ja, wenn es für dich funktioniert. Ich würde mich an deiner Stelle trotzdem mal damit beschäftigen, ob zwei getrennte Formulare (die auf einer Seite dargestellt werden) nicht einfacher/besser im Handling sind, alleine schon um das Formular anschließend nicht aufwendig verarbeiten zu müssen.

    Danke. Das werde ich mir mal anschauen.

    • Offizieller Beitrag

    Hallo,

    ich habe mich gerade nochmal mit dem Problem beschäftigt. Das Problem ist hier, wenn ich deine Schilderungen korrekt nachvollziehe, dass du den Dateianhängen mehreren Objekten (also mehreren WYSIWYG-Editoren) zuordnen willst. Das ist unlogisch und wird so durch uns bewusst nicht unterstützt. Logisch wäre hier, wenn die beiden Sprachen entsprechend eigene Dateianhänge zugeordnet bekommen und diese nicht teilen müssen.

  • Joshua Rüsweg 19. April 2022 um 12:00

    Hat das Label Nicht geplant hinzugefügt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!