Onepage_XH: (s)doc(s)

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

Re: Onepage_XH: (s)doc(s)

Post by frase » Mon May 13, 2019 8:11 am

Also: Test mit deinem Master.

Example-JS in den Template-Ordner kopiert.
Offensichtlich funktioniert alles, wie von dir gewünscht. (in der Plugin-Konfiguration muss "use_javascript" unbedingt angeschaltet sein!)
Auf den ersten Blick sieht es gut aus.

ABER:
Es gibt ein Problem bei Verwendung des Plugins "fhs_adminmenu" - da beißt sich irgendetwas.
Ich habe das Plugin im Einsatz, weil es mit dem Header und dem XH-Adminmenü Probleme gibt und ich keine Lust hatte da wieder lange rumzufummeln, bis das passt.

Wenn du den Download testest, wirst du es sehen.
Einfach alles auf einen Server kopieren und einloggen - dauert keine 10 Minuten.
Dein Plugin einfügen und dein JS in den Template-Ordner legen.

Testen mit und ohne "fhs_adminmenu".

Im Template habe ich (ab Zeile 84) die Bedingung stehen: admin & $edit > toc() else onepage_toc().
Wenn du das rausnimmst und nur onepage_toc() stehen lässt (Zeile 91), ändert sich nichts am Umschalt-Problem (mit fhs_adminmenu).

Zusammenfassung:

1. sehr gut:
onepage.js oder onepage.min.js im Template-Ordner wird sauber übernommen.

2. sehr gut:
eindeutige IDs scheinen zu funktionieren
Habe mal eine Seite namens "Test 1. (x) [y]" angelegt -> funktioniert.

3. Hashes ???
Im Moment scheint mir das Verhalten in deinem Beispiel-JS schlüssig und gut.
(noch kein abschließendes Urteil)

4. Wunsch
Position, ab wann toggleTopLink() aktiv wird konfigurierbar machen (ist fest auf 300).
(evtl. so, wie die anderen Konfigs im JS oder besser als Option in der Plugin-Konfig)

Ich werde weiter mit diesem Master testen.

Holger
Site Admin
Posts: 3155
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany
Contact:

Re: Onepage_XH: (s)doc(s)

Post by Holger » Mon May 13, 2019 10:39 pm

Soo, hab' mir das jetzt doch schon mal angeschaut:

Konfiguration: Version 01 des Templates, aktueller Master meines OnePage-Forks, toc() deaktiviert, wie oben beschrieben, meine jquery-onepage.js im Template-Ordner.

Wechsel Edit- / View-Modus klappt ja.
Seitenwechsel im Bearbeitungsmodus ist auch kein Problem.
Zurückschalten in den Vorschau-Modus klappt auch. Klickt man dann auf einen Menüeintrag (die erzeugten Links im Menü sind übrigens richtig) wird auch zur richtigen Stelle gescrollt, danach gibt es aber einen Refresh der Seite und in der Adresszeile steht nur noch der Hash. Das wäre das richtige Szenario für den normalen Besucher der Seite, nicht aber für den Admin.
Konkret:
im Admin-Modus ist die URL für die Seite "Download" .../?Content#id2_Content und für den Nicht-Admin entsprechend nur .../#id2_Content.

Damit onepage.js - und auch meine Jquery-Version - wissen, ob das CMS im Admin - Mode ist, wird geprüft ob es die ID #xh_adminmenu gibt. Vielmehr noch genauer: wenn es die ID gibt wird noch geprüft, ob der erste Link der unsortierten Liste im href ein "normal" stehen hat. An mehreren Stellen ist es wichtig, dass das Skript weiß ob es im Admin-Modus ist bzw. dann auch, ob im Edit- oder Vorschaumodus.
Leider baut das fhs_adminmenu - Plugin da in Zeile 16 eine Inkompatibilität ein:

Code: Select all

$("#xh_adminmenu").attr("id", "fhs_adminmenu");
Dadurch geht dann onepage.js richtigerweise davon aus, dass das CMS nicht im Admin-Modus ist. Die Folge ist dann das vermeintliche Fehlverhalten der Navigation.

Wenn Du die Zeile mal auskommentierst ist die Darstellung des Adminmenüs zwar hin, es bleibt aber bedienbar und die Klicks im Onepage-Menü führen dann alle ans richtige Ziel.

Okay, Problem erkannt. Wie nun lösen?
Eine Lösung wäre ein für fhs_adminmenu angepasstes onepage.js per Template auszuliefern. Dann wird aber das normale Admin-Menü nicht mehr unterstützt.
Generell löst das aber nicht das Problem, dass fhs-adminmenu erst einmal nicht mit dem OnePage-Plugin kompatibel ist :( .

Anbei noch eine angepasste onepage.js die mit dem Template und dem fhs-adminmenu - Plugin läuft.
You do not have the required permissions to view the files attached to this post.

Holger
Site Admin
Posts: 3155
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany
Contact:

Re: Onepage_XH: (s)doc(s)

Post by Holger » Mon May 13, 2019 10:41 pm

Ach ja:
frase wrote:
Mon May 13, 2019 8:11 am
3. Hashes ???
Im Moment scheint mir das Verhalten in deinem Beispiel-JS schlüssig und gut.
(noch kein abschließendes Urteil)
Das müssen wir, zu gegebener Zeit, noch einmal ganz genau durchleuchten.
frase wrote:
Mon May 13, 2019 8:11 am
4. Wunsch
Position, ab wann toggleTopLink() aktiv wird konfigurierbar machen (ist fest auf 300).
(evtl. so, wie die anderen Konfigs im JS oder besser als Option in der Plugin-Konfig)
Ja klar - ist nicht vergessen. Hatte ich aber zeitlich nicht mehr geschafft. Kommt dann aber bald.

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

Re: Onepage_XH: (s)doc(s)

Post by frase » Tue May 14, 2019 6:08 am

Holger wrote:
Mon May 13, 2019 10:39 pm
Okay, Problem erkannt. Wie nun lösen?
Eine Lösung wäre ein für fhs_adminmenu angepasstes onepage.js per Template auszuliefern. Dann wird aber das normale Admin-Menü nicht mehr unterstützt.
Generell löst das aber nicht das Problem, dass fhs-adminmenu erst einmal nicht mit dem OnePage-Plugin kompatibel ist :( .

Anbei noch eine angepasste onepage.js die mit dem Template und dem fhs-adminmenu - Plugin läuft.
Hi Ho,
tut mir sehr sorry, dass du dich nun auch noch mit solchen externen Exoten herumschlagen musst. :( ;-)

Die Lösung mit einer Extra-onepage.js für fhs_adminmenu-Nutzer ist zwar blöd zu dokumentieren, aber doch praktikabel.
Und wie es aussieht scheint die abgewandelte Datei gut zu funktionieren. Bei Updates des Onepage-Plugins dann aber wahrscheinlich nicht mehr.

Ich muss da nochmal nachdenken.
Einerseits möchte ich fhs_adminmenu nicht zur Bedingung für das Template machen - andererseits möchte ich es aber auch nicht
als inkompatibel erklären.
Allerdings macht eben das fixe (oder auch scrollende) xh_adminmenu so einige Layoutprobleme.

Holger
Site Admin
Posts: 3155
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany
Contact:

Re: Onepage_XH: (s)doc(s)

Post by Holger » Tue May 14, 2019 7:37 am

frase wrote:
Tue May 14, 2019 6:08 am
Die Lösung mit einer Extra-onepage.js für fhs_adminmenu-Nutzer ist zwar blöd zu dokumentieren, aber doch praktikabel.
Und wie es aussieht scheint die abgewandelte Datei gut zu funktionieren. Bei Updates des Onepage-Plugins dann aber wahrscheinlich nicht mehr.
Mal generell: eine eigene onepage.js sollte selbstverständlich möglichst updatesicher sein. Oder, besser gesagt, vor Updates sicher sein ;) . In vielen Fällen macht es auch Sinn, die onepage.js im Template auszuliefern.
Es gibt ja generelle Abmachungen, zum Beispiel die vom Plugin verwendeten Container, die eben aus Gründen der Abwärtskompatibilität nicht so einfach im Plugin verändert werden dürfen.
Auch die Änderungen, die ich bis jetzt gemacht habe, sollten keine Auswirkungen auf die Funktion einer bestehenden Seite haben.

Allerdings habe ich den Aufbau der Links verändert, was zu einem BC-Break bzgl. bestehenden Bookmarks etc. führen kann.
Genereller Unterschied ist, dass ich jetzt immer den Hash an die Url anhänge. Das macht die Sache IMO deutlich einfacher. Allerdings muss das noch genau durchdacht und geprüft werden. Vielleicht gibt es doch im Detail nun Abweichungen zu vorher (Mailform etc.?).
Diese Vereinfachung bringt mit sich, dass die Jquery-Version des JS nun nur noch wissen muss, ob das CMS im Admin-Mode ist oder nicht. Und ich denke auch, dass man das bei der "normalen" onepage.js ebenso handhaben könnte. Zwischen Edit- und Vorschaumodus müsste nicht mehr unterschieden werden.

Dadurch wäre dann für das fhs-adminmenu vielleicht eine simple Lösung denkbar, indem man ein Fake-Element mit der Id #xh_adminmenu einschleust. Das wäre zumindest einen Versuch wert.

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

Re: Onepage_XH: (s)doc(s)

Post by frase » Tue May 14, 2019 8:00 am

Rrrrrrrr, das wird ja alles wieder ziemlich wissenschaftlich.
Ich bin doch nur der "Stuart (Bloom)" im Team ;-)
Holger wrote:
Tue May 14, 2019 7:37 am
Dadurch wäre dann für das fhs-adminmenu vielleicht eine simple Lösung denkbar, indem man ein Fake-Element mit der Id #xh_adminmenu einschleust. Das wäre zumindest einen Versuch wert.
Sobald ein weiteres Element mit der ID xh_adminmenu vorhanden ist, funktioniert fhs_adminmenu nicht mehr.

Später mehr.

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

Re: Onepage_XH: (s)doc(s)

Post by frase » Tue May 14, 2019 8:31 am

Übrigens:
Mit der für fhs_adminmenu angepassten JS-Version gibt es im Menü ein "Blitzdingsen".

Es wird wohl darauf hinauslaufen, dass ich das Template an das normale XH-Menü anpassen und fhs_adminmenu für dieses Template verbieten muss.

(Es sei denn, man findet für das Onepage-Plugin eine Möglichkeit, den Adminmodus nicht anhand von #xh_adminmenu zu erkennen.)

Holger
Site Admin
Posts: 3155
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany
Contact:

Re: Onepage_XH: (s)doc(s)

Post by Holger » Tue May 14, 2019 8:36 am

frase wrote:
Tue May 14, 2019 8:31 am
Übrigens:
Mit der für fhs_adminmenu angepassten JS-Version gibt es im Menü ein "Blitzdingsen".
Ja, könnte sein. Ist das auch beim Besuch als Nicht-Admin so?
frase wrote:
Tue May 14, 2019 8:31 am
(Es sei denn, man findet für das Onepage-Plugin eine Möglichkeit, den Adminmodus nicht anhand von #xh_adminmenu zu erkennen.)
Hmm. Ideen?

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

Re: Onepage_XH: (s)doc(s)

Post by frase » Tue May 14, 2019 8:43 am

Holger wrote:
Tue May 14, 2019 8:36 am
Ja, könnte sein. Ist das auch beim Besuch als Nicht-Admin so?
Das ist ausschließlich beim Besuch als Nicht-Admin so (Frontend). :cry:
Im Adminmodus -> Vorschau nicht.
Betrifft "onepage_current".
Der angeklickte Menüpunkt wird kurzzeitig current, dann springt es zurück zum gerde aktiven und scrollt dann zum angeklickten.

Holger
Site Admin
Posts: 3155
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany
Contact:

Re: Onepage_XH: (s)doc(s)

Post by Holger » Tue May 14, 2019 8:46 am

frase wrote:
Tue May 14, 2019 8:43 am
Holger wrote:
Tue May 14, 2019 8:36 am
Ja, könnte sein. Ist das auch beim Besuch als Nicht-Admin so?
Das ist ausschließlich beim Besuch als Nicht-Admin so (Frontend). :cry:
Im Adminmodus -> Vorschau nicht.
Betrifft "onepage_current".
Der angeklickte Menüpunkt wird kurzzeitig current, dann springt es zurück zum gerde aktiven und scrollt dann zum angeklickten.
Und das ist mit der nicht angepassten Version der onepage.js nicht so?

Post Reply