42
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 d‘Electronique Universität Bern Universität Fribourg

Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Embed Size (px)

Citation preview

Page 1: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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

Page 2: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Aufgaben des Portals

Informations + Wissensverwaltung Aufgabenteilung Schnittstelle für neue Dienste Mehrsprachigkeit Hierarchie und verschiedener Berechtigungen Wartbarkeit (Backup, XML, usw.) Sicherheit

Page 3: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Server Software: Zopehttp://www.zope.org

Page 4: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Installation

Auf NT trivial Starten mit:start.bat Auschalten via NetzPythonwww.python.org Zope

ModuleSquis.dot

Page 5: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Funktions-Schema

Database

Database

Zope

Client Web

Server

Servlet

Container

JDK 1.2

Page 6: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Objektstruktur von Zope

Vererbung Dynamische HTML-

Generierung Globale

Layoutdefinition

Page 7: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

www.nanoworld.unibas.ch

site_header

body_de_htmlrightbox

leftbox

Page 8: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Layout & Mehrsprachigkeit

Page 9: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Eingabe Interface

Page 10: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Zentrale Änderung

Page 11: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Wartung

Page 12: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Inhalt eines Ordners anzeigen

<dtml-in expr="objectValues('Folder')"> <li> <a href="&dtml-absolute_url;"><dtml-var title></a><br> </li> </dtml-in>

Page 13: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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>

Page 14: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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

Page 15: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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>

Page 16: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

XML

Page 17: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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>

Page 18: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

XML

Page 19: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Kommunikation Mail, Fax, SMS

Page 20: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Kommunikation Mail, Fax, SMS

Page 21: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Kommunikation Mail, Fax, SMS

Page 22: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Kalender

Page 23: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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>

Page 24: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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'])

Page 25: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Futur

Authentication via SQL Databank User tracking RPC-XML Parsed XML

– Webtest (Semesterarbeit)

Testen neuer Module– Bsp. Meerkat news service– Bsp. Portal Toolkit

Page 26: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

REQUEST <dtml-var "REQUEST">

Page 27: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Nur PC‘s

<dtml-if "_.string.find(HTTP_USER_AGENT,'Win') == -1">

<dtml-else>

Page 28: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Integration von Flashobjekten

Page 29: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Flash

Page 30: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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>

Page 31: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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>

Page 32: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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>

Page 33: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,
Page 34: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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'">

Page 35: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Externe Methoden

save in Extension Folder of Zope

def helloWorld(self): """ hier kommt nur eine Ausgabe """ return 'Nano-World'

Page 36: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

aus addlistexternal method

Page 37: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

<dtml-var sayhello>

Page 38: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,
Page 39: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,
Page 40: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Python

ganze, komplexe, Gleitkomma Zahlen Listen, Dictionaries (assoziative Felder) objektorientiert Klassen wie c++ Exceptions

Page 41: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

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);

Page 42: Nano-World The interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider, Ch. Freiburghaus,

Polimorph

class Stadtstaat(Stadt, Land): def __init__(self,name,seit, parlamentsgr):

Stadt.__init__(self,name,seit) Land.__init__(self,parlamentsgr)