Alternatives Admin-Menü

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
frase
Posts: 3084
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Alternatives Admin-Menü

Post by frase » Mon Mar 06, 2017 9:33 am

Ich bitte um Vergebung :oops:

Das Problem mit den Styles konnte ich jetzt selbst lösen.
Manchmal muss man (schriftlich) jammern, damit man klarer sieht ;)

Jetzt kann ich mich wieder den verbliebenen Problemen widmen.
Updatecheck, Debug und Toggle edit / preview

cmb
Posts: 13273
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Alternatives Admin-Menü

Post by cmb » Mon Mar 06, 2017 10:35 am

frase wrote:Besser wäre es, wenn das Plugin-eigene Stylesheet abhängig von der Konfiguration unterschiedliche Inhalte hätte.
Das wurde schon das ein oder andere Mal nachgefragt. Es wäre grundsätzlich denkbar, das Stylesheet von PHP parsen zu lassen, so dass PHP-Tags enthalten sein könnten. Allerdings gibt es da u.U. ein Problem bezüglich der Ladereihenfolge, da immer erst die Stylesheets geladen werden, und dann erst die index.php Dateien der Plugins. Kein Problem, solange nur Pluginkonfigurationsvariablen im Stylesheet ausgegeben werden sollen, aber wenn Funktionen benötigt werden, müssten diese als Workaround in required_classes.php definiert werden; oder aber ab XH 1.7 könnte Klassen-Autoloading genutzt werden.

Frage: wäre ein solches "Feature" wirklich wünschenswert? Immerhin macht es die Stylesheets schwerer lesbar.

Zu diesem Thema siehe auch utakas Vorschlag für ein Enqueue-System. Damit könnte ein Plugin beliebige Stylesheets verlinken lassen können, ohne sich Gedanken über $hjs, $bjs etc. zu machen. Und bei einer solchen Variante könnte man vielleicht auch tricksen, so dass auch Stylesheets noch spät (sprich, nachdem der <head> eigentlich schon abgeschlossen ist) korrekt verlinkt werden könnten.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 3084
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Alternatives Admin-Menü

Post by frase » Mon Mar 06, 2017 11:02 am

Hi Christoph,
von mir keine fundierte Antwort, aus bekannten Gründen.
Utakas Vorschlag klingt allerdings interessant.

Nochmal zum Updatecheck:
if (updateCheckScript.length) { ...
Scheint immer zu stimmen - egal, ob es Updates gibt oder nicht.

cmb
Posts: 13273
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Alternatives Admin-Menü

Post by cmb » Mon Mar 06, 2017 11:46 am

frase wrote:Nochmal zum Updatecheck:
if (updateCheckScript.length) { ...
Scheint immer zu stimmen - egal, ob es Updates gibt oder nicht.
Um das auszuprobieren, habe ich mal hi_UpdateCheck deaktiviert – das Ergebnis war ein White-Screen-of-Death. Das Problem ist folgendes in fhs_adminmenu():

Code: Select all

    include_once "{$pth['folder']['plugins']}jquery/jquery.inc.php";
    include_jQuery(); 
Das müsste aus der Funktion raus, und oben im Block in index.php eingefügt werden.

Und zumindest wenn hi_updateCheck dann deaktiviert ist, wird auch im neuen Adminmenü kein Hinweis mehr angezeigt.

Aktiviere ich hi_UpdateCheck wieder, dann werden tatsächlich vorhandene Updates signalisiert, auch wenn tatsächlich alles auf dem neusten Stand ist. Das Problem ist dass der UpdateCheck das Script, auf das geprüft wird immer ausgibt (sprich, das Info-Icon immer ins DOM injiziert), es aber nur diplayed wird, wenn auch wirklich Updates verfügbar sind. (Warum eigentlich?)

Auf jeden Fall müsste der reguläre Ausdruck entsprechend angepasst werden, damit es mit dem aktuellen hi_UpdateCheck funktioniert, also statt des obigen Code-Schnipsels müsste etwa folgendes verwendet werden:

Code: Select all

(function () {
    var updateCheckScript = $("script").filter(function () {
        return /\$\("#xh_adminmenu_update"\)\.css\("display","block"\)/.test($(this).text());
    });
    if (updateCheckScript.length) {
        alert("Updates available");
    }
}()); 
Das ist so natürlich alles andere als robust, und kann bestenfalls ein Workaround sein.

PS: Ich habe Holger mal wegen einer robusten Lösung des Update-Check-Problems angeschrieben,
Last edited by cmb on Mon Mar 06, 2017 11:58 am, edited 1 time in total.
Reason: PS hinzugefügt
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 3084
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Alternatives Admin-Menü

Post by frase » Mon Mar 06, 2017 12:07 pm

Unglaublich.
Christoph, es funktioniert. :D

Zumindest dann, wenn der Updatecheck funktioniert.
Es passiert manchmal, dass Updates gemeldet werden, obwohl es gar keine gibt - oder umgekehrt.
Das passiert aber auch mit dem originalen Adminmenü (manchmal). Ich habe bisher nicht herausfinden können, warum.

Nochwas:
Sporadisch und nicht reproduzierbar taucht die Meldung in der Console auf:
SCRIPT5007: Die Eigenschaft "parentNode" eines undefinierten oder Nullverweises kann nicht abgerufen werden.
Datei: admin.js, Zeile: 470, Spalte: 9
Ich glaube, das hat Ludwig auch schonmal erwähnt.

cmb
Posts: 13273
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Alternatives Admin-Menü

Post by cmb » Mon Mar 06, 2017 1:35 pm

frase wrote:Zumindest dann, wenn der Updatecheck funktioniert.
Es passiert manchmal, dass Updates gemeldet werden, obwohl es gar keine gibt - oder umgekehrt.
Das passiert aber auch mit dem originalen Adminmenü (manchmal). Ich habe bisher nicht herausfinden können, warum.
Das könnte daran liegen, dass der UpdateCheck diese Info in der Session speichert. Wurde ein veraltetes Plugin erkannt, dann wird die Info vermutlich gar nicht aktualisert, falls man das Plugin aktualisiert, und sich nicht auch wenigstens aus- und wieder einloggt.
frase wrote:Sporadisch und nicht reproduzierbar taucht die Meldung in der Console auf:
SCRIPT5007: Die Eigenschaft "parentNode" eines undefinierten oder Nullverweises kann nicht abgerufen werden.
Datei: admin.js, Zeile: 470, Spalte: 9
Ich glaube, das hat Ludwig auch schonmal erwähnt.
Ja, das hatte Ludwig erwähnt, und ich habe es kurzerhand für XH 1.7 gefixt.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 3084
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Alternatives Admin-Menü

Post by frase » Tue Mar 07, 2017 1:23 pm

Ein möglicher Release Candidate wäre für mich:
Version 08
Edit: Link nicht mehr verfügbar. Bitte letzte Version in diesem Thread verwenden.

Was ist neu?
- Alle Elemente, die fix über der Seite liegen sind nur noch Icons (Buttons) mit Title.
- Tatas Vorschlag den Edit/Preview-Link aus dem Menü herauszuholen, wurde mit Christophs Code umgesetzt.
- Updatecheck-Hinweis wird im Menü angezeigt (Christophs Code).
- Access-Keys für Menü [1] und Edit/Prewiev [2]

Fragen:
Wäre es sinnvoll, den LOGOUT-Button auch noch heraus zu holen?
Ist das Menü einigermaßen ergonomisch bzw. User-freundlich?
Wohin setzt man den Debug-Modus-Hinweis?

Christophs Code zur Behandlung der Debug-Meldungen habe ich zwar eingefügt, kann aber noch nichts damit anfangen.
Edit:
Ha ha, ich habe mal eine Debug-Meldung künstlich produziert und voilá: Jetzt weiß ich was ich machen muss -> nächste Version.

Falls ihr Lust und Zeit habt, testet doch bitte in allen möglichen Umgebungen und Anwendungsfällen.
Last edited by frase on Fri Mar 10, 2017 8:36 am, edited 2 times in total.

Tata
Posts: 3068
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Alternatives Admin-Menü

Post by Tata » Tue Mar 07, 2017 1:36 pm

frase wrote:Wohin setzt man den Debug-Modus-Hinweis?
Nach meiner Meinung würde es ganz gut reichen, wenn das AdminMenu Button farbig unterscheidet, ob es mit/ohne eingeschaltetem Debug-Modus läuft oder nicht. Oder (um Platz zu sparen), nur eine Ikone dafür einfügen.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

frase
Posts: 3084
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Alternatives Admin-Menü

Post by frase » Tue Mar 07, 2017 1:45 pm

@Tata
Hm, da muss ich noch rausfinden, wie man DIVs im DOM verschiebt.

cmb
Posts: 13273
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Alternatives Admin-Menü

Post by cmb » Tue Mar 07, 2017 1:52 pm

frase wrote:Hm, da muss ich noch rausfinden, wie man DIVs im DOM verschiebt.
Ist eigentlich ganz einfach. jQuery bietet ja diverse Funktionen, um neue Elemente einzufügen. Diese (zumindest einen Teil davon) kann man auch zum Verschieben nutzen, wenn man eben kein HTML übergibt, sondern ein DOM-Element. Also z.B.:

Code: Select all

var zuVerschiebendesElement = $("…");
var referenzElement = $("…");
referenzElement.append(zuVerschiebendesElement);
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply