/ web / information / technology / / web / information / technology / 1
PHP-CMS-Einbindung Architektur-Ideen für dynamische Inhalte in statischen Seiten
Vortrag PHPUG - Frankfurt am 20.11.12
/ web / information / technology / / web / information / technology / 2
Maßgeschneiderte Software-Lösungen im Internet
Wir entwickeln gerne hochwertige, maßgeschneiderte Web-Anwendungen, gerne
basierend auf Open-Source-Bausteinen:
eigenständige PHP-Anwendungen oder
eingebettete PHP-Module in statischen Seiten
typischerweise basierend auf MVC-Frameworks
Typische Arbeitsteilung:
Webdesigner + SW-Entwickler
Redakteure
(passive) model - view - controller
/ web / information / technology / / web / information / technology / 3
Content-Pflege
10% statische Inhalte
Manuelle Pflege der Views:
durch SW-Entwickler
90% statische Inhalte
Content-Management:
durch Redakteure
/ web / information / technology / / web / information / technology / 4
Stand-Alone-Anwendung
10% statische Inhalte
URL rewriting (mod_rewrite)
Front-Controller (index.php)
MVC-Start (bootstrapping)
routing, dispatch
controller: action
process request
change model
render view
Pflege durch Programmierer
http://www.mvc.de/modul/controller/action
/ web / information / technology / / web / information / technology / 5
Eingebettete Widgets
90% statische Inhalte
statische Seiten
mit eingebetteten Widgets
Pflege statischer Inhalte
durch Redakteur
Einbindung der Widgets
durch Redakteur
Pflege der Widgets
durch Programmierer
/ web / information / technology / / web / information / technology / 6
Statische Seite mit Widgets
90% statische Inhalte
URL der statischen Seite http://www.kunde.de/thema/seite.php
mehrere Widgets/Seite möglich
eigenständige MVC-Fenster
widget-controller
widget-model
widget-view
Einbettung der Widgets und
Parameter-Übergabe im CMS
an vordefinierten Blöcken
(Platzhaltern)
/ web / information / technology / / web / information / technology / 7
2 CMS-Beispiele
CMS-Widget-Einbindung
OpenText (RedDot)
FirstSpirit
Publizierung auf Web-Server
CMS
Web-
Server
Redakteur
User
publiziert Seiten
/ web / information / technology / / web / information / technology / 8
Beispiel OpenText
Seite mit eigenständigen Widget-Modulen
direkter Seitenaufruf,
kein URL rewriting
MVC-Start je Modul (bootstrapping)
direkter Aufruf der controller-action
controller: action
process request
change model
render widget-view
Ausgabe ist auf Widget beschränkt
http://www.kunde.de/thema/seite.php
Kunde_Controller_RedDotMultiple::start('de.kunde.www', $options);
Seite
/ web / information / technology / / web / information / technology / 9
Beispiel FirstSpirit
View mit eingebetteten Widget-Subviews
URL rewriting (mod_rewrite)
Front-Controller (index.php)
MVC-Start (bootstrapping)
eigens routing, action-stack, dispatch:
Suche und Analyse der ini-Datei,
Vorab-Ausführung aller Widget-Controller
controller: action
process request
change model
render subview to placeholder
render view mit view-Variablen und subviews
http://www.kunde.de/thema/seite.phtml, http://www.kunde.de/thema/seite.ini
<?php echo $this->placeholder('kalzium-rechner'); ?>
action-
stack
/ web / information / technology / / web / information / technology / 10
ini-Datei
Parameter-Übergabe an Widgets
Redakteur
fügt Widget als neuen Absatz ein
und wählt Parameter
CMS
erzeugt ini-Datei für alle Widgets
parallel zur view-Datei
http://www.kunde.de/de/thema/seite.html,
http://www.kunde.de/de_1/thema/seite.ini
[widgets]
account-login.active = true
gewinnspiel.active = true
gewinnspiel.params.gewinnspielDatenschutzUri = "http://www.bla.de"
view
ini-Datei
/ web / information / technology / / web / information / technology / 11
Typo3 ?
CMS mit Extensions ?
Generierung auf Web-Server in Echtzeit
Caching
CMS mit Extensions
eigene T3X (Typo3 Extension API),
„Zend Framework Integration T3X“
oder eigenständige Widget-Module (s.o.)
CMS (Phoenix) +
Neos = 80% Flow (MVC-Framework)
Neos mit Flow: CMS + MVC-Framework
Flow mit Neos: MVC-Framework + CMS-Modulen
/ web / information / technology / / web / information / technology / 12
Diskussion
Vielen Dank für die anregende und fachkundige Diskussion
und die neuen Ansatzpunkte:
Reverse Proxy
https://www.varnish-cache.org/,
Content Assembly
Edge Side Includes language http://www.w3.org/TR/esi-lang
RedDot LiveServer (Content-DynaMent)
Symphony CMS http://getsymphony.com/ XSLT templating, take external XML
W3C Widgets http://www.w3.org/standards/techs/widgets, Apache Wookie
Dashboards http://www.netvibes.com/de
Content Repository
Java Content Repository (JCR): Apache Jackrabbit implementation
Alfresco und Sophora CMS (subshell gmbh) nutzen JCR
Content Management Interoperability Services (CMIS)
<esi:include src="URI" /> <rde-dm:include content="URI" …
/ web / information / technology / / web / information / technology / 13
Kontakt
Büro: Siemensstr. 8A, 61352 Bad Homburg, Tel.: 06172 / 4988554
http://www.dmr-solutions.com
mailto:[email protected]
Auszug aus der Kundenliste:
http://info.engelhorn.de - engelhorn Gruppe Mannheim
http://www.niederspannungskatalog.de - ABB STOTZ Heidelberg
http://www.wdv.de/ - wdv Corporate Publishing Bad Homburg
Weitere unter http://www.dmr-solutions.com/de/references/
Wie können wir Sie unterstützen?