• Keine Ergebnisse gefunden

bitflux CMS

N/A
N/A
Protected

Academic year: 2022

Aktie "bitflux CMS"

Copied!
34
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

bitflux CMS

ein crossmedia-fähiges opensource System

ein Vortrag von Marcel Linnenfelser

(2)

Einführung

Verwendete Technologien

Architektur

GUI

Zusammenfassung

Bewertung

Quellenangaben

(3)

Außer Typo3 einziges richtiges WCMS der Vortragsreihe

Template System basiert auf W3C Standards XML und XSLT

crossmedia-fähig

(4)

DB

Table Structure

Browser Kunde

PDF-Viewer Popoon

http://test.de/test.pdf

http://test.de/test.html

(5)

XSLT-Processor

XML-Daten

XSLT-Template

Titel Text

(6)

XML

(eXtensible Markup Language)

XSLT

(eXtensible Stylesheet Language Transformations)

RDBMS

(relationale

Datenbankmanagementsysteme)

PHP

(PHP Hypertext Preprocessor)

(7)

Beschreibt Struktur von Daten

Dokumentstruktur bestimmt durch DTD oder Schema

Dokumente bestehen aus

geschachtelten Tags und Text (character data)

Name-Wert-Paare als Attribute mit zusätzlicher Information

(8)

<?xml version=”1.0” encoding="ISO-8859-1"?>

<notes>

<note>

<date format=”dd.mm.yyyy”>01.01.1970</date>

<headline>UNIX Zeit</headline>

<text>Beginn der UNIX Zeit</text>

</note>

...

</notes>

(9)

Valides XML-Dokument

Eigener XML-Namespace für Tags

Vorteil: klar erkennbar, was zum Stylesheet gehört

Kontrollstrukturen =>

Programmieren in XML

(10)

Für Beispiel verwendete Tags:

xsl:stylesheet:

Leitet Stylesheet Code ein

xsl:template:

Mit XPath Ausdruck Node auswählen

xsl:for-each:

Durch Elemente in Pfad laufen

xsl:value-of:

Wert eines Elements einfügen

(11)

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/notes">

<html>

<body>

<table border="2">

<tr>

<td>Datum</td>

<td>Titel</td>

<td>Text</td>

</tr>

<xsl:for-each select="note">

<tr>

<td><xsl:value-of select="date"/></td>

<td><xsl:value-of select="headline"/></td>

<td><xsl:value-of select="text"/></td>

</tr>

</xsl:for-each>

</table>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

(12)

<xsl:template match="/notes">

<html>

<body>

<table border="2">

<tr>

<td>Datum</td>

<td>Titel</td>

<td>Text</td>

</tr>

[...]

</table>

</body>

</html>

</xsl:template>

(13)

<xsl:for-each select="note">

<tr>

<td><xsl:value-of select="date"/></td>

<td><xsl:value-of select="headline"/></td>

<td><xsl:value-of select="text"/></td>

</tr>

</xsl:for-each>

(14)

<html>

<body>

<table border="2">

<tr>

<td>Datum</td>

<td>Titel</td>

<td>Text</td>

</tr>

<tr>

<td>01.01.1970</td>

<td>UNIX Zeit</td>

<td>Begin der UNIX Zeit</td>

</tr>

</table>

</body>

</html>

Ausgabe:

(15)

Problematik: Generieren von XML- Dokumenten aus Datenbankinhalten

Lösung in bitflux: sql2xml

Hierarchische Struktur der Datenbank (durch Relationen)

Vorteile: RDBMS sehr schnell, da für Datenhaltung und -abfrage optimiert

Weitere Möglichkeit: Tamino

(16)

Aufbau

Datenstruktur

bitflux Generator

Popoon

Pipelines

sitemap.xml Beispiel

(17)

Admin-GUI

Sections, Documents, Articles

DB

sql2xml

Table Structure

popoon

PHP-App

Redakteur

Browser Kunde

PDF-Viewer G

T S

(18)

Content Container “Documents”: mit Articles, Mediaobjects und Files

Struktur: Hierarchische Sections

bilden Pfad (URI)

Document mit höchstem Rang als index.html

Sections bilden Navigationsstruktur

N zu M Beziehung: Jedes Element beliebig viele Eltern

(19)

Section

Document

Article Mediaobject File Artikel mit Titel

und Bodytext.

Imageobject - GIF

- JPG - PNG

Download File

(20)

sql2xml

sql statement structure.xml

xml DB

generator

(21)

Portierung von Apache Cocoon nach PHP

Komplexes Framework zur Entwicklung vom Webapplikationen

Konzept der Pipelines zur dynamischen Erstellung von Dokumenten

Webapplikationen komplett in XML entwickeln.

(22)

Request (URI)

popoon

sitemap.php

sitemap.xml

XSLT Prozes -sor

Generator Transformer (0..*) Serializer

Dokument (html,xml,pdf)

pipeline-match

(23)

Generator

Transformer (0..*)

Serializer

DB

Filesystem XML ...

XML

Ausgabeformat (html,xml,pdf,...)

(24)

<map:pipelines>

    <map:pipeline>

<map:match type="uri" pattern="/bitfluxgen/*">      

   <map:generate type="bitflux" 

src="../structure/simple.xml"

dsn="config://dsn"  

redirectOnNotFound="'http://bitflux.ch/'"/>

         <map:transform type="phpprocessor"/>

         <map:transform type="xslt" src="globals://xslt" 

xslparams="globals://XslParams"/>

         <map:serialize type="html" />

</map:match>

    </map:pipeline>

</map:pipelines>

(25)

Übersicht

Objektbaum

Formulare

WYSIWYG-Editor

(26)
(27)
(28)
(29)
(30)
(31)

XML und XML-Tranformationen

RDBMS in Verbindung mit XML

Aufbau von bitflux CMS

Datenstruktur (Sections, Documents, ...)

Generator bitflux

Popoon Framework

Begriff der Pipeline

GUI (Artikeleingabe)

(32)

dynamisch: trotzdem performant durch caching, und von Suchmaschinen erfasst (mod_rewrite)

kein Workflow, keine Freigabekontrolle, jede Änderung sofort sichtbar

Versionskontrolle intern vorhanden, noch nicht über GUI erreichbar

Plattform: zur Zeit nur MySQL, Port auf Oracle und andere; Unices und Windows;

Apache

(33)

Technik sehr interessant und leistungsfähig

GUI noch zu rudimentär

crossmedia-fähig (html, xhtml, xml, pdf, svg, swf, jpeg, rtf, openoffice, ...)

(34)

http://www.bitflux.org

http://cocoon.apache.org

http://www.w3.org/Style/XSL/

http://www.php.net

http://pear.php.net

Referenzen

ÄHNLICHE DOKUMENTE

(4) Finally, remember that an XPath axis step is computed for a sequence of context nodes. An analysis of the context nodes and their placement in the pre/post plane can be used

Sendet ein Client eine Anfrage an einen von einer Bitflux Installation verwalteten Web Site, so wird die URI an die Popoon Komponente weitergeleitet.. F¨ ur den Client sieht es aus,

Um die Implementierung von hierarchischen modellgetriebenen Produktlinien zu unter- stützen und von konkreten Produktlinien zu abstrahieren, haben wir ein Konzept für eine

09.00-12.00 Uhr Bus ab Hauptbahnhof Schlossstraße, Tiefgarage Schloss 14.00-15.30 Uhr Linien 8, 9, 27 bis Haltestelle Schlossrondell / Neustadt Freitag: 09.00-13.00 Uhr

Hat man keine Gründe für eine bestimmte Wahl unter den möglichen Clusterverfahren, ist die Standardeinstellung („Linkage zwischen den Gruppen“) oder das Ward-Verfahren ein

Fremdschlüssel können Nullwerte aufweisen, wenn sie nicht Teil eines Primärschlüssels sind.. Schlüsselkandidaten können Nullwerte aufweisen, wenn nicht explizit NOT NULL

Ein Fremdschlüssel bezüglich einer Relation R1 ist ein (ggf. zusammengesetztes) Attribut FS einer Relation R2, für das zu jedem Zeitpunkt gilt: zu jedem Wert (ungleich NULL) von FS

So weiß jeder Anästhesist, dass unter dem Einfluss der Anästhetika zu- nächst komplexe Funktionen wie Gedächtnis und Bewusst- sein beeinflusst werden, wohingegen auch in tiefer