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.
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.
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.
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.
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: <?phpclass 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: <?phpclass 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">'; } }}?>
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.
Schon mal ohne <head> versucht? Soweit ich weis, muss eines css nicht zwingend im Head-Bereich eingebunden werden?!
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.
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.
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".