Plone 3: quali novità
Note: Return to tutorial view.
Sempre più Plone
Tante le novità, cerchiamo di capire perchè Plone 3 conviene ancora di più!
Come a volte capita nei progetti Open Source, dopo Plone 2.1 si è deciso di dare un senso diverso e meno anarchico alla scelta dei numeri di versione. Da allora, le versioni .5 rappresentano aggiornamenti di tipo strutturale, tecnologico, poco apprezzabili dagli utenti finali per vari motivi, tra i quali il non dover attendere troppo a lungo tra due rilasci successivi. Le versioni rotonde invece, con il .0 finale, sono indirizzate a problematiche di "interfaccia" e ad un pubblico meno tecnico, e per questo risultano molto più "attese" e di richiamo.
La versione in uscita rispetta in pieno tale proposito, scopriamo perchè!
Una nuova pelle
Come prima evidente novità, Plone viene rilasciato con una nuova skin, che reinterpreta in chiave moderna e accattivante la sua gloriosa e raffinata interfaccia, cavallo di battaglia capace di distinguerlo rispetto a mille già più di cinque anni fa.
La nuova skin, NuPlone, è in realtà una "non skin": pur mantenendo alti livelli di ergonomia, lo stile dell'interfaccia è quasi assente, ma non certo lasciato al caso.
Chiaramente sono ancora saldi i principi tecnici della la skin precedente, per cui anche NuPlone si basa su fogli di stile e il sorgente HTML risulta valido rispetto alle richieste classiche di accessibilità. Tra i motivi che conducono a tale scelta di "non" stile ci sono il tentativo di invogliare gli utilizzatori a creare un proprio stile di volta in volta, e la volontà di rendere ancora più facile tale attività.
Insieme alla skin, Plone 3.0 integra per la prima volta un framework AJAX, chiamato KSS (Kinetic Style Sheet), rilasciato con alcuni miglioramenti alla fruibilità dell'interfaccia di Plone.
La comunità Plone, da sempre versata all'usabilità, ma anche all'accessibilità e alla semplicità nel manipolare l'interfaccia di base, ha meditato per lunghi mesi prima di scegliere la strada che ci porta a KSS.
Per chi non lo sapesse, AJAX significa Asynchronous Javascript And XML, e sottintende che la pagina web dotata di tali tecnologie assume un comportamento dinamico, contattando il server tra un caricamento completo e l'altro. Nella sostanza permette all'utente di usare l'applicazione web in modo molto più fluido e veloce, e al servizio di ricevere uno stress molto minore dai suoi utenti.
Tra i miglioramenti permessi da KSS ci sono l'aggiornamento dei soli box di cui si richiede un aggiornamento, come nel caso del cambio di mese per il calendario, o la modifica inline di titolo e corpo delle pagine, immediatamente editabili con un doppio clic del mouse.
KSS è il "formalismo" usato per definire sulle pagine un tale funzionamento, il suo nome deriva dal fatto che si ispira ai CSS sebbene con una semantica diversa: è un foglio di stile che descrive il comportamento dinamico della pagina, ed è stato adottato come nome dell'intero framework.
I motivi fondamentali di tale scelta sono il fatto che lo sviluppatore di interfacce (KSS designer) non tocca il javascript, ma si limita a richiamare i vari comportamenti desiderati erogati dal framework mediante le librerie AJAX incapsulate da KSS: sì, perchè nella realtà possono essere usate contemporaneamente anche diverse librerie AJAX, che siano sviluppate per Plone o meno!
Altro motivo da non trascurare: Plone deve restare accessibile e usabile, anche mediante browser di tipo meno evoluto, o javascript non disponibile. Con la scelta operata su KSS questo è quasi trasparente, proprio come avviene per lo stile delle pagine!
Non da ultimo, gli sviluppatori stanno facendo sforzi enormi per non abbassare l'elevato livello di qualità offerto da Plone, e KSS viene rilasciato con una completa suite di test funzionali in grado di controllare automaticamente che i comportamenti dinamici dell'interfaccia siano corretti.
Ancora più usabilità
Per chi già conosce Plone, moltissima attenzione troverà riversata nella ulteriore razionalizzazione dei suoi meccanismi di funzionamento, a partire del pannello di controllo, completamente riscritto con tecnologie Zope 3 e con un nuovo pannello per la gestione dei vari tipi di contenuto generabili in Plone.
L'interfaccia di modifica è stata riprogettata, ed è possibile ora saltare da un pannello all'altro senza dover salvare le singole modifiche, cliccando successivamente i vari tab che permettevano l'accesso a dati e metadati dei documenti.
Oltre a questo, grazie a KSS, è ora possibile la modifica diretta di singole parti di documento. Per capirci, se ci si accorge di un errore tipografico nel titolo o nella descrizione di un documento (ad esempio) mentre lo si sta visualizzando, un doppio clic sull'elemento rende la parte modificabile, e un bel pulsante "salva" ci permette di confermare il nostro aggiornamento, tutto questo senza dover richiamare l'intero modulo di modifica del documento, con un notevole risparmio di tempo.

Sempre per chi già conosce Plone, un'interessante novità coniuga usabilità e una "piccola" estensione alle possibilità precedentemente offerte: il caso d'uso a cui ci riferiamo è quello di un nostro documento che vogliamo mostrare a un altro utente, e solo a lui, ma senza dargli la possibilità di modificarlo, ovvero permettendogli la modifica del contenuti, ma non altre azioni, come ad esempio la sua cancellazione.
Nella versione 2.5 questo era possibile solo modificando i meccanismi di base di Plone (e sapendo esattamente quel che si stava facendo). In Plone 3.0 un nuovo workflow di base e due nuovi ruoli permettono invece all'utente di scegliere velocemente dei reader o degli editor per i propri documenti (chiaramente lo stesso può essere fatto indicando un gruppo di utenti invece dei singoli..).
Oltre a ciò, l'interfaccia di gestione permessi è stata di molto razionalizzata, unificando la gestione di utenti e gruppi e il numero di clic necessari a definire quel che ci interessa.

Per i gestori di contenuti, è stata molto migliorata la gestione delle relazioni tra oggetti, tanto che, nel caso in cui il vostro documento sia linkato ad un oggetto immagine esterno, o nel caso in cui quell'oggetto sia rinominato, spostato o cancellato, Plone notifica l'utente responsabile di tale modifica, segnalando che sta per agire su una risorsa usata da altri documenti.
Per manager e sviluppatori
Una importante novità è rappresentata da un nuovo motore per i portlet, cioè per la gestione dei box laterali. Il manager e, in una certa misura anche il semplice utente, possono, direttamente dall'interfaccia web, decidere quali box mostrare e con quali regole. Ad esempio si potrebbe desiderare di mostrare l'albero di navigazione solo quando si è all'interno della propria area personale, o si potrebbe decidere di voler vedere un box che il manager del portale ci aveva nascosto.
In questo modo si è messo il seme principale per consentire all'utente di definire un proprio cruscotto di lavoro, una dashboard, che gli mostri solo le informazioni che in un certo momento desidera per poter operare al meglio.
Inoltre certo non tarderà l'integrazione con KSS che permetta di operare su tali box in modo fluido, con un'esperienza analoga a quella di portali quali Netvibes, che di questo fanno il loro fiore all'occhiello.
Sempre più richiesta dagli utenti, e per questo migliorata e integrata nella versione ufficiale, è l'indicizzazione fulltext di documenti Word e Pdf nativa.
Da molti anni esistono dei prodotti per Plone che permettono questo tipo di funzionalità, ma normalmente richiedono un minimo sforzo di configurazione. In Plone 3.0 si ha invece semplicemente la possibilità di scegliere se abilitare o meno tale funzionamento.
Altra opzione per i manager del portale è la possibilità di scegliere per i propri documenti tra diverse configurazioni di workflow predefinite. Plone da anni viene rilasciato con un'unica configurazione di workflow sugli oggetti, pensata per il caso d'uso del portale di una comunità aperta che abbia la necessità di produrre documentazione aperta. Ma spesso Plone viene utilizzato in contesti del tutto diversi, con esigenze che difficilmente possono essere soddisfatte dallo schema di workflow predefinito.
Per venire incontro a tale esigenza sono stati formalizzati e implementati diversi casi d'uso, dallo schema con un solo stato a quello adatto alla gestione di una intranet aziendale, ed è stato anche creato un apposito pannello di controllo per associare il workflow desiderato ai singoli tipi di documento.
Oltre all'utilità pratica, chiaramente, questo permette di mettere in evidenza agli occhi dei nuovi arrivati il motore di workflow interno a Plone, che da sempre ne sancisce uno dei punti di forza rispetto ai suoi concorrenti.
Venendo ad una delle nuove possibilità offerte dall'adozione in Zope 2 delle tecnologie sviluppate per Zope 3, fa il suo ingresso in Plone la gestione dell'applicazione a eventi, a cui gli sviluppatori di software per desktop sono da molti anni abituati.
In sostanza Plone 3.0 viene rilasciato con un servizio noto come Content Rules Engine, che permette ai manager di agganciare determinati eventi, quali la generazione di un documento, o la sua eliminazione, o modifica, per attivare automaticamente logiche specifiche e versatili, quali l'invio di notifiche via mail, l'avanzamento di stato nel workflow, etc.
Versioning e Staging
Una delle novità più attese, e veramente capace di fare la differenza rispetto ai suoi concorrenti, è il servizio di versioning nativo sui contenuti, caratteristica fondamentale quando Plone viene usato come servizio di Intranet o come Gestore Documentale.
Grazie a tale funzionalità l'utente può lavorare sui suoi documenti in modo sicuro, senza aver paura di perdere informazioni importanti per errore; inoltre può collaborare con altri allo stesso documento, aggiungendo dei commenti alle nuove versioni generate, o controllando cosa cambia da una versione all'altra grazie al servizio integrato di diff, che permette di calcolare la differenza tra versioni per specifici attributi del documento (il titolo, la descrizione, il corpo del documento, etc.).
In realtà si ha bisogno del sistema di versioning anche in casi meno "evidenti", in cui si desidera mantenere attiva e "funzionante" una copia di un documento, mentre una sua revisione viene gestita dal sistema con un workflow parallelo, per poi sostituirsi con un clic finale alla precedente versione attiva. Questa problematica viene definita in gergo Plone come Staging dei contenuti, e con il nuovo sistema di versioning risulta facilmente attivabile.

Tornando al versioning vero e proprio, il motore CMFEdition permette di personalizzare la policy di versionamento da applicare agli oggetti, in modo ad esempio di generare una revisione in automatico ad ogni nuova modifica operata sui documenti, ovvero lasciando all'utente la scelta di generare una nuova versione in un certo istante.
A completare tali caratteristiche Plone 3.0 vede anche nativa la possibilità di bloccare in modo automatico o manuale un documento in modifica, in modo che, in particolare dove si lavora a più mani, sia ridotta al minimo la possibilità di sovrapporre il proprio lavoro a quello di altri senza volerlo.
Dietro le quinte
Sebbene la 3.0 sia una versione indirizzata agli utenti finali, questo non ha impedito anche una serie di evoluzioni nei servizi di base, che in parte abbiamo visto nei precedenti paragrafi.
Di fatto una delle spinte più facilmente riconoscibili e onnipresenti è quella verso le tecnologie Zope 3, sempre più adottate e abilitanti nella risoluzione di problematiche fino a poco fa complesse da gestire.
Tanto per fare qualche esempio, abbiamo già ricordato la riscrittura del pannello di controllo basata su tali nuove tecnologie, possiamo qui citare anche la razionalizzazione del template principale per quanto riguarda la parte relativa ai menu e tab contestuali all'oggetto informativo presentato, che ora consente agli sviluppatori di intervenire da codice con una flessibilità ed efficacia molto superiori. Allo stesso modo possiamo segnalare la nuova infrastruttura di gestione utenti basata su plug-in e perciò completamente estensibile, o anche il già citato nuovo motore per la gestione dei portlet.
Insomma, quel che era stato promesso tempo addietro si sta puntualmente avverando: lo sviluppatore Plone sta effettivamente utilizzando quanto di buono viene implementato in ambito Zope 3, e senza ripartire da zero in tale contesto.
Non resta che invitarvi a sperimentare la nuova versione 3.0, da poco in rilascio, e buon Plone a tutti!
