 Und wirklich schlecht in Design, deswegen sieht das so aus, wie es aussieht und ich entschuldige mich im Vorhinein, dass es nicht schöner gesteilt ist. Ich habe einen Vortrag grob gegliedert in, was will ich eigentlich mit meinem OnePager? Was weiß ich dazu? Das heißt, was weiß ich tatsächlich, wie ich es umsetzen könnte? Wie kann ich es tatsächlich umsetzen? Was muss ich vorbereiten? Und was muss ich am Ende programmieren? Das heißt, ganz mit Bordmitteln bin ich nicht hingekommen. Ich musste eine kleine Programmierung vornehmen. Was will ich? Ein OnePager mit Bordmitteln. Das heißt, ich möchte keine großen Arbeiten noch vornehmen, um ein OnePager innerhalb von WordPress zu ermöglichen. Ich möchte in diesem OnePager beliebig viele Texte einbinden können, die ich einzeln editieren kann. Ich möchte sie in einer beliebigen Reihenfolge einbringen können. Das heißt, ich möchte die Reihenfolge auch ändern können, wenn ich feststelle, dass der eine Text gleich nach oben oder unten kommen soll. Ich möchte das Ganze, was ich da habe, auch beliebig oft verwenden können. Es ist natürlich die Frage, wie sinnvoll es ist, ein OnePager beliebig oft auf einer Website zu haben, aber war ein Anspruch, den ich mir gestellt habe. Ich wollte im Backend keine zusätzliche Programmierung haben. Das heißt, keine Widgets, keine Plugins. Ich wollte es wirklich mit dem Backend-Bordmitteln hinkriegen. Und am Ende wollte ich hauptsächlich feststellen, ob ich es überhaupt hinkriege. Das ist ja so sein Ehrgeiz. Was weiß ich dazu? Was weiß ich tatsächlich, was ich machen will? Was ist ein OnePager? Für mich ist ein OnePager eine Seite, die im Prinzip alles enthält, was normale Webseiten haben. Kontakt, Impressum, die gesamte Navigation, ohne dass ich weitere Unterseiten benötige. Welche Voraussetzungen bringe ich mit? Wie gesagt, ich bin PRP-Entwickler. Ich habe eine gewisse Kenntnis von der Templaterarchie. Kennt jemand die Templaterarchie von WordPress nicht? Okay, ja. Soll ich kurz mal darauf eingehen? Okay, dann gehe ich da kurz darauf ein. WordPress hat eine Templaterarchie. Das heißt, grundsätzlich reicht es für ein Theme, dass man Indexdateien und CSS-Dateien hat. Man kann jedoch auch für einzelne Seiten, für einzelne Beiträge, für Kategorien, für Archive, für Autoren separate Templaterteien anlegen. Die ein anderes Layout haben, andere CSS, anderes HTML, was man will. Das geht ziemlich tief. Man kann im Prinzip für jeden einzelnen Beitrag eine eigene Seite, eine eigene PRP-Seite erstellen, sodass sich das dann kaskadiert. Das heißt, wenn die Seite da ist, wird sie genommen, wenn sie nicht da ist, wird das nächste im Baum verwendet. Das kann man sehr hübsch sehen, findet sich auch im Codex. Soweit verstanden? Das geht im Prinzip von links nach rechts. Das heißt, wenn links die Seite da ist, wird sie genommen, wenn sie nicht da ist, wird das nächste im Baum genommen. Das ist eigentlich eine ganz einfache, schöne Sache. Man kann sehr, sehr viel damit in Templates machen. Also davon wusste ich zumindest schon mal was. Ich habe einen groben Überblick über die Funktionalität des Backends. Das heißt, ich weiß, wie man Beiträge anlegt, ich weiß, wie man Menüs anlegt, ich weiß, welche Einstellungen ich so machen kann. Und ich habe das größte Vertrauen darin, dass mir WordPress alles liefert, was ich für meine selbstgestellte Aufgabe benötige. Wie kann ich das Ganze umsetzen? Es gibt in WordPress verschiedene Möglichkeiten, Beiträge und Seiten in ein Verhältnis zueinander zu setzen. Für Beiträge haben wir Kategorien und Text. Und für Seiten können wir unter Seiten anlegen. Das heißt, wir können eine Seite in Seitenbäume unterbringen. Das lässt sich aber nicht besonders gut sortieren. Es gibt extra Ausgabeseiten dafür, für Archive, für Kategorien, für Text. Aber wir können es nicht sortieren ohne größeren Aufwand. Das heißt, wie könnte ich es mit Boardmitteln machen? Meine Idee war dazu, ich verwende das Menü. Denn im Menü kann ich beliebige Seiten zueinander in Beziehung setzen und sie auch untereinander verschieben. Also eigentlich fand ich es sogar einleuchtend. Das Zweite ist, wie stelle ich es da? In dieser gesamten Template-Hierarchie, die ich eben gezeigt habe, gibt es zwar viele Möglichkeiten, etwas darzustellen und auch Sonderdarstellungen zu machen, aber nicht das, was ich gesucht habe, nämlich nicht, einfach alle Punkte eines Menüs auszugeben. Ich habe noch ein bisschen rumgeguckt und festgestellt, es gibt etwas, das sich Seiten-Template nennt. Seiten-Templates erlauben mir für jede Seite ein eigenes Template anzulegen, eine eigene Template-Datei oder ein bisschen so. Ich kann dann Template-Datei anlegen und sie einer Seite zuordnen. Ein Seiten-Template zeichnet sich dadurch aus, dass es mit einem besonderen Hater anfängt, ein PHP-Tec auf, ein bisschen Kommentar, Template Name und dann ein eindeutiger Name. Das ist wichtig, aber am Anfang habe ich mir Fehler gemacht. Ich habe keinen eindeutigen Namen genommen, sondern die Namen eines anderen Templates, habe es nicht gefunden, habe es noch einmal geändert, war es da. Das Ganze lege ich einfach in das entsprechende Thieme rein. Das heißt, es ist völlig gleichgültig, welches Thieme es ist. Das ist jetzt ein 2015er gewesen, weil ich den screenshot gemacht habe. Das heißt, es liegt neben allen anderen Template-Dateien. Es taucht dann auf der entsprechenden Maske für das Anlegen von Seiten, auf der rechten Seite unter Template auf. Da gibt es dann einen kleinen Punkt, Template, kann ich auswählen, kann ich mein One-Pager auswählen. Also eigentlich ganz einfach. Was muss ich jetzt vorbereiten? Nachdem ich mir so eine Vorgedanke gemacht hatte, lege ich eine Basisseite an. Das heißt, meine erste Seite, weil ich muss ja irgendetwas haben, worüber ich etwas ansteuern kann. Normalerweise steuere ich meine Beiträge oder Seiten über den Slack oder die ID an. Oder das, was ich über Permalinks angelegt habe. Wenn ich diese Basisseite anlege, vergeb ich einen Titel. Das ist in diesem Fall wichtig. Es muss eindeutig sein, wie Titel immer Nummer sind. Und wir werden ihn zum späteren Zeitpunkt nochmal brauchen. Der Titel wird später auf der Seite nicht angezeigt, so wie ich es programmiert habe. Einfach aus dem Grund, dass ich verhindern wollte, dass ich im Zweifelsfall irgendwelche Sachen über CSS ausblenden muss, wenn ich dieses Template, diese Datei, die ich verwende, nochmal verwenden möchte. Sondern wenn ich einen H1 auf der Seite haben möchte, aber das ist eigentlich belanglos. Nur für diese Seite lege ich das Seiten-Template fest. Das heißt, ich gehe in den Text ein, mache Seiten-Template, fertig. Anschließend lege ich weitere Seiten an, beliebe ich viele. Und das Letzte gehe ich ins Menü. Und lege das Menü an. Wie man Seiten anlegt, denke ich weiß jeder. Also nicht Beiträge, sondern Seiten. Mit Ausnahme der Templateszuweisung ist diese Basis-Seite nichts Besonderes. Es passiert eigentlich nichts Großartiges hier. Noch mal, diese Zuweisung muss ich nur für die Basis-Seite vornehmen. Nicht für die anderen Seiten. Ich kann für andere Seiten auch Seiten-Templates verwenden. Spielt in diesem Zusammenhang aber keine Rolle, da die Basis-Seite nur aufgerufen wird beim Aufruf der Grund-Seite. Das heißt, aber anders zum Beispiel, ich könnte eine Seite, die ich hier in meinem One-Pager verwende, als Unterseite, auch als Basis-Seite für einen anderen One-Pager verwenden, wenn ich das dann unbedingt tun möchte. Menüs, denke ich, weiß auch jeder, ungefähr wie er es anlegen muss. Oder weiß das irgendwann nicht? Okay. Was das Ganze jetzt ein bisschen anders macht, ist, dass ich bei Menü ja auch ein Titel vergebe. Und für dieses Menü vergebe ich den gleichen Titel, wie ich für den man Basis-Seite verwendet habe. Das heißt, genau der gleiche Titel und warum das so ist, erkläre ich gleich. Alle weiteren Seiten bin ich als Unterseiten ein. Dann kommt so etwas raus. Als Erstes lege ich die One-Pager, also meine Basis-Seite, meine Basis-Seite heißt One-Pager. Es ist völlig egal, wie sie heißt. Ich kann sie benennen, wie ich möchte, ich habe sie als One-Pager Start genannt. Und das Menü heißt genau so. Es ist völlig gleichgültig, wie sie heißt. Es muss nur identisch heißen beides. Die Struktur, die ich hier genommen habe, das ist noch einmal, warum ich sie so gebaut habe. Man könnte sie auch anders bauen. Aber für meine Programmierung erschien mir das die geschickteste Variante zu sein. Jetzt komme ich zu dem, was ich programmieren musste. Dabei gibt es zwei wichtige Funktionen. Und dann gehe ich einmal durch den Quercode durch. Die erste Funktion kennt jeder, der schon mal mit Templates gearbeitet hat. Kennt irgendjemand nicht GetPost? Okay. GetPost holt sich kontextbedingt die Inhalte der Seite. Das heißt, wenn ich eine Seite über eine URL bzw. über den Slack oder die ID aufrufe, wird ja normalerweise Inhalt geladen. Und dafür ist GetPost verantwortlich. Wenn ich kein Parameter an GetPost übergebe, holte sich automatisch den zu dieser Seite zugehörigen Inhalt. Soweit wusste ich das, als ich anfing. Was ich nicht wusste war, dass ich GetPost auch eine ID übergeben kann. Und so jede beliebige Seite aufrufen kann, von der ich die ID habe. Damit wusste ich schon mal, wenn ich jetzt auch noch das Menü rauskriege und die ID sieht dazu gehören, kriege ich jede Seite. Die zweite Funktion, die ich vorher nicht kannte, war WP GetNavMenuItems. WP GetNavMenuItems tut genau das. Sie holt von einem WordPress Menü die einzelnen Items. Das heißt, die einzelnen Menüpunkte. Es wird als Parameter übergeben, der Name des Menüs und ein ganzes Parameter Array als zweiter Parameter. Diese Funktion gibt am Ende ein Array zurück, das so ungefähr aussieht. Das sind ja sehr viel Code. Ich zeige es jetzt nur, weil es eine Besonderheit hat. Wie wir von gesehen haben, ist mein Menü aufgebaut, das Basistemplate als Grundlage von anderen Einträgen. Das Array, was zurückgegeben wird, ist aber flach. Das heißt, alle Einträge sind auf einer Ebene. Nur gekennzeichnet dadurch, dass jede Eintrag darunter eine Parent ID hat. Das heißt, eine ID, die kennzeichnet von welchem anderen Element es abhängig ist. Das heißt, der zweite Eintrag darunter eins ist abhängig von dem darüber liegenden, was ich an am Moment an dem Parent hier zeigt. Das ist Menü Item Parent. Hat die ID 19 und die ID 19 ist die ID dieses Eintrags. Das so viel zu dieser Sache und warum ich meine Programmierung gleich so gemacht habe, wie sie gemacht habe. Das wird mir ausgegeben, wenn ich WP GetNavMenusItems aufrufe, kriege ich das oder kriege ich etwas Ähnliches wie das zusammen. Und welche Parameter ich übergebe. Die zeige ich gleich noch die Parameter. Das ist der Anfang des Quellkurs. Den Heter habe ich ja schon einmal gezeigt. Danach habe ich mir aus der 2015 Team die HIDA PHP geklaut und dort eingefügt ein bisschen bereinigt. Was ich drin gelassen habe, vor allen Dingen ist WP Het. Was jemand nicht was WP Het ist. Was jemand nicht was Hux sind. Actions und Filter. WordPress hat an verschiedenen Stellen Punkte eingerichtet an die sich Funktionen anhängen können. Also Hux. Diese Hux erlauben mir einerseits die Funktion einfach auszuführen. Das heißt etwas rauszuschreiben, Dinge zu tun oder Inhalte die an dieser Stelle vorliegen zu filtern. Deswegen sind es Actions. Die geben etwas aus oder tun etwas und Filter filtern die Inhalte. WP Het ist grob gesagt ein Rapper um die Hux im Kopfbereich der Seite weil viele Plugins Hux verwenden um zum Beispiel ihre CSS Dateien und JavaScript Dateien auszuwerfen. Und da wir gerne auch Plugins verwenden möchten was durchaus denkbar ist auf der Seite brauche ich das Ganze. Es hat den kleinen Nachteil, da wir uns in einem Theme Context befinden holt er sich auch die Theme CSS Dateien. Das heißt wir kriegen auch die CSS Daten und entsprechend das Styling wenn wir also etwas davon nicht wollen müssen wir es später selbst mit CSS überschreiben. Anschließend kriegen wir mit GetPost erstmal den Inhalt der Seite die wir unter diesem Slack oder der ID aufgerufen haben. Ich habe jetzt noch zusätzlich CSS und JavaScript eingefügt, das hätte ich auch über die Hux machen können. Ich habe es jetzt nur an dieser Stelle so gemacht damit es offensichtlich ist was ich eigentlich gerade tue. Jetzt beginnt so ein bisschen die eigentliche Programmierung an der Stelle. Wir können das euch sehen. Gebe ich mit Echo Post Post Contents den Inhalt meiner Basis Seite aus. Also einfach das was ich da reingeschrieben habe. Anschließend baue ich mir das Array zusammen was ich mir für WP Gaten auf menu items als Parameter kriege. In diesem Array sehen wir schon, wir können einstellen in welcher Reihenfolge es sortiert werden soll ob auch die nicht gepublischten Einträge ausgegeben werden sollen und so weiter. Lässt sich alles in Codex nachlesen. Da ich das Menü genauso benannt habe wie meine Basis Seite, kann ich jetzt also den Post Name ja den Post Title an dieser Stelle als ersten Parameter übergeben und kriege das entsprechende Menü ausgegeben. Das ist der eigentliche Trick dabei. Dieses Array gehe ich nun mit einer Vorschleife durch wobei ich mir vorher die ID meines Basiseintrags geholt habe damit ich nur die Seitenkriege, die auch als Kinder meines Basiseintrags da sind. Der Grundgedanke dabei war, dass ich durchaus noch tiefer geschachtete Menüs haben könnte und trotzdem nur die erste oder die zweite Ebene als Menüeinträge auf dieser Seite habe. Alle anderen Menüeinträge könnte ich vielleicht an einer Stelle noch mal verwenden. Was ich anschließend tue ist, ich sammel mir erstmal die Arrays der Menüeinträge zusammen und baue mir eine Navigation für Seiten verweise zusammen, die ich auch gleich danach ausgebe. Das heißt, dass ich oben im Kopf auch schon mal gleich eine Navigation habe um zu den entsprechenden Elementen zu springen. Im nächsten Schritt laufe ich dann meine Arrays durch, übergebe sie GetPost und gebe dann davon wiederum den Content aus. Ganz am Ende habe ich nochmal das WP Futter, was das Gegenstück für WP Head ist, nochmal ein Rapper für entsprechende Hux und das ist es im Prinzip. Um einmal zu zeigen, wie das Ganze dann auch funktioniert. Dies ist mein derzeitiges Menü. Das ist die Seite, die ich dazu momentan habe. Das heißt, wenn ich jetzt hier drauf kriege, komme ich auch dahin. Ich habe es jetzt nicht zu Ende gestylt. Wenn ich jetzt noch das Impressum und Ticket dazu haben will, mit mir hinzufügen, nicht richtig sehen, muss man das da mal speichern, so wie ich man will. Das ist mein Server leider ein bisschen langsam anscheinend. So, Menüpunkt, das sind da. Dann ein Impressum auch hinzugefügt. Impressum ist auch da. Kann ich nochmal zeigen, dass ich es ja auch sortieren kann. Ich kann jetzt den Kaufticket einmal wieder runter schieben. Kaufticket ist noch hier oben, aber kurz ab, bis er gespeichert hat. Ich hätte den Server vielleicht doch einmal starten sollen. Zeige ich gleich einen. Genau. Das kann ich auch kurz zeigen in der Hoffnung, dass es ein bisschen schneller geht. Ich habe ja verschiedene Seiten. Ich habe die auch schon mal im Verhältnis gesetzt. Das spielt aber keine Rolle, weil das Menü sich nicht darauf, also ein angelegtes Menü bezieht sich nicht darauf, wie die Seiten im Verhältnis zueinander stehen. Ich kann auch zeigen, dass meine Seite jetzt nur aus diesem Banner hier besteht. So, ist auch die Seite da. Kauf ein Ticket, ist jetzt an zweiter Stelle. Also eigentlich genau das, was ich wollte. Genau. Die Basisseite. Die Basisseite ist das einzige Seite, der ich den OnePager zugewiesen habe, wie ich hier sehen kann. Ich kann das nochmal an der Stelle zeigen, wenn er denn irgendwann lädt. Das hier hat Standard Template. Ich könnte mir jetzt auch OnePager zuweisen, aber das spielt keine Rolle an dieser Stelle, weil es nicht ausgeführt wird. So. Was hätte ich anders machen können? Es gibt ein paar Sachen, die man schöner, besser anders machen könnte. Ich hätte die Zuweisung des Menüs anders machen können. Ich habe ja schon gesagt, ich habe es jetzt so aufgebaut, damit ich nur diese eine Ebene abfrage, ich hätte natürlich einfach sagen können, es wird alles ausgegeben, was an dieser Stelle angelegt ist, ob sich darauf auf welcher Ebene es ist. Ich hätte auch das, den Slack der Seite und nicht den Titel nehmen können, was ein bisschen eindeutiger gewesen wäre. Also weiß jeder, was der Slack ist? Eigentlich benutze ich es die ganze Zeit. Das ist das, was hier unter Permalink steht. Dieser Teil. Der wird automatisch schon WordPress generiert, damit er wirklich eindeutig ist. Den könnte ich auch verwenden. Ich habe es jetzt aber nicht gemacht, weil ich es für den Vortragsfluss etwas angenehmer fand, es so zu erklären. Aus dem hätte ich den Code anders aufbauen können, dass der ganze Programmierbereich außerhalb der eigentlichen Ausgabe, das eigentlich ein Ausgabebereich war. Das ist eigentlich schöner, aber spielt jetzt zusammen auch keine Rolle. Ich fand es so ein bisschen ansehnlicher. Fragen? Ja. Genau, es sind einzelne Beiträge, die im Loop geladen werden. Wie gesagt, ich kann beliebig viele Beiträge anlegen und nein, im Google Index wird in diesem Fall nur der Permalink der Basisseite indexiert. Es wird für Metatex, CSS, etc. alles, was irgendwie im Head ausgegeben wird, nur die Basisseite ausgewertet. Alle anderen werden, da werden ja nur die Content-Sachen ausgegeben und nicht das, was normalerweise über GetPost geholt wird. Nein. Aber das hat das große Problem bei OnePager. OnePager sind ja nicht besonders SEO-freundlich. Habe ich vorhin gerade ein Gespräch darüber geführt, gerade weil ich ja nur eine Seite auf Keywords optimieren kann und nur für eine Seite die Metatex ausgeben kann, sind OnePager für SEO kein besonders guter Einstieg. Meine ersten Slides, die ganz vorne, was freust du? Was gesagt wurde, man soll aufpassen, dass, wenn man einen OnePage-Plug in verwendet, die Google das eventuell nicht richtig crawlen kann. Sehe ich genauso, als ich da rangegangen bin, habe ich mir ehrlich gesagt, darüber keine Gedanken gemacht. Das war einfach so, der Ansporn krieg ich es überhaupt hin. Was wolltest du denn noch sehen? Von den... Du kannst es dir aber runterladen, ich habe das schon hoch geladen. Okay. Wie können wir uns, glaube ich, sparen? Dann bauen wir das mal... So, das ist die erste. Weiter? Achso, mehr Fragen? Mit den Hooks... Zeit mit Hooks? Du meinst den... Ach, gut, das ist jetzt nicht... Moment, stopp. Du meinst das hier? Okay. Du weißt, was ein Array ist. Okay. Du weißt, was variablen sind. Ein Array ist im Prinzip eine Sammlung von Inhalten. Das heißt, eine Variable mit mehr Inhalten. Entweder numerisch sortiert sind oder über einen iPhone-numerischen Index. Das heißt, du kannst auch Arrays haben, mit denen du auf die einzelne Elemente mit Keywords zugreifen kannst. Das ist ein Array und hält jetzt Objekte. Das heißt, Array eintrag 1. Wenn ich mit 1, Quatsch mit 0, drauf zugreifen würde, würde ich ein Objekt erhalten. Das den Inhalt hier hat. Darauf kann ich dann wieder zugreifen. Wenn ich jetzt sagen würde, gib mir bitte 0 zurück und davon ID kriege ich 19. Also, das sehe dann so aus. So würde ich das grob aufrufen. Obwohl, das stimmt an diesem Fall nicht, weil es natürlich ein Objekt ist. Was hier passiert ist, dass ich Daten sammle und ich über bestimmte Methodiken wieder darauf zugreifen kann. Ich kann mit einer Schleife auf die Daten dieses Arrays zugreifen. Das heißt, in diesem Fall numerisch, wenn ich also von, gib mir alles von 1 bis 10 durchaus, die Arrays sagen 1, 2, 3, 4, 5 Echo, Echo, Echo und kriege dann entsprechend die Werte dafür rausgeliefert. Dafür sind Arrays hauptsächlich da. Genau. Das gibt WordPress aus. Das heißt, ich habe einmal gesagt, gib mir bitte aus, was WordPress an dieser Stelle zurückliefert. Ja, ich brauche nur die IDs, aber er gibt den ganzen Kram halt aus. Ja, ich brauche die IDs und die Parent IDs. Dann gibt er einfach so mit aus, da kann ich nicht wirklich was gegen tun. Ja, ich laufe es einmal durch, hol mir ID und die Parent ID raus und den Rest vergesse ich dann nachher wieder. Für das Scrolling, da benutze ich den Titel der entsprechenden Seiten. Moment, kann ich mal kurz zeigen. Entschuldigung. Was ich als ID für das Scrolling, also für die Seitenintern, links verwende. Ach, blöd. Gut, müssen wir anders machen. Sorry. Das wäre der Name und den gebe ich dann unten an der entsprechenden Stelle nochmal aus. Worauf ich jetzt eben nicht eingegangen bin, was ich auch noch gemacht habe, ist, dass ich an dieser Stelle auch noch den Titel nochmal verwende als Klasse. Dass man im Zweifelsfall die einzelnen Sektionen nochmal separat steilen könnte. Einfach nur so als Hilfe, wenn man das funktioniert wie ein Anker. Der Anker? Ist das hier? Der Bereich? Genau. Genauso funktioniert es wie ein Anker. Mehr Fragen. Sorry, das war zu schnell. Also mal groß, wenn er dann irgendwann lädt. Ich hatte leider vergessen es, eine schönere URL reinzustecken und musste es dann nochmal abfotografieren. Ich habe ein SIP daraus gemacht und jetzt keine Slides damit auch der Quer guckt gleich mit drin ist. Genau. Gibt es auf der Seite nicht. Außer den Food Day eventuell, wenn ich da noch irgendwelchen Inhalt reinkriege. Also, da ja jeder einzelne Beitrag immer als Sektion auf der Seite ausgegeben wird, sind die Eigentien immer in Sektionen drin. Außer natürlich der Basiseintrag, den ich im Header oben drin habe. Ja, bitte. Aber letztlich, da ich ja direkt die Seitenzuweise sollte auch nur diese Seite zugewiesen sein. Die aktuelle, die Publizierte. Ich hole ja nur die Publizierten raus. Dann würdest du es einfach rausnehmen. Kannst du einfach aus dem Menü entfernen. Ach so. Ja, kannst natürlich ... Du kannst natürlich noch ... kannst ja beliebige Menüs anlegen in WordPress und sie bestimmten Positionenzuweisen. Wir haben ja auch das Header und den WP Head und WP Food mit drin. Wir haben jetzt einen ganzen Menü laden und dort dann eventuell auf ältere Seiten zu steuern. Wir könnten rein technische, separate Seite mit dem älteren Stand nochmal als OnePage auf der insgesamt vorhalten. Weitere Fragen. Dann bedanke ich mich.