View
25
Download
0
Category
Tags:
Preview:
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
Nano-WorldThe 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 BaselFachhochschule beider BaselScuola universitaria della svizzera italiana
Centre Suisse de Micro-technique et d‘ElectroniqueUniversität BernUniversität Fribourg
Aufgaben des Portals
Informations + Wissensverwaltung Aufgabenteilung Schnittstelle für neue Dienste Mehrsprachigkeit Hierarchie und verschiedener Berechtigungen Wartbarkeit (Backup, XML, usw.) Sicherheit
Server Software: Zopehttp://www.zope.org
Installation
Auf NT trivial Starten mit:start.bat Auschalten via NetzPythonwww.python.org Zope
ModuleSquis.dot
Funktions-Schema
Database
Database
Zope
Client Web
Server
Servlet
Container
JDK 1.2
Objektstruktur von Zope
Vererbung Dynamische HTML-
Generierung Globale
Layoutdefinition
www.nanoworld.unibas.ch
site_header
body_de_htmlrightbox
leftbox
Layout & Mehrsprachigkeit
Eingabe Interface
Zentrale Änderung
Wartung
Inhalt eines Ordners anzeigen
<dtml-in expr="objectValues('Folder')"> <li> <a href="&dtml-absolute_url;"><dtml-var title></a><br> </li> </dtml-in>
Erweiterung
<dtml-if directory_items> <dtml-in directory_items> <li> <A href="<dtml-var site_url ><dtml-var urlname>"><dtml-var name></A></li> </dtml-in> <dtml-else> <dtml-in expr="objectValues('Folder')"> <li> <a href="&dtml-absolute_url;"><dtml-var title></a><br></li> </dtml-in> </dtml-if>
XMLProduct 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
XMLAusgabe
Zope dtml-method<dtml-var standard_html_header><h2>Q</h2><p><dtml-var "text_content('question')"></p><h2>A</h2><p><dtml-var "text_content('answer')"></p><dtml-var standard_html_footer>
XML
XMLBsp. 2
Alle Fragen anzeigen:<dtml-var standard_html_header><h2><dtml-var "getAttribute('title')"></h2><dtml-in "getElementsByTagName('entry')"><p><a href="<dtml-var absolute_url>/viewEntry"><dtml-var "text_content('question')"></a></p></dtml-in><dtml-var standard_html_footer>
XML
Kommunikation Mail, Fax, SMS
Kommunikation Mail, Fax, SMS
Kommunikation Mail, Fax, SMS
Kalender
dtml-calendar
<dtml-calendar> <dtml-call "setCalendar('valign','top')"> <dtml-let d="date.Date()" hasdate="hasProperty(d)" dprop="getProperty(d)"> <dtml-if "AUTHENTICATED_USER.getUserName()=='guggi'"> <a href="index_html/editCalPropForm?prop=<dtml-var d>&propval=<dtml-var dprop url_quote>"> <dtml-var "date.dd()"> </a> <dtml-else> <dtml-var "date.dd()"> </dtml-if> <br> <dtml-if "hasdate==1"> <dtml-var dprop> </dtml-if> </dtml-let> </dtml-calendar>
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 <dtml-var "REQUEST">
Nur PC‘s
<dtml-if "_.string.find(HTTP_USER_AGENT,'Win') == -1">
<dtml-else>
Integration von Flashobjekten
Flash
Formular zum Cookie setzen
<FORM NAME="formular" METHOD="POST" ACTION="report"><P>
Name: <INPUT TYPE="TEXT" NAME="qkey" SIZE=30 MAXLENGTH=30><BR>
Value: <INPUT TYPE="TEXT" NAME="qvalue" SIZE=30 MAXLENGTH=30><BR>
<INPUT TYPE="submit" VALUE="Submit"> </Form>
Formular auswerten Cookie setzen
<p> Das Cokie ist plaziert !!! <dtml-call "RESPONSE.setCookie(_['qkey'],_['qvalue'],
expires='Wed, 19 Feb 2020 14:26:00 GMT')"> </p>
Cookie lesen
<p> das Cokie heisst:<BR>
<dtml-in expr="REQUEST.cookies.keys()"> <dtml-var sequence-item> --> <dtml-var
expr="REQUEST.cookies.get(_['sequence-item'])"><br> </dtml-in> </p>
Variablen setzen
<dtml-call "REQUEST.set('geprueft','')"><dtml-in z-sqlmeth size=1> <dtml-call "REQUEST.set('geprueft','ok')"> …..
</dtml-in>
<dtml-if "geprueft!='ok'">
Externe Methoden
save in Extension Folder of Zope
def helloWorld(self): """ hier kommt nur eine Ausgabe """ return 'Nano-World'
aus addlistexternal method
<dtml-var sayhello>
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)
Recommended