Neues "MultiOnePage" - Plugin

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

Neues "MultiOnePage" - Plugin

Post by Holger » Sun Jun 16, 2019 10:35 pm

[Edit] Die aktuellen Downloads von Multionepage_XH finden sich auf GitHub [/Edit]

Hallo zusammen,

die letzten Wochen über gab es hier einige sehr lange Threads, in denen es u.A. um "MultiOnepager" ging.
Gemeint sind Sites, die mehrere OnePager in einer Seite vereinen.
Konkret werden dabei die Inhalte einer Level-1-Seite, zusammen mit den Inhalten aller Unterseiten, als "OnePager" ausgegeben. Das Seitenmenü scrollt im Ansichtsmodus dann lediglich zu den jeweiligen Seiten-IDs, anstatt immer eine (Unter-)Seite separat zu laden.
Um mehrere Onepager anzulegen, müssen lediglich mehrere Level-1-Seiten mit Unterseiten angelegt und verlinkt werden.
Zum besseren Editieren wird jede Seite nach wie vor einzeln bearbeitet.

Eigentlich wollte ich die Funktionen für MultiOnePager mit in das bestehende Onepage_XH-Plugin packen. Am Ende wären das aber zu viele Kompromisse gewesen und ein eigenes Plugin für diesen Zweck erschien mir besser.

Einen ersten Entwurf für ein "Multi-OnePage-Plugin" habe ich eben auf GitHub veröffentlicht. Es ist noch nicht ganz komplett, sollte aber für erste Versuche nutzbar sein.
Im Prinzip funktioniert alles wie beim Onepage_XH-Plugin - mit geänderten Template-Tags. Die Content-Struktur, die verwendeten Klassen und IDs, die Struktur des Navigationsmenüs usw. entsprechen denen des "normalen" Onepage_XH-Plugins. Die separate Verlinkung der Level-1-Seiten im Template kann z.B. mit

Code: Select all

toc(1,1)
erledigt werden. Genaueres dazu findet sich in der Readme-Datei auf GitHub. Ich hoffe, dass sich dadurch leichter bestehende Onepage-Templates für MultiOnePager erweitern lassen.

Es gibt auch noch eine undokumentierte Menüfunktion, die alle Seiten der gesamten Webseite in einem Menü ausgibt. Dazu später mehr, falls die Funktion einmal interessant wird.

Sofern jemand Zeit für Tests hat: einfach den gesamten Code als ZIP von GitHub laden und den Inhalt des Ordners "multionepage_xh-master" im ZIP in einen neuen Ordner /plugins/multionepage/ kopieren.

Offen sind z.Zt. noch folgende Ideen:
- direkten Aufruf von Unterseiten verhindern, bzw. bei einzelnen Seiten per PageData ermöglichen
- Ausblenden der nicht sinnvoll nutzbaren Pagedata-Tabs, bzw. deaktivieren der nicht nutzbaren Felder im Tab "Seite"

Das sollte es grob gewesen sein. Ich hoffe, dass jemand Zeit und Lust für Tests und/oder die Anpassung / Erstellung eines Templates dafür hat ;) .

BTW: für meine Tests habe ich das Demo-Template aus dem Diskussionsthread verwendet und leicht angepasst. Für ein ansprechendes Styling des Menüs hat es aber nicht mehr gereicht...
Last edited by Holger on Wed Jun 26, 2019 7:41 pm, edited 1 time in total.
Reason: [Edit] dazu

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

Re: Neues "MultiOnePage" - Plugin

Post by frase » Mon Jun 17, 2019 6:05 am

Klingt sehr spannend.
Runtergeladen hab ich's schon, ansehen werde ich es mir aber frühestens heute abend können.
Feedback kommt auf jeden Fall.

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

Re: Neues "MultiOnePage" - Plugin

Post by frase » Mon Jun 17, 2019 11:17 am

Mal schnell zwischendurch:
Müsste es in ... \plugins\multionepage\classes\Controller.php Zeile 230 nicht heißen
ist:

Code: Select all

$pageData['onepage_class'],
soll (?):

Code: Select all

$pageData['multionepage_class'],
Ich hatte eine Debug-Meldung diesbezüglich.
Nachdem ich das geändert habe, ist die Meldung weg und alles scheint zu funktionieren.
(Später mehr.)

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

Re: Neues "MultiOnePage" - Plugin

Post by lck » Mon Jun 17, 2019 11:26 am

Holger wrote:
Sun Jun 16, 2019 10:35 pm
Sofern jemand Zeit für Tests hat: einfach den gesamten Code als ZIP von GitHub laden und den Inhalt des Ordners "multionepage_xh-master" im ZIP in einen neuen Ordner /plugins/multionepage/ kopieren.
Sehr schön, Holger. Werde es noch genau anschauen, kann halt noch etwas dauern.

Erster Schnelltest mit op_goaway (nicht ideal, aber für Tests ok).

1) Level-1 Menü toc(1,1)
Links eventuell klickbar lassen. Wird bisher als <span>...</span> ausgegeben.

2) Multionepage_toplink()
Ergibt einen fatalen Fehler, die Funktion existiert nicht. Laut index.php lautet der Aufruf Onepage_toplink()

3) Den Edit-Link in der Seite finde ich super.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

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

Re: Neues "MultiOnePage" - Plugin

Post by Holger » Mon Jun 17, 2019 12:10 pm

Hallo zusammen und vielen Dank für das erste Feedback :).
frase wrote:
Mon Jun 17, 2019 11:17 am
Müsste es in ... \plugins\multionepage\classes\Controller.php Zeile 230 nicht heißen
Ja, ein Bug.
lck wrote:
Mon Jun 17, 2019 11:26 am
1) Level-1 Menü toc(1,1)
Links eventuell klickbar lassen. Wird bisher als <span>...</span> ausgegeben.
Hmm, das ist das Template-Tag des Cores. Wenn wirklich nötig, kann ich einen Ersatz vorsehen. Dazu müsste ich aber wissen, wie genau das Ergebnis aussehen soll.
lck wrote:
Mon Jun 17, 2019 11:26 am
2) Multionepage_toplink()
Ergibt einen fatalen Fehler, die Funktion existiert nicht. Laut index.php lautet der Aufruf Onepage_toplink()
Nee, das muss in der Tat noch zu Multionepage_toplink() geändert werden, sonst gibt es ein Problem, wenn gleichzeitig das Onepage_XH-Plugin installiert ist.

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

Re: Neues "MultiOnePage" - Plugin

Post by Holger » Mon Jun 17, 2019 12:16 pm

Ach ja:
lck wrote:
Mon Jun 17, 2019 11:26 am
3) Den Edit-Link in der Seite finde ich super.
Ich auch. Aber er könnte in der Vorschau durchaus stören. Vielleicht kann man ihn, vom Template abhängig, per CSS in einen freien Bereich zwischen z.B. Überschrift und Sidebar verschieben?
Ich bin auch unsicher wegen der Position: besser über, oder unter der jeweiligen Seite :? .

Zur Not, wenn es echt stört, halt in der Konfig ausschalten.

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

Re: Neues "MultiOnePage" - Plugin

Post by frase » Mon Jun 17, 2019 1:39 pm

lck wrote:
Mon Jun 17, 2019 11:26 am
3) Den Edit-Link in der Seite finde ich super.
+1
Der sinnvollste Platz wäre wohl links vor dem ersten Inhalts-Element (auf gleicher Höhe) auf der jeweiligen Seite.
Mit negativem Einzug (margin-left: -XX) und inline(-block).
Das erste Inhaltselement wird wohl am häufigsten eine Überschrift sein.
Bin mir jetzt nicht sicher, ob der negative Einzug evtl. bei einigen Templates Probleme bereiten könnte (?).
Nur: Wie findet man das erste Element und schmuggelt den Link davor?

Test:

Code: Select all

.multionepage_editlink {
	position: absolute;
	margin-left: -30px;
	display: inline-block;
}

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

Re: Neues "MultiOnePage" - Plugin

Post by frase » Mon Jun 17, 2019 2:40 pm

lck wrote:
Mon Jun 17, 2019 11:26 am
1) Level-1 Menü toc(1,1)
Links eventuell klickbar lassen. Wird bisher als <span>...</span> ausgegeben.
Ich vermute, dass du dabei an DropDown-Menüs denkst.
Idee:
Alle Menüpunkte als <button> ausgeben.
Bei Links mit <button><a href "...">Text</a></button>
Bei aktivem Menüpunkt mit <button><span>Text</span></button>
So könntest du das Öffnen per Klick ohne Link erreichen - oddrr?

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

Re: Neues "MultiOnePage" - Plugin

Post by frase » Mon Jun 17, 2019 3:09 pm

Mit MultiOnepage-Plugin:
Im Sprungmenü (Scrollmenü) erscheinen die tatsächlichen Seitennamen.
Ohne Plugin mit anchorific;
Im Sprungmenü erscheinen die tatsächlichen Überschriften auf der Seite.

Was ist da nun besser?
Ich denke: Gut, dass es beide Möglichkeiten gibt.
Da kann man sich von Fall zu Fall entscheiden.

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

Re: Neues "MultiOnePage" - Plugin

Post by Holger » Mon Jun 17, 2019 4:30 pm

frase wrote:
Mon Jun 17, 2019 1:39 pm
Der sinnvollste Platz wäre wohl links vor dem ersten Inhalts-Element (auf gleicher Höhe) auf der jeweiligen Seite.
Ja, vermutlich. Ich denke aber, dass der Template-Autor das mittels CSS individuell für das jeweilige Template erledigen muss. Man könnte den Link natürlich auch irgendwie per JS im Plugin versuchen zu positionieren, aber da eine universelle Lösung zu finden, scheint mir fast unmöglich.
frase wrote:
Mon Jun 17, 2019 2:40 pm
Ich vermute, dass du dabei an DropDown-Menüs denkst.
Idee:
Alle Menüpunkte als <button> ausgeben.
Bei Links mit <button><a href "...">Text</a></button>
Bei aktivem Menüpunkt mit <button><span>Text</span></button>
So könntest du das Öffnen per Klick ohne Link erreichen - oddrr?
Schau' dir mal die Ausgabe von Multionepage_fulltoc() an. Das sollte für Dropdownmenüs passen, bzw. ein Anfang sein.
Und das 1-Level-Menü mit komplett klickbaren Einträgen auszugeben, sollte leicht integrierbar sein -- ich schau' mal.
frase wrote:
Mon Jun 17, 2019 3:09 pm
Mit MultiOnepage-Plugin:
Im Sprungmenü (Scrollmenü) erscheinen die tatsächlichen Seitennamen.
Ohne Plugin mit anchorific;
Im Sprungmenü erscheinen die tatsächlichen Überschriften auf der Seite.
Ja, MultiOnePage_XH und OnePage_XH kennen halt nur die Seitennamen. Die kennt wiederum anchorific.js nicht und muss sich mit den tatsächlichen Überschriften im Content begnügen.
Ob es da Vor- oder Nachteile gibt? Schließlich kann man auch mit dem neuen Seitensplitting den Seitennamen wie die erste Überschrift benennen :? .

Post Reply