Dynamische Websites mit XML und PHP4



Ähnliche Dokumente
HTML5. Wie funktioniert HTML5? Tags: Attribute:

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Erstellen eines HTML-Templates mit externer CSS-Datei

Metadateneditoren für ArcGIS

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Snippets - das Erstellen von "Code- Fragmenten" - 1

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

Design anpassen eine kurze Einführung

Gliederung. 1. That s Radiant 2. User Interface 3. Rollen 4. Installation 5. Extensions 6. Fazit

Ablauf. Redaktions-Schulung. Schulungs Unterlagen. Typo3

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Step by Step Webserver unter Windows Server von Christian Bartl

Loslegen mit Contrexx: In 10 Schritten zur professionellen Webseite.

OP-LOG

FIS: Projektdaten auf den Internetseiten ausgeben

Installationsanleitung

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

System-Update Addendum

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Einrichtung Secure-FTP

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Installation des Zertifikats

Content Management Datenbanken, Schnittstellen

Strategie & Kommunikation. Trainingsunterlagen TYPO3 Version 4.3: News Stand

6.9 Java Server Pages

Mit ApEx 3.1 eine Website mit integriertem CMS entwickeln. Enrico Mischorr merlin.zwo InfoDesign GmbH & Co. KG

Übung - Datenmigration in Windows 7

Hilfe zur Urlaubsplanung und Zeiterfassung

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia

How to do? Projekte - Zeiterfassung

Dokumentation Externe Anzeige von Evento Web Dialogen

Datei für Übersetzung vorbereiten

1. Zusammenfassung der letzten Vorlesung

Success! Bestellausgabe

openk platform Dokumentation Setup Liferay Version 0.9.1

Educase. Release Notes 1.7: Neue Funktionen und Verbesserungen. Base-Net Informatik AG Wassergrabe 14 CH-6210 Sursee

Effiziente XML-Workflows mit Adobe InDesign

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

WEBSEITEN ENTWICKELN MIT ASP.NET

PRESman. Presentation Manager. Reduzieren Sie nachhaltig die Kosten für das. Erstellen, Verwalten und Verteilen Ihrer

Die News-Extension ( tt_news ) für TOP-Meldungen einsetzen

Installation des edu- sharing Plug- Ins für Moodle

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Installationsanleitung - creative templates -

Virtuemart-Template installieren? So geht es! (Virtuemart 2.0.x)

Artisteer 2 Installation

virtuos Leitfaden für die virtuelle Lehre

XML Werkzeug XML Spy. Frank Heininger Axel Labuschke

Plugins. Stefan Salich Stand

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

FMGate Installation & Benutzung

Typo3. Installationsanleitung um bei genotec auf einem unix system ein Typo3 zu installieren.

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Kapiteltests zum Leitprogramm Binäre Suchbäume

PC-Kaufmann 2014 ZIP-Komprimierte Datensicherung einspielen

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

ARAkoll 2013 Dokumentation. Datum:

INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Meine erste Homepage - Beispiele

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Hilfe und Support. Statische Hilfe. Inhaltsverzeichnis der Hilfetexte. Reihe TextGrid-Tutorials

Fussball.de JavaScript

Einfache Datenpflege mit typo3

Outlook Erstellen einer aus einer HTML - Vorlage INHALT

30 Jahre cobra freuen Sie sich mit uns!

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Urlaubsregel in David

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Content Management mit

Nachricht der Kundenbetreuung

Anleitung. Update/Aktualisierung EBV Einzelplatz Homepage. und Mängelkatalog

Stapelverarbeitung Teil 1

Adminer: Installationsanleitung

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Warum brauche ich eine Website?

Anleitung - Archivierung

Administrator Handbuch

Verwalten Sie Ihre Homepage von überall zu jeder Zeit! Angebote und Informationen auf

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

SMART Newsletter Education Solutions April 2015

Outlook 2010 Daten importieren und exportieren

Konfiguration einer Sparkassen-Chipkarte in StarMoney

Single Source Publishing und Technische Dokumentation in CMS

Ein Leitfaden für Anfänger unter Zuhilfenahme frei verfügbarer Software! (bei z.b. Google Microsoft Powertoys suchen, oder diesen Link verwenden )

<script type="text/javascript"> <! <%= page(page.searchsuggestionsscript) %> // > </script>

Word 2010 Schnellbausteine

TYPO3-Version 6.2: Die News-Extension ( tt_news ) für TOP-Meldungen einsetzen

Serien- mit oder ohne Anhang

Cmsbox Kurzanleitung. Das Wichtigste in Kürze

Anleitung für das Content Management System

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Ihr habt Probleme auf die Closed Public Beta zuzugreifen? Dieses Dokument hilft Euch Antworten auf häufig gestellte Fragen zu erhalten.

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Arbeiten mit einem lokalen PostgreSQL-Server

Installation & Konfiguration AddOn CopyObjects

Transkript:

Dynamische Websites mit XML und PHP4 Linuxtag 2002 07.06.2002, Karlsruhe Stephan Schmidt

Inhalt der Session Über den Redner Strukturierung von Inhalten Transformation von XML Entwickeln einer XML-Struktur Einführung in pattemplate Installation und Architektur des patxmlrenderer Aufbau und Einsatz von Extensions Vergleichbare Applikationen Referenzen 16.09.2005 Folie 2

Stephan Schmidt Web Application Developer bei Metrix Internet Design GmbH in Karlsruhe Nebenbei: LGPL Tools auf http://www.php-tools.de Entwickler von patxmlrenderer, pattemplate, patuser und anderen Tools 16.09.2005 Folie 3

Strukturierung von Inhalten Klassische Webseiten in HTML:» nicht strukturiert» nicht von Maschinen lesbar Klassische Software-Entwicklung mit relationaler Datenbank:» schwer von Menschen lesbar, da Abbildung der Struktur durch Relationen Verteilt auf viele Tabellen Kryptische IDs 16.09.2005 Folie 4

16.09.2005 Folie 5 Strukturierung mit XML Leicht von Menschen lesbar:» Alle Daten in einer Datei» Selbsterklärende Tagnamen» Nähere Beschreibung durch Attribute» Optische Gliederung durch Einrückung Leicht von Maschinen lesbar:» Wohlgeformtes Dokument» Reine Textdaten» Validierung durch Schema oder DTD Trennung von Content und Layout

16.09.2005 Folie 6 Beispiel für ein XML Dokument <page> <headline>dynamische Webseiten mit XML</headline> <section title="über den Autor"> <para>der Autor hat nächste Woche Urlaub </para> </section> <section title="kurze Beschreibung"> <para>der Vortrag enthält</para> <list> <listelement>beispiele</listelement> <listelement>ein wenig PHP Code</listelement> </list> </section> </page>

Transformation von XML in HTML Transformation jedes Tags in seine HTML Repräsentation, z.b.: <headline>dynamische Webseiten mit XML</headline>...wird zu: <font size="+1"> <br><b> Dynamische Webseiten mit XML</b><br><br> </font> 16.09.2005 Folie 7

16.09.2005 Folie 8 Transformation des ganzen Dokuments Für jeden Tag wird ein Template benötigt Richtige Reihenfolge bei Verschachtelungen (z.b. Listenelemente in einer Liste)...wer macht das? [ XSLT ] Transformation mittels Stylesheet und XSLT Prozessor

XSLT vs PHP4 und Templates Transformation mit XSLT XSLT als Blackbox Keine Möglichkeit in der Transformationsprozess einzugreifen XSLT muss von Designer erstellt werden Offener Standard Transformation mit PHP4 und Templates Volle Kontrolle über Transformationsprozess Leider kein offener Standard 16.09.2005 Folie 9

Transformation mit PHP4 Ein Template für jeden XML Tag XML Attribute werden zu Template-Variablen Inhalt des Tags wird zur Template-Variable {CONTENT} Verwendung eines SAX-basierten Parsers (expat) Simple Callback Methoden für Starttag, CData und Endtag Rekursives Durchlaufen des Dokuments Template wird beim Schließen des Tags geparst und an das Ergebnis angefügt 16.09.2005 Folie 10

16.09.2005 Folie 11 Entwickeln einer XML Struktur Aufteilen in logische Elemente z.b: Navigation Textparagraph Liste Tag muss das Element beschreiben, z.b. <important> für wichtige Elemente in der Seite Keine reinen Layout Elemente, wie z.b. <br> Festlegung der Seitenstruktur XML Schema DTD

16.09.2005 Folie 12 Entwickeln einer XML Struktur 2

16.09.2005 Folie 13 Entwickeln einer XML Struktur 3

16.09.2005 Folie 14 Entwickeln einer XML Struktur 4

16.09.2005 Folie 15 Entwickeln einer XML Struktur 5

16.09.2005 Folie 16 Einführung in pattemplate PHP Template Klasse unter LGPL Platzhalter für Variablen in Großbuchstaben und von { und } umschlossen Verwenden von <pattemplate:tmpl name="..."> Tags zum Markieren von Templates Weitere Eigenschaften der Templates werden als Attribute notiert, z.b: type="condition" oder whitespace="trim" Einfache switch/case und if/else Emulation durch <pattemplate:sub condition="..."> Tags

pattemplate Beispiel 1 Einfaches Template mit zwei Variablen, kann über den Namen "box" angesprochen werden. <pattemplate:tmpl name="box"> <table border="1" cellpadding="5" cellspacing="0" width="{width}"> <tr> <td>{content}</td> </tr> </table> </pattemplate:tmpl> 16.09.2005 Folie 17

16.09.2005 Folie 18 Aufgabe: pattemplate Beispiel 2 Box soll in drei vorgegebenen Größen ausgegeben werden können: small, medium (default) und large Lösung: Condition Template zur Emulation von switch/case: Template-Typ ist "condition" Variable, die überprüft werden soll ist "size" drei mögliche Werte für "size": "small", "large" und "medium" (oder beliebiger anderer Wert )» drei Subtemplates.

pattemplate Beispiel 2 <pattemplate:tmpl name="box" type="condition" conditionvar="size"> <pattemplate:sub condition="small"> <table border="1" cellpadding="5" cellspacing="0" width="200"> <tr><td>{content}</td></tr> </table> </pattemplate:sub> <pattemplate:sub condition="large"> <table border="1" cellpadding="5" cellspacing="0" width="800"> <tr><td>{content}</td></tr> </table> </pattemplate:sub> <pattemplate:sub condition="default"> <table border="1" cellpadding="5" cellspacing="0" width="500"> <tr><td>{content}</td></tr> </table> </pattemplate:sub> </pattemplate:tmpl> 16.09.2005 Folie 19

Installation patxmlrenderer Download von http://www.php-tools.de Archiv entpacken Anpassen der Pfade und sonstiger Optionen (cache, log, usw.) in der Konfigurationsdatei Erstellen der Templates Erstellen der XML Dateien mit dem Seiteninhalt Fertig:» Kinderleicht! «16.09.2005 Folie 20

Arbeitsweise patxmlrenderer Dokument wird rekursiv geparst Tags ohne Namespace werden mit Template transformiert (Tagname = Templatename) Attribute stehen als Templatevariablen zur Verfügung Tags mit Namespace werden an Extensions (eigene Objekte) weitergegeben Extensions erzeugen Inhalt in Abhängigkeit der Attribute und des Contents, z.b. <time:current format="h:i"/> Rückgabe der Extension wird geparst, kann wieder Namespace Tags enthalten» Rekursion Externe Entitäten verhalten sich wie include() 16.09.2005 Folie 21

16.09.2005 Folie 22 Architektur XML TEMPLATES Ext. Entities Noch unbekannte Extension Dbc: Extension RENDERER Time: Extension HTML / XML /LaTEX /usw...

Struktur einer Extension Jede Extension hat drei Handler: Starthandler legt Tags und Attribute auf einen Stack CData Handler speichert Daten in einer Variable End Element Handler führt switch/case Anweisung aus und gibt XML oder CData zurück. 16.09.2005 Folie 23

Eigenschaften einer Extension Eindeutiger Name Versionsnummer Benötigte Version des patxmlrenderers Liste aller Tags mit der Angabe, ob der Tag gecached werden kann Liste aller Tags mit der Angabe, ob der Tag Markup (XML) zurück liefert Durch Ableitung von der Basisklasse stehen Methoden zum Zugriff auf die Eigenschaften zur Verfügung 16.09.2005 Folie 24

Bestehende Extensions Repository auf http://www.php-tools.de Automatische Dokumentation im Admin-Interface Beispiele für Extensions: <time:...> Datums- und Uhrzeitfunktionen <dbc:...> Datenbank-Schnittstelle <var:...> Variablenzugriff <control:...> Kontrollstrukturen <randy:...> XML-API zum patxmlrenderer <file:...> Dateioperationen und weitere... 16.09.2005 Folie 25

16.09.2005 Folie 26 Zu trocken...?...wie wär's mit Beispielen?

16.09.2005 Folie 27 Vergleichbare Applikationen Mindestens zwei weitere in PHP entwickelte Klassen: PEAR::XML_Transformer http://pear.php.net phptaglib http://chocobot.d2g.com Beide weitaus später als patxmlrenderer entstanden. Beide nur schlanke Klassen für die Transformation, keine vollständigen Applikationen.

16.09.2005 Folie 28 Vergleich patxmlrenderer PEAR phptaglib Templates Ja, pattemplate - Ja, nur HTML Intelligente Templates Dynamischer Content X - Nur mit PHP Ja, nur Objekte Ja, Funktionen und Objekte Vermischt mit Templates Namespaces X X - Rekursion Ja, beliebig Ja, beliebig - External Entities X - - <?PHP?> X - X Parameter X - - Administration X - - Ext. Repository X - -

16.09.2005 Folie 29 Referenzen PHP Application Tools (http://www.php-tools.de) XENA Website (http://xena.metrix.de) XENA Online Hilfe (Transformation in HTML und LaTex => PDF)

Ende Vielen Dank für Ihre Aufmerksamkeit. Weitere Informationen: http://www.php-tools.de schst@php-tools.de Dank an: Sebastian Mordziol, Gerd Schaufelberger, Stephan Eisler, Metrix Internet Design GmbH 16.09.2005 Folie 30