Federico Caboni & Alceste Scalas

ZOPE e PLONE

introduzione

e

dimostrazione pratica

Cos'è Zope?

Web Application Server

Sistema che consente di gestire in modo coerente e unitario le applicazioni su web

Sistema di Pubblicazione di Oggetti

Cartelle, file, immagini, script, sono considerati oggetti (nel senso della OOP)

Lo sviluppatore crea gli oggetti, Zope si preoccupa di pubblicarli su web

Cos'è Plone ?

E' un'applicazione Zope: ha bisogno di Zope per girare, ed utilizza i meccanismi di base dell'application server

E' un CMS (Content Management System)

Si occupa di organizzare e gestire portali multiutente in cui i vari utenti possono aggiungere, modificare e categorizzare vari contenuti

Un contenuto può essere un articolo, un file, il calendario di un evento come il Linux Day...

Permessi

ACL

“Ruoli” e “Permission”

Ogni ruolo è una collezione di permessi

Local Roles

Acquisition delle permission

Properties

Molti oggetti in Zope (tra cui ad esempio le Folders), possono avere delle Property, ovvero delle variabili associate all'oggetto e identificate da un nome.

Le property possono essere usate per aggiungere metadati a un oggetto (autore, titolo, parole chiave per la ricerca...)

Le property non sono solo stringhe: possono essere numeri (int e float), date, valori booleani, linee di testo, etc.

E' possibile per un utente aggiungere nuove property ad un oggetto.

Acquisition

L'acquisition tra oggetti è simile all'ereditarietà

L'ereditarietà si basa su relazioni è un, l'acquisition su relazioni del tipo è in

In pratica, un oggetto può acquisire attributi dall'oggetto che lo contiene (detto container)

In altre parole, se Zope non trova un attributo (o metodo) nell'oggetto in cui lo si cerca, viene controllata la sua presenza nel suo container, nel container del container, etc., andando a ritroso per tutta la gerarchia

ZPT – Zope Page Templates

Linguaggio di templating che permette di costruire pagine HTML dinamiche, cioè create sul momento dal server

La sintassi di ZPT utilizza gli attributi XHTML: una pagina ZPT è anche una pagina HTML valida

Ecco un piccolo esempio:

<b>Hello, <span tal:replace=”user/getUserName”>User</span>!</b>

user/getUserName è una path expression e, in pratica, serve a identificare la provenienza del dato da inserire (in questo caso il metodo getUserName dell'oggetto user, cioè il nome dell'utente)

Workflow

Un Workflow rappresenta la serie di interazioni che devono essere compiute per portare a termine un task

Le interazioni coinvolgono diversi ruoli

L'approvazione di un documento è un task

I ruoli coinvolti sono il submitter, che propone il documento, e il reviewer, che lo controlla e, everntualmente, lo approva

Il Workflow del task “Approvazione del documento” specifica in dettaglio le interazioni

Workflow – diagramma

Risorse

www.zope.org: sito ufficiale

www.zope.it: sito italiano di zope

www.zopelabs.com : raccolta di risorse

www.plone.org: sito di plone

www.python.org: sito ufficiale di Python, linguaggio di programmazione usato per programmare Zope (talk su Python alle 15:00 :-)

Zope e Plone: introduzione e dimostrazione pratica

Zope Plone CMS

Stefano Sanna

2003-03-27T08:39:43

Stefano Sanna