1 / 42

Nano-World The interdisciplinary Virtual Laboratory on Nanoscience

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.

hachi
Download Presentation

Nano-World The interdisciplinary Virtual Laboratory on Nanoscience

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nano-WorldThe interdisciplinary Virtual Laboratory on Nanoscience Ein Projekt des Virtuellen Campus T. Gyalog, M. Guggisberg, R. Schneider,Ch. Freiburghaus, P. Fornaro, B. WilliH. Burkhart, H.-J. Güntherodt Centre Suisse de Micro-technique et d‘ElectroniqueUniversität BernUniversität Fribourg Universität BaselFachhochschule beider BaselScuola universitaria della svizzera italiana

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

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

  4. Installation • Auf NT trivial • Starten mit:start.bat • Auschalten via Netz Python www.python.org Zope Module Squis.dot

  5. JDK 1.2 Servlet Container Web Server Client Database Zope Database Funktions-Schema

  6. Objektstruktur von Zope • Vererbung • Dynamische HTML-Generierung • Globale Layoutdefinition

  7. site_header leftbox rightbox body_de_html www.nanoworld.unibas.ch

  8. Layout & Mehrsprachigkeit

  9. Eingabe Interface

  10. Zentrale Änderung

  11. Wartung

  12. Inhalt eines Ordners anzeigen • <dtml-in expr="objectValues('Folder')"> • <li> <a href="&dtml-absolute_url;"><dtml-var title></a><br> </li> • </dtml-in>

  13. 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>

  14. 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

  15. 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>

  16. XML

  17. 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>

  18. XML

  19. Kommunikation Mail, Fax, SMS

  20. Kommunikation Mail, Fax, SMS

  21. Kommunikation Mail, Fax, SMS

  22. Kalender

  23. 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>

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

  25. Futur • Authentication via SQL Databank • User tracking • RPC-XML • Parsed XML • Webtest (Semesterarbeit) • Testen neuer Module • Bsp. Meerkat news service • Bsp. Portal Toolkit

  26. REQUEST <dtml-var "REQUEST">

  27. Nur PC‘s • <dtml-if "_.string.find(HTTP_USER_AGENT,'Win') == -1"> • <dtml-else>

  28. Integration von Flashobjekten

  29. Flash

  30. 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>

  31. 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>

  32. 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>

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

  34. Externe Methoden • save in Extension Folder of Zope • def helloWorld(self): • """ hier kommt nur eine Ausgabe """ • return 'Nano-World'

  35. aus addlistexternal method

  36. <dtml-var sayhello>

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

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

  39. Polimorph • class Stadtstaat(Stadt, Land): def __init__(self,name,seit, parlamentsgr): • Stadt.__init__(self,name,seit) • Land.__init__(self,parlamentsgr)

More Related