© Raphael Volz 2001 Slide 1 Zope Grundlagen Seminar – Praktikum Knowledge Portals Raphael Volz.

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

Präsentation PS: Klasse File von Janko Lange, Thomas Lung, Dennis Förster, Martin Hiller, Björn Schöbel.
Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Frame-Logik Eine Einführung Andreas Glausch.
MySQL.
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Hands On – Einführung in XML
FH-Hof Einbindung von JavaScript Anweisungen
Java: Dynamische Datentypen
Java: Grundlagen der Objektorientierung
DOM (Document Object Model)
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Modularization of XHTML™
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
XPointer Die Xpointer beschreiben einen Ort oder Bereich innerhalb einer XML-Instanz. Die XPointer bauen auf der XML Path Language auf. Die XPointer ist.
Die Skriptsprache Perl (7)
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung in die Programmierung Datensammlung
Einführung MySQL mit PHP
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Der Supermarkt: Eine beispielhafte Erklärung für die fünf untersten Schichten des Semantic Web Protocol Stack Nicola Henze.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Templates. © beas2009 / Page 2 This documentation and training is provided to you by beas group AG. The documents are neither approved nor in any way.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Die Persistenzschicht
Installation FAQ-Forum Zope Basisinstallation Zusätzliche Module (Products) Grundkonfiguration Einrichten neuer Foren.
XSLT.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Einführung in die Programmierung
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Die .NET Common Language Runtime
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Typo3 Templates und TypoScript
Seminar Internet Technologien
Java für Fortgeschrittene
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Daniel Kucher Proseminar XHTML. 1. HTML – Struktur und Versionen 2. Der – Teil 3. Der – Teil 4. Stylesheets (CSS) – Das Rückrat von XHTML.
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Oliver Spritzendorfer Thomas Fekete
Trust and context using the RDF- Source related Storage System (RDF‑S3) and easy RQL (eRQL) Karsten Tolle und Fabian Wleklinski.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
1 XCDL eXtensible Characterisation Description Language Von Maike Wosnitza.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
A Workshop About this chapter General description Units Time Schedule
Einführung in die Programmierung mit Java
Geoinformation3 Geoinformation III XML Grundlagen, Namensräume und Hyperlinks Vorlesung 12b.
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
Implementieren von Klassen
 Präsentation transkript:

© Raphael Volz 2001 Slide 1 Zope Grundlagen Seminar – Praktikum Knowledge Portals Raphael Volz

© Raphael Volz 2001 Slide 2 Agenda Verwaltung von Zope Objekten Zugriff auf Zope Objekte Grundlegende Zope Techniken –DTML –Python –Zope API

© Raphael Volz 2001 Slide 3 Globale Systemarchitektur

© Raphael Volz 2001 Slide 4 Objektdatenbank Transparente Persistenz für alle Objekte Transaktionen, Multi-User fähig Versionierung, Undo-Fähigkeiten

© Raphael Volz 2001 Slide 5 Klassen Modellieren „Inhalt“ (Content) Haben Eigenschaften Ordner (Folder) Können andere Objekte enthalten. Erzeugen eine Objekt-Hierarchie. DTML Dokumente Dynamische Erzeugung von Dokumenten. Nutzen DTML (Document Template Markup Language)  Erzeugung von Inhalt...

© Raphael Volz 2001 Slide 6 Methoden Modellieren „Prozesse“ Keine Eigenschaften Bekommen Kontext von aufrufendem Objekt DTML Methoden  „Inhalt-erzeugende Prozesse“ Python Skripte Begrenzter Zugriff auf Python-Bibliotheken  „Inhalt-verarbeitende Prozesse“ Externe Methoden Python Skripte mit unbeschränktem Zugriff auf Sicherheits- kritische Dinge (Dateisystem...)

© Raphael Volz 2001 Slide 7 Eigenschaften Manche Zope-Objekte haben zusätzlich Eigenschaften (Properties) Bsp.: Ordner, Bilder, DTML Dokumente... NICHT: Methoden Mittels Eigenschaften können zusätzliche Informationen mit einem Objekt verbunden werden Eigenschaften sind typisiert (string, int...) Bsp.: Titel...

© Raphael Volz 2001 Slide 8 Agenda Verwaltung von Zope Objekten Zugriff auf Zope Objekte Grundlegende Zope Techniken –DTML –Python –Zope API

© Raphael Volz 2001 Slide 9 Zugriff auf Objekte Akquisition Ein Objekt hat Zugriff auf alle Objekte, die sich entlang des Pfades vom Objekt in Richtung Wurzel befinden. Beispiel: Zoo/LargeAnimals/giraffe/feed 

© Raphael Volz 2001 Slide 10 Request-Objekt Wird bei jedem Aufruf eines Zope-Objektes durch einen Clienten neu erzeugt Enthält Wichtige Daten vom Clienten, z.B.: –Aufgerufene URL –Formulardaten –Cookies –Parameter DTML-Tipps: – gibt alle Elemente des REQUEST Objekts aus. – Erzeugt eine neue Variable „Semester“ innerhalb des Request- Objekts

© Raphael Volz 2001 Slide 11 Zugriff auf Variablen Zugriff auf Variablen und Objekte über Namen (identifier) Variablen können an verschiedenen „Orten“ definiert sein: –Request-Objekt –innerhalb Objekt –Objekt-Eigenschaft –innerhalb Objekthierarchie Jeder „Ort“ definiert einen Namensraum (namespace)

© Raphael Volz 2001 Slide 12 Finden von Variablen Variablen werden zuletzt im Request-Objekt gesucht. Für das Client Object gelten die Regeln der Akquisition Nutzung eines bestimmten Namensraums kann erzwungen werden REQUEST Name: „Petra“ Name: „Hans“ Min_weight: 100 Remote_Addr: Owner: „Stadt K‘he“

© Raphael Volz 2001 Slide 13 Agenda Verwaltung von Zope Objekten Zugriff auf Zope Objekte Grundlegende Zope Techniken –DTML –Python –Zope API

© Raphael Volz 2001 Slide 14 DTML Document Template Markup Language Proprietär Dynamische Erzeugung von Inhalten (z.B.: HTML, XML,...) „_“ wird als Namespace-Variable bezeichnet. –Darüber erfolgt Zugriff auf die Zope API und freigegebene Python-Bibliotheken. –Bsp.:  Ausgabe: „10.1“

© Raphael Volz 2001 Slide 15 DTML-var Ausgabe von Variablen und Objekten Ausgabe ist typ-abhängig –Datei (File)  Inhalt –Bild (Image)  Link zu Bild und Img-Attribute –... Attribute –Name  Namen, der im Namespace nachgeschlagen werden soll –Expr  Auswertung von Python-Ausdrücken (gemäß Python- Syntaxregeln –Fmt  Formatierung der Ausgabe Beispiele –...

© Raphael Volz 2001 Slide 16 DTML-call Aufruf von Aktionen Keine Ausgabe Beispiel:

© Raphael Volz 2001 Slide 17 DTML Verzweigungen,,, Beispiele: Die Variable/Objekt „snake“ existiert 5"> num is greater than five num is less than five num must be five

© Raphael Volz 2001 Slide 18 DTML Iteratoren durchläuft Mengen Das aktuelle abgerufene Element wird oben auf den Namespace-Stapel gelegt. Beispiel: bgcolor="#EEEEEE" bgcolor="#FFFFFF"

© Raphael Volz 2001 Slide 19 Veränderung des Namespace-Stapel Deklaration/Veränderung von Variablen: Auswahl eines Namespace 'id' was not in the request.  (Neuer) Namespace wird ganz nach oben sortiert

© Raphael Volz 2001 Slide 20 Ausnahmebehandlung,,, Beispiel: Teilung durch Null geht nicht.

© Raphael Volz 2001 Slide 21 DTML Beispiele Cookie-Management Formularbehandlung

© Raphael Volz 2001 Slide 22 Cookie Management Setzen eines Cookie: Auslesen eines Cookie:

© Raphael Volz 2001 Slide 23 Formularverarbeitung Was sind Ihre Lieblingsgerichte Schnitzel Bockwurst Sauerkraut Semmelknödel Saumagen Sie mögen gerne: Über alles ausgewählte iterieren Sie essen wohl nichts... Inputform_process

© Raphael Volz 2001 Slide 24 Python-Skripte Entwicklung in der Sprache Python Eingeschränkter Zugriff auf Standard Python Module Attribute des Skripts müssen angegeben werden Bindings

© Raphael Volz 2001 Slide 25 Bindings Context Objekt, welches das Skript aufruft; auch „acqusition parent“ Container Ordner, in welchem das Skript abgelegt ist Script Selbstreferenz auf das Skript Namespace Nur bei Aufruf aus DTML heraus: Namespace des Aufrufenden Subpath Teil der URL nach dem Skriptnamen (Liste von Strings)  Nutzung wie jedes andere Python-Objekt

© Raphael Volz 2001 Slide 26 Rückgabe aus Python-Skripten Standard Python Rückgabe „return“ Umlenkung der Standardausgabe: –„print“ Statements wie normal nutzen –„return printed“

© Raphael Volz 2001 Slide 27 Zope API Siehe Zope Book Appendix A + B Beispiel ObjectManager-Methoden: –manage_addProduct['OFSP'] Mapping-Methode, die Zugriff auf Objektkonstruktoren des OFSP ermöglicht. –manage_addFolder(id, title) Objektkonstruktor für einen Ordner DTML: Python: context.manage_addProduct['OFSP'].manage_addFolder(id, title)

© Raphael Volz 2001 Slide 28 Python-Skript Beispiel Gästebuch Du bist: Deine Weisheit (HTML erlaubt): DTML Doc „enter“ """ Create a guest book entry. """ # create a unique document id id='entry_%d' % len(context.objectIds()) # create the document context.manage_addProduct['OFSP'].manage_addDTMLDocument(id, title="", file=comments) # add a guest_name string property doc=getattr(context, id) doc.manage_addProperty('guest_name', guest_name, 'string') Skript „addEntry“ – comments, guest_name sind Parameter