Page 1 of 1

Sitemap in einer Seite ausgeben (Show sitemap on a page)

Posted: Sat Jul 07, 2018 7:37 pm
by lck
Das funktioniert per Aufruf in der Seite:

Code: Select all

{{{li($hc, 'sitemaplevel');}}}
Siehe dazu Post viewtopic.php?f=16&t=8438#p46024 und vorherigen Thread viewtopic.php?f=16&t=13983&start=40#p67391

Der beschriebene Fehler von Tata und mir tritt dann auf, wenn auch das OnePage-Plugin installiert ist! Hm, warum kann ich nicht sagen. Sollte doch eigentlich kein Problem sein, was läuft da schief?

Re: Sitemap in einer Seite ausgeben (Show sitemap on a page)

Posted: Sat Jul 07, 2018 9:58 pm
by cmb
lck wrote:
Sat Jul 07, 2018 7:37 pm
Der beschriebene Fehler von Tata und mir tritt dann auf, wenn auch das OnePage-Plugin installiert ist! Hm, warum kann ich nicht sagen. Sollte doch eigentlich kein Problem sein, was läuft da schief?
Aha! Das Problem ist, dass Onepage_XH das Scripting unmittelbar nach dem Laden der Plugins auswertet. $hc wird aber erst kurz danach befüllt. Das vorzeitige Auswerten des Skriptings wiederum wurde durchgeführt, um einen Bug zu beheben. Und das Befüllen von $hc kann eigentlich nicht vorgezogen werden, da Plugins die Sichtbarkeit einer Seite beeinflussen können, so dass diese nicht in $hc auftauchen darf. Ich denke, damit dass $hc im Content bei Verwendung von Onepage_XH nicht Verfügbar ist, kann man aber leben.

Insgesamt sollten wir aber langfristig versuchen, diese zeitlichen Abhängigkeiten zu minimieren. Letztlich ist hier $hjs das Problem, und $hjs ist eigentlich schon immer ein Problem, wenn ein Plugin nur durch einen Aufruf im Template ins Spiel kommt, der nach dem Aufruf von head() erfolgt (ich kann mich noch ganz gut an ein entsprechendes Problem mit der Fotogalerie aus meinen CMSimple_XH-Anfängen erinnern; den Thread mag ich aber gar nicht raussuchen, weil ich mich dort episch blamiert habe). Dazu gibt es diverse Workarounds, aber der einzig befriedigende (zumindest für JS) war $bjs, und das ist eigentlich auch nicht mehr state-of-the-art. Und bezüglich jQuery hilft es sowieso nicht. Vielleicht sollten wir doch mal konkret darüber nachdenken, $hjs erst in XH_finalCleanUp() zu injizieren?