Progetto My Campus

La pagina personale dello studente – e qualcosa di più

Ottava Settimana (dal 1 ottobre al 7 ottobre)


ottava settimana – dal 1 ottobre al 7 ottobre


Conferenza Plone


introduzione


Il giorno Primo Ottobre 2007 l’azienda milanese Redomino ha ospitato una conferenza su Plone atta a portare più comunità all’utilizzo constante di Plone & Zope come non solo come CMS ma anche come CMF. Un CMF è



A content management framework is an application programming interface for creating a costumized content management system


Questa definizione purtroppo non rende giustizia alla tecnologia Zope, perché in realtà fa molto di più!


argomenti trattati


Poichè il corso è stato abbastanza intenso, è stato possibile prendere appunti in maniera frammentaria e inaccurata, per cui riproponiamo gli argomenti sotto forma di lista:



introduzione

Poiché la riunione era rivolta ad un gruppo di utenti eterogeneo, la conferenza è iniziata con una copiosa guida all’installazione di Plone ed alla sua struttura;



Plone è una demo

Spesso molte persone non utilizzano il Sistema Zope + Plone perchè si sentono costretti ad usare un CMS con poche personalizzazioni possibili o di grafica abbastanza spartana. In realtà Plone è solo un’istanza particolare di Zope, ma può essere modificata nel profondo. Ovviamente, anche la grafica è modificabile e personalizzabile, è sufficente avere nozioni di HTML/CSS e saper dove andare a scriver codice;



astrazione completa sull’oggetto

Essendo Plone e Zope basati Python, radicato nella sua composizione c’è la possiblità di definire un tipo di oggetto con estrema semplicità e di personalizzarlo in maniera totale, senza nessuna limitazione (se non la dimestichezza con Zope e Python);



permessi

La gestione dei permessi fa decisamente concorrenza ad un sistema operativo moderno. É infatti possibile scegliere i permessi che un determinato gruppo di utenti può avere riguardo ad un tipo di oggetto in maniera atomica, cioè scegliendo in maniera precisa ed esplicita ogni azione possibile;



live search

Il motore di ricerca di Zope, non soltanto esegue un’indicizzazione costante dei contenuti e ha un buon supporto Ajax al momento della digitazione del termine da ricercare (tipo la tollbar di google) ma restituisce i risultati in base allo scope che ha l’utente. Per esempio, se non si è loggati al sito si potranno vedere solo documenti visibili ad utenti anonimi ma non quelli visibili dagli utenti registrati;



zope è transizionale

L’interfaccia di Plone accede al “`File System”‘ di Zope in maniera transizionale, cioè ogni iterazione è atomica; se l’operazione in corso non va a buon fine c’è un rollback che ripristina lo stato del sistema prima che l’azione avesse inizio;



accesso a documenti non autorizzati

Il sistema di sicurezza (come già visto nel live search) è efficace, poichè non permette ad un utente non autorizzato di vedere il contenuto di un documento. Non solo, il sistema non ne consente la visione nemmeno se egli è in possesso dell’URL di riferimento;



immagini

Poichè in Zope (Python) ogni cosa è un oggetto, le immagini non fanno certo eccezione; nel sistema, infatti, le immagini sono memorizzate con il medesimo formato e qualità del file immagine d’origine. In maniera del tutto automatica, il sistema effettua un resize dell’immagine per renderizzarla su una pagina agevolandone l’accesso (ridurre il carico di dati da spostare, ridurre gli sprechi, presentare una pagina ben formattata senza immagini gigantesche!), ne crea cioè un’anteprima più snella. L’immagine sarà comunque disponibile con un semplice click. Plone supporta di default diverse dimensioni di resize;



ereditarietà nei permessi

Il sistema rispetta l’ereditarietà, una delle principali caratteristiche dei linguaggi OO; applicando questo principio ai contenuti, se un utente può vedere una cartella può vedere automaticamente i file che contiene a meno che tali file non siano a lui vietati, così come se un gruppo acquisisce l’accesso ad un documento, tutti i membri di tale gruppo acquisiranno automaticamente tale diritto;



cercatore

Il cercatore è un particolare tipo di oggetto che viene definito da una ricerca costituita da logiche anche complesse, all’interno del sistema. Ogni volta che un utente richiede la visione di quest’oggetto esso ripresenta in propri contenuti in maniera dinamica;



Autorefresh

Zope ha raramente bisogno di un riavvio, perchè si "accorge" dinamicamente di nuovi tipi di oggetto definiti;



caching di CSS e JS

Il sistema dispone di appositi recipienti in cui inserire i codici CSS e JS necessari al sito. Il sistema restituirà tutto quanto in maniera ottimizzata per le cache dei browser e dei proxy di rete;



caching delle pagine

per quanto riguarda le pagine, Zope permette ai proxy di cachare le pagine statiche ma non quelle dinamiche, ne tanto meno quelle private, per evitare che in rete risiedano copie di pagine protette; è anche possibile configurare la cache per evitare di renderizzare ogni volta una pagina, ammesso che la copia memorizzata sul browser dell’utente sia aggiornata; questa funzionalità deve ancora essere inserita nel Plone 3;



accesso ai db

Fornisce un sistema di gestione della cache direttamente sugli oggetti del db di zope, nel caso in cui il webserver sia diviso su più macchine o nel caso in cui abbiano un database condiviso;



tuning

Esistono extension per ottimizzare le prestazioni del sistema, scaricabili direttamente dal sito ufficiale;



single core

Zope (Python) è un linguaggio di programmazione non multi core ma single core; postilla da ricordare per ottimizzare sistemi multi core;



plone templates

Sono delle pagine prefabbricate che vengono richiamate dal sistema, il cui codice è direttamente modificabile; importante ricordarsi di faro mantenendo gli standard XHTML; è un [HTML] FF1100 linguaggio page replay;



cartella custom

Particolare cartella in cui Zope memorizza le nostre personalizzazioni; esse, in un certo senso, effettuano un override sul sistema. Per ripristinare il sistema è sufficiente cancellarle;



zope come cartella di rete

Si può aver accesso a Plone come cartella di rete tramite il WebDav, permettendo quindi di:


  • mostrare tutti gli oggetti della struttura di plone come con il classico stile ad albero, permettendone operazioni lettura-scrittura, ovviamente in base ai permessi che ha l’utente



  • indicizzazione automatica



  • possibilità di mappare una cartella del file sistem all’interno di plone e indicizzarla, con un però perdita di personalizzazione in termini di sicurezza (parametri di sicurezza limitata)





versioning

Sistema di versioning con controllo d’accessi e tracking delle modifiche, con possibilità di effettuare rollback;




strumenti aggiuntivi


Sono stati trattati diversi strumenti aggiuntivi per semplificare la personalizzazione di plone. Saranno anch’essi riproposti mediante un elenco.



portal_skin custom

Per creare e modificare le viste;



formgenerator

Supporto alle form HTML;



plone2postgresql

Per eseguire query sql;



Generic Plone Content

Per estendere gli oggetti direttamente da web;



external file

Per utilizzare file esterni a Plone;



plone artiche

É molto simile a document, ma con più campi;



tabbed subpages

Permettere ad un documento di contenere altri documenti che vengono reperiti mediante il proprio UID, all’interno di Plone;




referenze


Il corso è stato tenuto da andrea.cannizzaro@redomino.com e da fabrizio.reale@redomino.com, entrambi della ditta Redominio http://www.redomino.it.


KSS


Kinetic Style Sheets è il nuovo motore Ajax introdotto in Plone 3. Si propone di fare un largo riuso del codice JavaScript già scritto.

Mercoledì 17 Ottobre 2007 Pubblicato da Nastari Giovanni | Redomino, Zope, cmf, cms, kss | | Ancora nessun commento.