Neues Backend Usermod-CSS

Thema wurde von Sven (Sky-PC), 16. Januar 2016 erstellt.

  1. Sven (Sky-PC)

    Sven (Sky-PC) Erfahrener Benutzer

    Registriert seit:
    27. September 2013
    Beiträge:
    49
    Danke erhalten:
    15
    Danke vergeben:
    9
    Moin!

    Nach über einem Jahr krankheitsbedingter Gambio-Abstinenz habe ich mir heute die neue Version 2.6.0.1 in meiner lokalen Umgebung installiert und hier im Forum bereits einiges an Diskussionen zum neuen Backend durchgelesen. An einer Stelle wurde ja bereits eine zukünftige Möglichkeit einer eigenen Usermod-CSS in Aussicht gestellt. Ich habe einmal eine eigene CSS eingebunden (nicht updatesicher) und bin halbwegs entsetzt, was den aktuellen Stand anbelangt. Es wird ja scheinbar standardmäßig auf die Style-Informationen aus der admin\html\assets\styles\gx-admin.min.css zugegriffen. Mein Problem: in dieser Datei sind 225(!!!) Angaben mit einem important! festgeschrieben. Dies setzt dem freien Gestalten des neuen Backend vorsichtig ausgedrückt doch sehr enge Grenzen, um nicht zu sagen: macht es schier unmöglich. Ist da in zukünftigen Versionen eine andere Vorgehensweise geplant oder kann man sich von dem Gedanken eines eigenen Backend-Templates lieber gleich verabschieden?

    Ansonsten muss ich sagen, dass mir sehr vieles richtig gut gefällt, was sich in dem letzten Jahr alles getan hat. Vor allem die immer weiter steigenden Möglichkeiten der Extender lassen trotz der Style-Geschichte jetzt schon Vorfreude auf eine weitere Arbeit mit dem neuen Gambio aufkommen.
     
  2. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das ist wohl notwendig, um die im HTML enthaltenen width, height und andere Attribute zu überschreiben.

    Wenn man nach diesem CSS ein eigenes lädt, kann man die trotzdem überladen, wenn man auch darin "important" verwendet.
     
  3. Sven (Sky-PC)

    Sven (Sky-PC) Erfahrener Benutzer

    Registriert seit:
    27. September 2013
    Beiträge:
    49
    Danke erhalten:
    15
    Danke vergeben:
    9
    #3 Sven (Sky-PC), 17. Januar 2016
    Zuletzt bearbeitet: 17. Januar 2016
    Danke für deinen Hinweis, Avenger.
    Das ist selbstverständlich erst einmal so korrekt. Bindet man die eigene CSS nach der Gambio-Datei ein, kann man ebenfalls mit important arbeiten und somit schlussendlich zum gewünschten Ergebnis gelangen.
    Allerdings stellt sich für mich natürlich schon die Frage, warum heutzutage im HTML überhaupt noch irgendwelche Style-Attribute enthalten sind.
    Schön ist das jedenfalls nicht, wenn man sich ständig wundert, warum die eigenen Angaben nicht direkt korrekt umgesetzt worden sind und bei der Fehlersuche dann feststellt, dass durch ein important in der Gambio-CSS die Angaben schlicht wieder überschrieben wurden. Ich arbeite aus diesem Grund höchst ungerne mit important und nutze es wirklich nur, wenn ich selber auf die HTML-Bereiche keinen Einfluss nehmen kann, bzw. was die Update-tauglichkeit bei der Frequenz die Gambio hier anschlägt, nicht nehmen will.
    Aber der HTML-Code stammt ja ebenfalls von Gambio. Da wäre es schon wünschenswert wenn man den im Idealfall frei von jeglichen CSS-Attributen lässt und es auch wirklich komplett in eine CSS-Datei auslagert. Erleichtert den Designern die Arbeit ungemein. ;)

    Edit: Wobei ich natürlich nachvollziehen kann, dass dies in dem ja noch laufenden Prozess der Optimierung des neuen BackEnd nicht die höchste Priorität haben kann. Ich bin ja froh, dass diese Baustelle des BackEnd nach all den Jahren endlich einmal angegangen wurde. Man ist auf einem sehr guten Weg m.E.
    Aber als langfristige Optimallösung sollte das meiner Meinung nach schon im Auge behalten werden.
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Soweit ich gelesen habe, will Gambio die ganzen alten Codes rauswerfen und erneuern.
    Der Neue Admin ist quasi ein "Mantel" der über den alten geworfen wurde, um darunter entsprechend arbeiten zu können und die Neuerungen dann direkt mit dem neuen Admin zu verbinden.
    Ich denke dann wird auch das ganze "important" nach und nach wegfallen.
     
  5. Sven (Sky-PC)

    Sven (Sky-PC) Erfahrener Benutzer

    Registriert seit:
    27. September 2013
    Beiträge:
    49
    Danke erhalten:
    15
    Danke vergeben:
    9
    #5 Sven (Sky-PC), 17. Januar 2016
    Zuletzt bearbeitet: 17. Januar 2016
    Es gibt im übrigen eine, wenn auch unsaubere, funktionierende Lösung für das updatesichere Einbinden eigener CSS für das Backend.

    Man erstelle sich im Ordner user_classes/overloads/ falls noch nicht vorhanden einen neuen Ordner AdminApplicationBottomExtenderComponent.

    In diesem erstellt man sich eine neue Datei und benennt sie admin_css_AdminApplicationBottomExtender.inc.php und befüllt sie mit folgendem Code:

    PHP:
    <?php

    class admin_css_AdminApplicationBottomExtender extends admin_css_AdminApplicationBottomExtender_parent
    {
        function 
    proceed()
        {
            
    parent::proceed();
                    
                    echo 
    '<link rel="stylesheet" type="text/css" href="' DIR_WS_ADMIN 'gm/css/mein_style.css">';
        }
    }
    ?>
    Dann erstellt man sich die angegebene mein_style.css im Ordner admin/gm/css/ und kann in dieser eigene Style-Angaben definieren und da sie nach der Gambio-CSS eingebunden wird, funktioniert auch ein Überschreiben der important-Angaben.

    Edit:
    Mit folgendem Code ist es auch möglich nur für bestimmte Bereiche des Backend das eigene Style-Sheet zu verwenden:

    PHP:
    <?php

    class admin_css_AdminApplicationBottomExtender extends admin_css_AdminApplicationBottomExtender_parent
    {
        function 
    proceed()
        {
            
    parent::proceed();
                    
                    
    $pathinfo pathinfo($_SERVER['PHP_SELF']);
                    
    $requesting_file=basename($pathinfo['basename']);

                    
    $required_files=array(
                    
    // Hier alle Dateien des Admin-Bereichs auflisten, bei denen die eigenen CSS-Angaben genutzt werden sollen.
                    // Groß- und Kleinschreibung beachten!!!
                    // Nach dem letzten Eintrag kein Komma.
                        
    'start.php',
                        
    'orders.php'
                    
    );
                    if (
    in_array($requesting_file$required_files)) {
                        echo 
    '<link rel="stylesheet" type="text/css" href="' DIR_WS_ADMIN 'gm/css/mein_style.css">';
                    }
        }
    }

    ?>
     
  6. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Sehr schön ... nur, was ist das "unsaubere" an deiner Lösung? :confused:

    Damit ist dies dann für die Tonne! :D:eek:;)
     
  7. Sven (Sky-PC)

    Sven (Sky-PC) Erfahrener Benutzer

    Registriert seit:
    27. September 2013
    Beiträge:
    49
    Danke erhalten:
    15
    Danke vergeben:
    9
    Naja, im Quellcode bekommst Du dadurch ganz am Ende einen zweiten head-Tag. Dies ist natürlich invalid html. Wobei so wie es zur Zeit im Backend aussieht kommt es da auch nicht weiter drauf an. ;)
     
  8. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Schon mal ohne <head> versucht?
    Soweit ich weis, muss eines css nicht zwingend im Head-Bereich eingebunden werden?!
     
  9. Sven (Sky-PC)

    Sven (Sky-PC) Erfahrener Benutzer

    Registriert seit:
    27. September 2013
    Beiträge:
    49
    Danke erhalten:
    15
    Danke vergeben:
    9
    Guter Hinweis. Funktioniert tatsächlich auch ohne. Sprengt trotzdem jede HTML-Semantik, aber definitiv eleganter als mit <head>. Ich ändere mal den Post entsprechend ab.
     
  10. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nun ja, hinter der neuen Oberfläche werkelt halt immer noch das generierte HTML von vor 15 Jahren....

    Erst wenn man den Admin_Bereich auch Programmtechnis komplett überarbeitet, kann man das neu strukturieren.

    Bis dahin muss man halt den Holzhammer nehmen, um das besser aussehen zu lassen. ;)
     
  11. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nun ja, selbst Goolge empfiehlt ja einige seiner Skripte am Ende des "body" einzubauen, und nicht im "head"....

    So lange die Browser das verstehen ist alles gut, der Rest is "nice or have".