Relativer Pfad in Iframe Wrapper URL

  • Hallo,


    In Joomla 4 kann ich einen Menüpunkt vom Typ IframeWrapper nicht mit einem relativen Pfad ohne vorangestelltes http:// festlegen.


    Obwohl ich die Option Erweitert / Automatisch Hinzufügen deaktiviert habe, beginnt die Iframe-URL mit http://. Das ist schlecht für mich, weil ich nicht die gleiche Wrapper-URL auf meiner Produktionsseite und auf der Debug-Version auf localhost verwenden kann.


    Interessanterweise tritt dieses Problem im Iframe Wrapper Modul nicht auf. Im Iframe-Wrapper Modul ist es weiterhin möglich, einen relativen Pfad ohne vorangestelltes http:// zu verwenden.


    Unter Joomla 3 war dies auch bei einem IframeWrapper Menüeintrag möglich.


    Ein Workaround wäre, für jeden IframeWrapper ein Modul zu erzeugen und dieses in einem Beitrag anzuzeigen. Aber ich verstehe nicht, warum ich das jetzt so umständlich machen soll, wenn es doch bisher ganz einfach gegangen ist ... nono

  • Aber ich verstehe nicht, warum ich das jetzt so umständlich machen soll, wenn es doch bisher ganz einfach gegangen ist ...

    Ursache ist, dass in Joomla 3 das Feld vom Typ "text" war und jetzt vom Typ "url". Damit ist die Einstellung "Automatisch hinzufügen" natürlich unsinnig.


    Leider verbaut diese sicherlich als "dolle Verbesserung" eingebaute Prüfung schon bei Eingabe der URL auch andere, einfache Tricks, z.B. in einem Override, eigene Schemen zu verwenden als die, die Joomla als vertrauenswürdig erachtet.


    Kannst nur einen "Bug" einreichen. Wirst aber vermutlich keinen Erfolg haben. Im besten Fall wird "Automatisch hinzufügen" entfernt, denke ich mal ;) Also derzeit nur ein Override möglich.

  • Danke sehr herzlich für diese klärende Information. Anscheinend habe ich doch noch zu früh begonnen, mit der Portierung meiner Seiten auf Joomla 4. :(


    Aber zum Thema Overrides:

    Da bin ich jetzt doch etwas überfordert.


    Ich habe zwar schon seit langem ein Override von mod_wrapper im Frontend in Verwendung - aber aus einem anderen Grund.


    Von welcher Komponente könnte ich nun ein Override machen, um das zu erreichen, was ich will, nämlich die Möglichkeit, einen relativen Pfad im Backend einzugeben (dem nicht automatisch http:// vorangestellt wird.)


    Das Override würde für mein Problem ja das Backend betreffen und nicht das Frontend, sehe ich das richtig?

  • Okay, danke.


    Hier also, für andere, die das auch interessieren könnte, der relevante Codeausschnitt aus dem Template Override com_wrapper/wrapper/default.php


    PHP
    $url = $this->wrapper->url
    $url = str_replace('https://local_path', '/local_path', $url);
    $url = str_replace('http://local_path', '/local_path', $url);
    
    $this->wrapper->url = $url; ?>
    <iframe <?php echo $this->wrapper->load; ?>
       id="blockrandom"
       name="iframe"
       src="<?php echo $this->escape($this->wrapper->url); 
       ...

    Es hat den Anschein, dass das funktioniert.