PHP-CMS-Einbindung
Architektur-Ideen für dynamische Inhalte in statischen Seiten




                                                         / web / information / technology / 1
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 / 2
Content-Pflege
10% statische Inhalte
         Manuelle Pflege der Views:
          durch SW-Entwickler




90% statische Inhalte
         Content-Management:
          durch Redakteure




                                       / web / information / technology / 3
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 / 4
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 / 5
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 / 6
2 CMS-Beispiele
                                             CMS
CMS-Widget-Einbindung
                                 Redakteur

  OpenText (RedDot)                                publiziert Seiten
  FirstSpirit
  Publizierung auf Web-Server
                                             Web-
                                             Server




                                                                          User



                                             / web / information / technology / 7
Beispiel OpenText
Seite mit eigenständigen Widget-Modulen


  direkter Seitenaufruf,
   kein URL rewriting
  MVC-Start je Modul (bootstrapping)
  direkter Aufruf der controller-action
Kunde_Controller_RedDotMultiple::start('de.kunde.www', $options);
  controller: action
        process request
                                           Seite
        change model
        render widget-view
  Ausgabe ist auf Widget beschränkt
  http://www.kunde.de/thema/seite.php


                                               / web / information / technology / 8
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
                                          action-
        process request                    stack

        change model
        render subview to placeholder
  render view mit view-Variablen und subviews
     <?php echo $this->placeholder('kalzium-rechner'); ?>
  http://www.kunde.de/thema/seite.phtml, http://www.kunde.de/thema/seite.ini
                                                      / web / information / technology / 9
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                           view


  [widgets]
  account-login.active = true
  gewinnspiel.active = true
  gewinnspiel.params.gewinnspielDatenschutzUri = "http://www.bla.de"
                                                                             ini-Datei

                                              / web / information / technology / 10
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 / 11
Diskussion
Vielen Dank für die anregende und fachkundige Diskussion
    und die neuen Ansatzpunkte!


  Reverse Proxy
         https://www.varnish-cache.org/,
            https://www.varnish-cache.org/trac/wiki/ESIfeatures
  Content Assembly in Templates
         Edge Side Includes language http://www.w3.org/TR/esi-lang
            <esi:include src="URI" />           <rde-dm:include content="URI" …
         RedDot LiveServer (Content-DynaMent)
         Symphony CMS http://getsymphony.com/ XSLT templating, take external XML
  Content Repository
         Apache Jackrabbit: implementation of Java Content Repository (JCR)
           Alfresco und Sophora CMS (subshell gmbh) nutzen JCR
         Content Management Interoperability Services (CMIS)
                                                         / web / information / technology / 12
Kontakt
Büro:
   Siemensstr. 8A, 61352 Bad Homburg, Tel.: 06172 / 4988554


   http://www.dmr-solutions.com
   mailto:info@dmr-solutions.com


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?




                                                              / web / information / technology / 13

PHP-Module in statischen Seiten - Architektur-Ansätze

  • 1.
    PHP-CMS-Einbindung Architektur-Ideen für dynamischeInhalte in statischen Seiten / web / information / technology / 1
  • 2.
    Maßgeschneiderte Software-Lösungen imInternet 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 / 2
  • 3.
    Content-Pflege 10% statische Inhalte  Manuelle Pflege der Views: durch SW-Entwickler 90% statische Inhalte  Content-Management: durch Redakteure / web / information / technology / 3
  • 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 / 4
  • 5.
    Eingebettete Widgets 90% statischeInhalte  statische Seiten  mit eingebetteten Widgets  Pflege statischer Inhalte durch Redakteur  Einbindung der Widgets durch Redakteur  Pflege der Widgets durch Programmierer / web / information / technology / 5
  • 6.
    Statische Seite mitWidgets 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 / 6
  • 7.
    2 CMS-Beispiele CMS CMS-Widget-Einbindung Redakteur  OpenText (RedDot) publiziert Seiten  FirstSpirit  Publizierung auf Web-Server Web- Server User / web / information / technology / 7
  • 8.
    Beispiel OpenText Seite miteigenständigen Widget-Modulen  direkter Seitenaufruf, kein URL rewriting  MVC-Start je Modul (bootstrapping)  direkter Aufruf der controller-action Kunde_Controller_RedDotMultiple::start('de.kunde.www', $options);  controller: action process request Seite change model render widget-view  Ausgabe ist auf Widget beschränkt  http://www.kunde.de/thema/seite.php / web / information / technology / 8
  • 9.
    Beispiel FirstSpirit View miteingebetteten 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 action- process request stack change model render subview to placeholder  render view mit view-Variablen und subviews <?php echo $this->placeholder('kalzium-rechner'); ?>  http://www.kunde.de/thema/seite.phtml, http://www.kunde.de/thema/seite.ini / web / information / technology / 9
  • 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 view [widgets] account-login.active = true gewinnspiel.active = true gewinnspiel.params.gewinnspielDatenschutzUri = "http://www.bla.de" ini-Datei / web / information / technology / 10
  • 11.
    Typo3 ? CMS mitExtensions ?  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 / 11
  • 12.
    Diskussion Vielen Dank fürdie anregende und fachkundige Diskussion und die neuen Ansatzpunkte!  Reverse Proxy https://www.varnish-cache.org/, https://www.varnish-cache.org/trac/wiki/ESIfeatures  Content Assembly in Templates Edge Side Includes language http://www.w3.org/TR/esi-lang <esi:include src="URI" /> <rde-dm:include content="URI" … RedDot LiveServer (Content-DynaMent) Symphony CMS http://getsymphony.com/ XSLT templating, take external XML  Content Repository Apache Jackrabbit: implementation of Java Content Repository (JCR) Alfresco und Sophora CMS (subshell gmbh) nutzen JCR Content Management Interoperability Services (CMIS) / web / information / technology / 12
  • 13.
    Kontakt Büro: Siemensstr. 8A, 61352 Bad Homburg, Tel.: 06172 / 4988554 http://www.dmr-solutions.com mailto:info@dmr-solutions.com 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? / web / information / technology / 13