Falscher Pfad bei Bilder aus Mediathek

  • Betroffene App
    WoltLab Suite Core

    Hallo zusammen,

    ich stehe aktuell vor einer Herausforderung die sich aufgrund der Aufteilung zwischen Frontend und ACP ergibt. Das Problem sieht wie folgt aus:

    Ich nutze den WYSIWYG-Editor um einen E-Mail-Inhalt zu erstellen. Dort füge ich über den Media-BBCode ein Bild aus der Mediathek ein. Daraus wird folgendes HTML generiert

    Code
    <img src="https://domain.tld/acp/index.php?media/1-image-jpg/" class="woltlabSuiteMedia" data-media-id="1" data-media-size="original">

    Dieser Pfad enthält das "/acp" welches für normale Nutzer nicht verfügbar ist. Das Bild wird im E-Mail-Client also nicht angezeigt.

    Nun hatte ich die Überlegung das ganze per HtmlInputProcessor als BBCode zu speichern und per HtmlOutputProcessor umzuwandeln. Ähnlich der Vorgehensweise beim Erstellen von Seiteninhalten. Hier bekomme ich beim Ausführen nun aber den Fehler "Unable to find template 'mediaBBCodeTag'" - da dieses Template im ACP nicht verfügbar ist.

    Es sollte entweder beim HTML der Mediathekbilder immer der Frontend-Pfad verwendet werden, oder das Parsen der MediaBBCodes auch im ACP möglich sein.

    Viele Grüße,

    Daniel

    Entwicklung und Design moderner Webapplikationen

    kostenloser Support • Vorschläge teilen • Plugins kaufen

    Darkwood.Design

  • Wie genau meinst du das? Wird etwas ähnliches bereits irgendwo im WCF gemacht? Bleibt der Nutzer dann im ACP eingeloggt oder wie kann ich mir das vorstellen?

    Entwicklung und Design moderner Webapplikationen

    kostenloser Support • Vorschläge teilen • Plugins kaufen

    Darkwood.Design

  • Christopher Walz  Tim Düsterhus

    Ah verstehe. Das Problem ist allerdings, dass der falsche Link ja bereits beim Hinzufügen des Mediathekbildes im Editor entsteht. Durch eine Gastsession würde also das HTML nicht im Nachhinein korrigiert werden und auch das mediaBBCodeTag ist dadurch weiterhin nicht verfügbar.

    Entwicklung und Design moderner Webapplikationen

    kostenloser Support • Vorschläge teilen • Plugins kaufen

    Darkwood.Design

  • Nachtrag:

    Ich bin jetzt mal ein bisschen kreativ geworden und nutze eine ähnliche Vorgehensweise wie die der Sessionmanipulation um die nötigen Templates verfügbar zu haben.

    Den Template-Fehler konnte ich damit beheben, allerdings ist der Pfad der Mediathek-Bilder weiterhin falsch (/acp/)

    Hier mal der komplette Code:

    Trotz der geänderten User-Session ist das Ergebnis wieder dasselbe wie als ich direkt mit HTML ohne Processor (BB-Code) gearbeitet habe.

    https://domain.tld/acp/index.php?media/1-image-jpg/

    Habt ihr eine Idee?

    Entwicklung und Design moderner Webapplikationen

    kostenloser Support • Vorschläge teilen • Plugins kaufen

    Darkwood.Design

  • Also ich habe das Verhalten auch ganz normal im ACP. Beispielsweise beim Erstellein einer CMS-Seite. Ich lade über den Media-BBCode mehrere Bilder hoch, wähle danach eins aus und in einigen Fällen wurde es mit /acp/ im Link in den Editor eingefügt. Muss man dann händisch über doe Quellcode-Ansicht entfernen.

    Muss doch also im Core direkt irgendwo hängen.

    • Offizieller Beitrag

    Dass Medienlinks im ACP acp/ enthalten ist korrekt. Der Anwendungsfall, dass aus dem ACP heraus Ausgaben generiert werden sollen, bei denen Medienlinks ins Frontend zeigen, wurde bisher nicht abgedeckt und hat nur damit zu tun, wie der Link selbst generiert wird und nicht mit dem aktuellen Benutzer, wie oben spekuliert. Der aktuelle Benutzer spielt nur eine Rolle bei der Überprüfung der Zugriffsrechte auf die Mediendatei, also ob überhaupt ein Link generiert wird oder nicht.

    Mit WoltLab/WCF@4411cb11 kann nun vorm Generierung der Ausgabe im ACP WoltLabSuiteMediaBBCode::$forceFrontendLinks auf true gesetzt werden (und danach wieder auf false), was dafür sorgt, dass die Links auf jeden Fall zum Frontend zeigen.

Jetzt mitmachen!

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