Page 1 of 14

Neues "MultiOnePage" - Plugin

Posted: Sun Jun 16, 2019 10:35 pm
by Holger
[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...

Re: Neues "MultiOnePage" - Plugin

Posted: Mon Jun 17, 2019 6:05 am
by frase
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.

Re: Neues "MultiOnePage" - Plugin

Posted: Mon Jun 17, 2019 11:17 am
by frase
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.)

Re: Neues "MultiOnePage" - Plugin

Posted: Mon Jun 17, 2019 11:26 am
by lck
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.

Re: Neues "MultiOnePage" - Plugin

Posted: Mon Jun 17, 2019 12:10 pm
by Holger
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.

Re: Neues "MultiOnePage" - Plugin

Posted: Mon Jun 17, 2019 12:16 pm
by Holger
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.

Re: Neues "MultiOnePage" - Plugin

Posted: Mon Jun 17, 2019 1:39 pm
by frase
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;
}

Re: Neues "MultiOnePage" - Plugin

Posted: Mon Jun 17, 2019 2:40 pm
by frase
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?

Re: Neues "MultiOnePage" - Plugin

Posted: Mon Jun 17, 2019 3:09 pm
by frase
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.

Re: Neues "MultiOnePage" - Plugin

Posted: Mon Jun 17, 2019 4:30 pm
by Holger
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 :? .