Frontend: Bei Bearbeiten von Modul wird im <body> Klasse "no-layout" beibehalten, beim Bearbeiten eines Beitrags ist es "layout-edit". Richtig oder falsch?

  • Erneut ein herzliches Hallo in die Runde,


    Standard-Joomla! Version 3.9.13.


    Mir ist aufgefallen, dass in unserem Frontend, das auf Protostar basiert, der <body> beim Bearbeiten eines Beitrags die Klasse "layout-edit" erhält, während beim Bearbeiten eines Moduls die Klasse "no-layout" beibehalten wird. (Unsere Overrides sollten darauf keinen Einfluss haben.)


    Ich bin darauf gekommen, weil ich einige <div>-Bereiche mit Links, die standardmäßig auf allen Seiten erscheinen, via CSS ausblenden möchte, während ein Beitrag bzw. ein Modul bearbeitet wird. So wird schon mal die Anzahl der Möglichkeiten reduziert, den Bearbeitungsmodus zu verlassen, ohne "Speichern" oder "Abbrechen" betätigt zu haben (Stichwort: "gesperrter Beitrag"). Der Redakteur bekommt somit nur die Teile zu Gesicht, die er für das Bearbeiten wirklich benötigt.


    Daher meine Frage: Ist die Beibehaltung der Klasse "no-layout" an den <body> beim Bearbeiten eines Moduls ein "Bug" oder tatsächlich ein "Feature"? ;)


    Liebe Grüße, Gerald

  • Nicht wirklich ein Bug, weil der betr. Link und Logik dahinter etwas anders aufgebaut ist.

    Code
    index.php?option=com_config&controller=config.display.modules&id=175&Itemid=435&return=asasaaassas

    Aber die Klasse

    Code
    body.com_config.view-modules
    {
    
    }

    sollte hart genug sein.


    Soweit ich sehe, sollte

    Code
    body.com_config
    {
    
    }

    ausreichend sein, um auch andere, ähnliche Frontend-Edits gleich mitabzudecken (Template-Optionen, Joomla-Konfiguration).


    Ansonsten müsste man in der index.php paar Zeilen hinzufügen, um in diesen Fällen halt noch ein "layout-edit" als BODY-Klasse hinzuzuzaubern

  • Danke für Deine Antwort, Re:Later , ich habe das Problem auf (fast) dieselbe Weise gelöst. :thumbup:<3


    Wenn ich es richtig interpretiere, wird "view-*" so gut wie immer vergeben, unabhängig davon, ob man eine Seite bearbeitet oder nicht (z. B. "view-article", "view-category", "view-form", "view-modules", "view-profile" usw.) - also je nachdem, um welche Seite es sich handelt.


    Wird die Seite nicht zur Bearbeitung geöffnet, kommt offenbar noch die Klasse "no-layout" hinzu.


    Im Bearbeitungsmodus wird die Klasse "no-layout" durch "layout-edit" ersetzt, außer eben bei einem Modul.


    Ich glaube, was das Modul betrifft, könnte das durchaus ein "Bug" sein, mit Betonung auf "könnte", denn wofür jemand die Klasse "layout-edit" beim Bearbeiten eines Moduls gezielt ansteuern will, kann ich mir gerade nicht vorstellen. :/


    Liebe Grüße, Gerald

  • Wie oben gesagt.

    Nicht wirklich ein Bug, weil der betr. Link und Logik dahinter etwas anders aufgebaut ist.

    Das Protostar ermittelt aus dem Non-SEF-Link das Layout. Wenn ein solcher Link aber ohne layout=... auskommt/daherkommt, kann Protostar das auch nicht ermitteln.


    Man könnte natürlich das

    Code
    &controller=config.display.modules

    im Protostar auswerten und daraus eine weitere CSS-Klasse generieren. Aber, das dann als "layout-edit"-Klasse auszugeben kannst vielleicht in DEINEM Protostar machen. Im Core wirst du damit keinen Erfolg haben, dass das reingenommen wird, weil es eben einfach nicht stimmt ;-) . Es wird in diesem Fall kein layout-Parameter im Non-SEF-Link übergeben, also gibts auch keinen.


    Außerdem wäre diese Änderung im Core nicht rückwärtskomaptibel. Andere könnten ja die "layout-edit"-Klasse für anderen Zweck verwenden als du "und sind froh, dass sie nicht auf der Modul-Bearbeiten-Seite verwendet wird". Die müssten dann alle nacharbeiten.