Layout-Steuerung via Parameter

Gesperrt
Calimero
Beiträge: 60
Registriert: Do 4. Aug 2005, 13:44
Kontaktdaten:

Layout-Steuerung via Parameter

Beitrag von Calimero » Di 19. Nov 2013, 12:03

Hallo liebe Community,

ich betreibe eine Contenido Seite mit mehreren Mandanten.

Bei einem Mandat möchte ich gerne einen Relaunch des Layouts durchführen OHNE die Funktionalität der vorhandene Seite zu beeinflussen.
Es soll im ersten Schritt nur das Layout moderniesiert werden.

Mein Vorschlag war, dass man via URL-Parameter das neue Layout "seitenspezifisch" einsehen kann ála

http://www.domain.de/ueber-uns/unternehmen.html <- aktuelles Layout
http://www.domain.de/ueber-uns/unterneh ... te=[b]_neu[/b]<- neues modernisiertes Layout

Im Backend würde das dann so aussehen...
standard_layout <- aktuelles Layout
standard_layout_neu <- neues modernisiertes Layout

Die Templates und die Funktionalität der Module sollte nicht davon beeinträchtigt werden.

Ist so etwas realisierbar?
Welche Contenido-Dateien betrifft diese Erweiterung?
Gibt es jemanden, der so etwas schonmal umgesetzt hat?
Oder habe ich einen kompletten Denkfehler und Contenido hat so ein Feature schon?

Über eine Rückmeldung wäre ich sehr dankbar.

Viele Dank
Calimero

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Layout-Steuerung via Parameter

Beitrag von xmurrix » Di 19. Nov 2013, 12:40

Hallo Calimero,

CONTENIDO generiert aus der Template-Konfiguration (Template und die darin konfigurierten Module) den Code der Seite und speichert diesen ab.

Willst du nun dass das Layout der Seite jedes Mal dynamisch ermittelt wird und der dazugehörige Code neu generiert wird, müsstest du einiges am Core anpassen.

Du musst das Cachen des PHP-Codes der Seite deaktivieren, damit es bei jedem Request erneut generiert wird. Dann musst du die Generierung des Codes für das Backend (im edit-Modus) und für das Frontend umprogrammieren. Das empfehle ich dir aber nicht.

Sofern das neue Layout rein über CSS geändert wurde, das Markup also identisch geblieben ist, kannst du das einfach mit einer if-Bedingung im Layout selber lösen...

Code: Alles auswählen

...
<?php if (isset($_GET['template']) && $_GET['template'] == 'neu') : ?>
    <link href="css/stylesheet_neu.css" media="all" rel="stylesheet" type="text/css">
<?php else : ?>
    <link href="css/stylesheet.css" media="all" rel="stylesheet" type="text/css">
<?php endif : ?>
...
Wenn nicht, dann ist es einfacher die Kategoriestruktur zu kopieren und an der Kopie zu arbeiten. Wenn alles fertig ist, kannst du dann umswitchen. Am Ende musst du dann dafür sorgen, dass Links zu alten Seiten zur neuen Version umgeleitet werden.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Gesperrt