H2OnePagers

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Post Reply
Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: H2OnePagers

Post by Holger » Tue Nov 08, 2016 11:25 am

Ach ja, wir sollten nicht vergessen, dass man die Ids ja dann auch in der Adressleiste des Browsers sieht.
Und: bei OnePage_XH gibt es ja jetzt schon die numerischen Ids, die auf jeden Fall eindeutig sind, aber eben nicht "schön" in der Adressleiste aussehen.

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

Re: H2OnePagers

Post by frase » Tue Nov 08, 2016 11:26 am

Ich erwähnte das schon des Öfteren: Mein Wissen und Verständnis, was PHP betrifft, ist äußerst begrenzt.
Ich kann nur auf die Probleme aufmersam machen, sofern sie mir überhaupt auffallen.
Sinnvolle Beiträge zu diesem Thema kann ich also nicht wirklich liefern.

Nebenbei:
Habe mal auf der Anchorific-Testseite unter Anwendung Chinesisch und Kyrillisch probiert.
Das eine geht nicht, das ander schon.

lck
Posts: 2967
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: H2OnePagers

Post by lck » Tue Nov 08, 2016 12:53 pm

Zwecks http://www.fhseidel.de/cmsxh/fhs-anchor ... erne-links (Edit: Sehe gerade, dass der Link auch nicht richtig zum Ziel springt. Das scheint wiederum ein Problem des fixed-Headers zu sein?)

Das name-Attribut ist veraltet, verwende statt:
<a name="depp"></a> besser <a id="depp"></a>

oder: <span id="depp"></span> oder <span id="depp">unter’s“ </span>
Dann sollte der interne Link richtig angesprungen werden, zumindest funktioniert es nach der Änderung mit den Dev-Tools. Ich sollte auch mal dieses Dings, "wu-wei-Prinzip" anwenden ;)
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

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

Re: H2OnePagers

Post by frase » Tue Nov 08, 2016 1:19 pm

So langsam muss ich dich als eigentlichen Urheber angeben, Ludwig ...
Kannste mal bei deiner Bank nachfragen, ob noch Platz ist? :P
Wenn ich irgendwann mal wieder einen Cent verdiene, kriegste was ab.
(Das war Spaß. [schreibe ich mal sicherheitshalber hin])

Ich hatte mich auf das Ankersymbol im Tiny verlassen. Der schreibt "name".
Der fixe Header stört aber auch hier, genau wie bei deinem Deep-Link.
Edit:
Falsch geguckt: Stört nur bei Deep-Links.
Last edited by frase on Tue Nov 08, 2016 1:34 pm, edited 1 time in total.

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

Re: H2OnePagers

Post by Holger » Tue Nov 08, 2016 1:23 pm

frase wrote:Ich erwähnte das schon des Öfteren: Mein Wissen und Verständnis, was PHP betrifft, ist äußerst begrenzt.
Das macht ja nichts. Durch die Arbeit von dir und Ludwig finden wir ja erst die Probleme :D .

Also dann kurz dazu, wie anchorific.js die Ids generiert:
zuerst wird alles in der Überschrift, was nicht auf [A-Za-z0-9_] passt und auch kein Leerzeichen ist, entfernt.
Danach werden die Leerzeichen durch Bindestriche ersetzt und
zuletzt dann der ganze String in Kleinbuchstaben umgewandelt.

Das könnte man so, mit fast identischem Code, in den Funktionen von Christoph übernehmen.
Es verbleiben dann aber mindestens 2 Probleme:
- es könnte eine Zahl am Anfang stehen
- es könnten Duplikate vorkommen.
frase wrote:Nebenbei:
Habe mal auf der Anchorific-Testseite unter Anwendung Chinesisch und Kyrillisch probiert.
Das eine geht nicht, das ander schon.
Bei einem bleibt nach der "Bereinigung" ein Leerzeichen übrig, was dann in einen Bindestrich ersetzt wird. Diese Id ist zwar auch nicht valide, die Browser scheinen sie aber zu tolerieren.

So funktioniert die Sache dann natürlich nicht mit Chinesisch und Kyrillisch.
Hier wäre die interne uenc() - Funktion zumindest eine mögliche Lösung. Sie macht aus Chinesisch und Kyrillisch dann erst %1234%4567.... usw.

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

Re: H2OnePagers

Post by Holger » Tue Nov 08, 2016 1:25 pm

frase wrote:Kannste mal bei deiner Bank nachfragen, ob noch Platz ist? :P
Muss man da nicht inzwischen etwas Zahlen, wenn sie drauf aufpassen?

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

Re: H2OnePagers

Post by frase » Tue Nov 08, 2016 1:45 pm

Zu Russisch:
Die <artikle>ID wird durch Christoph zu: "%25D0%2590%25D0%25BB%25 ..."
Die <hx>ID wird bei Kyrillisch durch anchorific.js zu: "-" und zwar bei allen kyrillischen Überschriften.
Gibt es nur eine von der Sorte geht es. "-" ist dann noch eindeutig.
Gibt es mehrere, gibts Chaos.

Da muss ich wohl irgendwo den Hinweis geben, dass es nur mit Latin-Sprachen geht. Oder?

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

Re: H2OnePagers

Post by Holger » Tue Nov 08, 2016 3:05 pm

frase wrote:Da muss ich wohl irgendwo den Hinweis geben, dass es nur mit Latin-Sprachen geht. Oder?
Nein. Man kann in anchorific.js noch encodeURI() bei der Bildung der Id zur Hilfe nehmen. Dann sieht es aus wie bei Christophs Lösung.

Aber, jetzt habe ich mal ganz genau geschaut:

Christophs Skript, zum Splitten der Seiten, erzeugt ja schon ziemlich eindeutige Ids, da ja die Überschriften der Elternseiten mit übernommen werden.
Beispiel:

Code: Select all

 id="Demo-Seite%2F2.1.-Zwei-Eins%2F2.1.1.-Zwei-Eins-eins"
Würde man das bereinigen, bliebe dann

Code: Select all

id="Demo-Seite-21-Zwei-Eins-211-Zwei-Eins-eins"
(Punkte würde ich entfernen). Das ist schon einmal prima. Beim Fallback für die Sub-Navigation wird es wohl ähnlich sein, da muss ich noch einmal nachsehen.
Zur Sicherheit, damit die Id immer mit einem Buchstaben beginnt, könnte man noch den Präfix "op_" hinzufügen:

Code: Select all

id="op_Demo-Seite-21-Zwei-Eins-211-Zwei-Eins-eins"
Und je nach Geschmack, noch alles in Kleinbuchstaben umwandeln, wie es anchorifics.js macht.
Das wäre, zumindest in meinen Augen, die Lösung. Und so könnte man es dann auch bei OnePage_XH machen.
Christoph?


Leider schaut aber anchorifics.js nur auf die aktuelle Überschrift, und ignoriert die Elternüberschriften. Das müsste man noch nachrüsten, dann wäre das Problem mit der Eindeutigkeit schon gelöst :? . Hätten die Überschriften die entsprechenden Ids - und nicht der übergeordnete Container, dann würde anchorifics.js diese Ids automatisch übernehmen.
Hmm, da kommt mir eine Idee: Vielleicht ist es simpler, in anchorifics.js einfach die Id des übergeordneten Containers, sofern vorhanden, zu übernehmen, anstatt sie aus der Überschrift selbst zu erzeugen.
Dann müsste man auch immer nur ein einer Stelle nachbessern.
Wenn möglich schau mir das heute Abend mal genauer an. So in der Art ".parent().prop('id')" sollte das doch gehen...

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

Re: H2OnePagers

Post by frase » Tue Nov 08, 2016 4:17 pm

Holger wrote:Christoph?
Machen wir doch vorne ein "Holz-Mundstück" dran. Dann isser ganz schnell wieder im Boot.
(Für Leute, die meinen blöden Gag nicht verstehen: Startseite 2.Abschnitt, 3.Satz)

Aber im Ernst: Es ist wieder mal unglaublich, mit welchem Elan manche Leute hier Unterstützung leisten.
Hut ab! Danke!

Ich werde wohl erst wieder morgen dabei sein. Sorry.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: H2OnePagers

Post by cmb » Tue Nov 08, 2016 4:39 pm

Hui, ganz schön was los hier!

Nur mal kurze Rückmeldung: die URL/Anchor-Geschichte ist wirklich ein Problem, die ich in dem Entwurf weitgehend ignoriert hatte (ich glaube uenc() ist dabei, aber das behandelt die Seitentrenner nicht korrekt). Wird im allgemeinen auch nicht einfach zu lösen sein, da sich die Browser da unter Umständen anders verhalten. Was auf jeden Fall problematisch ist, ist nicht bekannte Zeichen einfach zu entfernen (anchorific zumindest dürfte bei anderen Skripten als Lateinisch nicht wirklich funktionieren).

Bezüglich der "vollen" Anker: da hatte mich Chaos aufgeschreckt. In meiner lokalen Testumgebung war es aber so, dass auch anchorific "volle" Anker verlinkt hat. Daher hatte ich das auch so gemacht. Im Prinzip sollten natürlich die durch PHP und die durch anchorific erzeugten Links (Anker) identisch sein.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply