Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus, P. Fornaro, B. Willi H. Burkhart, H.-J. Güntherodt Universität Basel Fachhochschule beider Basel Scuola universitaria della svizzera italiana Centre Suisse de Micro-technique et dElectronique Universität Bern Universität Fribourg
Content Management System (CMS)
Aufgaben des Portals Informations + Wissensverwaltung Aufgabenteilung Schnittstelle für neue Dienste Mehrsprachigkeit Hierarchie und verschiedener Berechtigungen Wartbarkeit (Backup, XML, usw.) Sicherheit
Server Software: Zope
Installation Auf NT trivial Starten mit:start.bat Auschalten via Netz Python Zope Module Squis.dot
Funktions-Schema Database Zope Client Web Server Servlet Container JDK 1.2
Security Konzept von JAVA 1.2 Keine generell gültigen Security Vorgaben mehr vorhanden. Alles ist verboten, ausser was im File java.policy explizit erlaubt ist.
Objektstruktur von Zope Vererbung Dynamische HTML- Generierung Globale Layoutdefinition
site_header body_de_html rightbox leftbox
Layout & Mehrsprachigkeit
Eingabe Interface
Zentrale Änderung
Wartung
Client spezifische Ausgabe if(PlayerInstalled == false) {...} else {...}
Inhalt eines Ordners anzeigen
Erweiterung ">
XML Product XML Document Einfügen: Ein neues XML Dokument erstellen. Das XML Dokument ist somit in die Zope Datenbank integriert und kann mit eigenen Funktionen manipuliert werden
XML Ausgabe Zope dtml-method Q A
XML
XML Bsp. 2 Alle Fragen anzeigen: /viewEntry">
XML
Kommunikation Mail, Fax, SMS
Kalender
dtml-calendar <dtml-let d="date.Date()" hasdate="hasProperty(d)" dprop="getProperty(d)"> &propval= ">
Externe Methode Perl oder Python muss im Ordner Extension stehen Bsp: editCalendarProperty.py def editCalendarProperty(self,REQUEST,RESPONSE): if ( self.hasProperty(REQUEST['prop']) ): self.manage_changeProperties({ REQUEST['prop'] : REQUEST['propval'] }) else: self.manage_addProperty(REQUEST['prop'], REQUEST['propval'], 'string') return REQUEST.RESPONSE.redirect(REQUEST['BASE2'])
Futur Authentication via SQL Databank User tracking RPC-XML Parsed XML –Webtest (Semesterarbeit) Testen neuer Module –Bsp. Meerkat news service –Bsp. Portal Toolkit
REQUEST
Nur PCs
Integration von Flashobjekten
Flash
Formular zum Cookie setzen Name: Value:
Formular auswerten Cookie setzen Das Cokie ist plaziert !!!
Cookie lesen das Cokie heisst: -->
Variablen setzen …..
Externe Methoden save in Extension Folder of Zope def helloWorld(self): """ hier kommt nur eine Ausgabe """ return 'Nano-World'
aus addlist external method
Python ganze, komplexe, Gleitkomma Zahlen Listen, Dictionaries (assoziative Felder) objektorientiert Klassen wie c++ Exceptions
Class class Stadt(Gemeinde): def __init__(self,name,seit): Gemeinde.__init__(self,name) self.stadtrecht=seit def zieht_um(self, von, leute): for mensch in leute: von.zieht_aus(mensch) self.zieht_ein(mensch) Berlin=Stadt(´Berlin´,1234);
Polimorph class Stadtstaat(Stadt, Land): def __init__(self,name,seit, parlamentsgr): Stadt.__init__(self,name,seit) Land.__init__(self,parlamentsgr)