nano-world the interdisciplinary virtual laboratory on nanoscience

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

Upload: hachi

Post on 19-Jan-2016

24 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

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

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

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

Page 4: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

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

Funktions-Schema

Database

Database

Zope

Client Web

Server

Servlet

Container

JDK 1.2

Page 6: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Objektstruktur von Zope

Vererbung Dynamische HTML-

Generierung Globale

Layoutdefinition

Page 7: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

www.nanoworld.unibas.ch

site_header

body_de_htmlrightbox

leftbox

Page 8: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Layout & Mehrsprachigkeit

Page 9: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Eingabe Interface

Page 10: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Zentrale Änderung

Page 11: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Wartung

Page 12: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

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

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

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

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

XML

Page 17: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

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

XML

Page 19: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Kommunikation Mail, Fax, SMS

Page 20: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Kommunikation Mail, Fax, SMS

Page 21: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Kommunikation Mail, Fax, SMS

Page 22: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Kalender

Page 23: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

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

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

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

REQUEST <dtml-var "REQUEST">

Page 27: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Nur PC‘s

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

<dtml-else>

Page 28: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Integration von Flashobjekten

Page 29: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Flash

Page 30: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

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

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

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
Page 34: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

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

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

aus addlistexternal method

Page 37: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

<dtml-var sayhello>

Page 38: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience
Page 39: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience
Page 40: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

Python

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

Page 41: Nano-World The interdisciplinary Virtual  Laboratory on Nanoscience

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

Polimorph

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

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