1. Introduzione a Plone
Capitolo 1: Introduzione a Plone
Una azienda senza un sito web è una cosa inimmaginabile, e molte aziende e organizzazioni dispongono di più di un sito. Magari un sito esterno per comunicazioni ai clienti e uno per la intranet dei dipendenti o un sito per ricevere direttamente ordinazioni e comunicazioni dai clienti: tutti i siti web hanno il comune problema di come gestire i loro contenuti. È una attività che spesso richiede alle organizzazioni molto tempo e risorse. Non è facile infatti creare un sistema sufficientemente potente e flessibile per siti simili che devono poter essere in continuo movimento e contemporaneamente soddisfare le crescenti necessità aziendali.
Indipendentemente dalle esigenze del sito o dalla quantità di contenuti o di utenti, Plone è una potente soluzione orientata all'utente che consente di aggiungere e modificare qualsiasi tipo di contenuto via web, che rende disponibile la navigazione e la ricerca in quei contenuti e che vi applica una politica di sicurezza ed un controllo di flusso.
Plone permette di mettere insieme quasi ogni tipo di sito web e di aggiornarlo facilmente. Ciò significa costruire velocemente siti ricchi di contenuti ottenendo un notevole vantaggio competitivo. Infine probabilmente la miglior cosa di questo sistema è che è libero e a sorgente aperto. Con la sua ampia disponibilità di strumenti e caratteristiche è paragonabile, se non migliore, a molti sistemi di gestione di contenuti proprietari che costano migliaia e migliaia di euro.
Nel suo intervento alla Open Source Content Management Conference (OSCOM) del 2002 a proposito del sito di Mindjack (http://www.mindjack.com/events/oscom.html), Mike Sugarbaker ha affermato:
"Non farò un resoconto completo di tutti i framework di content management open source a disposizione. La farò breve: il vincitore è Plone. Questo prodotto trae giovamento dai sei anni di maturazione di Zope, un framework per applicazioni web: per tutto questo periodo è stato il pacchetto più ricco di strumenti, il più professionale, quello più seguito e, sopra tutto, il più eccitante (buzz)."
Si può vedere il sito web di Plone all'indirizzo http://www.plone.org come si vede in figura 1-1. Per provare immediatamente e facilmente Plone c'è un sito dimostrativo disponibile all'indirizzo http://demo.plone.org. Lì in particolare sarà possibile aggiungere eventi, caricare immagini, aggiungere documenti ed elaborarli tramite l'ambiente di sviluppo che Plone fornisce.
Figura 1-1. Il sito web Plone
Che cosa è un Content Management System?
Una definizione semplicistica di Content Management System (CMS) è sistema di gestione di contenuti. Questa non è una definizione molto utile e quindi andremo a suddividerla in piccole parti per darne una spiegazione migliore. Iniziamo con una definizione generica di contenuto: contenuto è una unità di dati con alcune informazioni extra attaccate ad esso. Tale insieme di dati può essere una pagina web, una informazione su un evento imminente, un documento di Microsoft Word, una immagine, una registrazione video, o qualsiasi insieme di dati che abbia un significato per l'azienda che sviluppa il sistema.
Tutti questi elementi sono detti contenuti e possono condividere attributi simili come l'essere modificabili ed aggiungibili solo da determinati utenti o di essere pubblicati in varie maniere. Un sistema detto controllo di flusso controlla questi attributi. Il controllo di flusso è la logica definita dagli obiettivi dell'organizzazione e descrive un sistema per gestire i contenuti.
Storicamente c'è differenza tra un sistema di gestione di documenti rispetto ad un sistema di gestione di contenuti ma per gran parte i due sistemi convergono. La maggiore differenza sta negli elementi che vengono gestiti; solitamente viene considerato contenuto qualsiasi unità di informazione mentre documento è riferito a qualcosa creato e modificato dagli umani con software come Microsoft Office. Pensiamo ad esempio ad un libro: un libro contiene molte unità di dati e può richiedere una gestione leggermente differente da quella richiesta da un contenuto. Comunque nella maggioranza dei casi questa è una differenza minima e un prodotto come Plone è in grado di gestire le piccole unità che compongono pezzi di contenuto più grandi e di riassemblarli.
Nell'ubiquità del web molti CMS sono ora classificati come CMS web sia che si basino su una interfaccia web sia che abbiano come scopo il sistema di distribuzione su internet o su una intranet. Plone fornisce una interfaccia di gestione web e un sistema di distribuzione dei contenuti sul web.
La seguente è una definizione di un CMS (http://www.contentmanager.eu.com/history.htm):
Un CMS è uno strumento che consente ad una grande varietà di collaboratori tecnici (centralizzati) e non-tecnici (decentralizzati) di creare, modificare, gestire e infine pubblicare un gran numero di contenuti (come testi, oggetti grafici, video e così via) mentre questi sono controllati da un insieme di regole centralizzate, processi e controlli di flusso che assicurano un'apparenza web validata e coerente.
Abbiamo bisogno di un Content Management System?
Sebbene non sia l'unico vantaggio di un CMS il più ovvio è la facilità di coordinamento di un sito web. Consideriamo la situazione in cui una persona, il Webmaster, coordina un sito web, sia esso su una intranet che un sito esterno. I contenuti arrivano dagli utenti in formati diversi ed il webmaster li converte in pagine web trasformandoli in Hypertext Markup Language (HTML). Se l'utente deve modificare queste pagine invia le modifiche al webmaster che modifica le pagine e così via.
Ciò comporta svariati problemi per le organizzazioni, il maggiore dei quali è il fatto che tutti i contenuti passano da una persona, un autentico collo di bottiglia.
Oltre al fatto che una persona può fare solo una certa quantità di lavoro, se questa persona è ammalata o lascia l'azienda vi è una grande perdita di produttività ed alti costi per rimpiazzarla. Il processo di pubblicazione potrebbe divenire assai frustrante con flussi di e-mail tra il webmaster e l'utente che cerca di pubblicare del contenuto.
Ciò che è necessario è un sistema che faccia le seguenti cose:
- Separazione del contenuto di una pagina dalla sua composizione
- Se l'effettivo contenuto è separato dalla composizione l'autore del contenuto non ha la necessità di conoscere il linguaggio HTML e come la pagina viene distribuita. Ad un medesimo pezzo di contenuto possono essere applicati infatti molti differenti modelli di presentazione, anche formati differenti dall'HTML come il Portable Document Format (PDF) o Scalable Vector Graphics (SVG). Quando si desidera modificare l'aspetto del proprio sito è sufficiente modificare un modello piuttosto che l'intero contenuto.
- Consentire l'aggiunta e la modifica dei contenuti da parte di certi utenti
- Se determinati utenti possono aggiungere e modificare facilmente i loro contenuti essi non hanno la necessità di inviarli al webmaster o passarli al gruppo web. Invece l'utente che voglia creare una pagine può farlo ed eventualmente modificarla successivamente quante volte sia necessario.
- Applicare regole su chi può pubblicare cosa e quando
- Gli affari non consentono probabilmente che chiunque possa pubblicare contenuti ovunque nel proprio sito web; per esempio il personale del marketing dovrebbe essere in grado di pubblicare solo nella sezione delle stampe e non in quella dei progetti.
- Poter applicare regole di revisione ai contenuti
- Se una persona del marketing crea un comunicato stampa qualcuno del reparto legale dovrebbe visionare i contenuti di quel documento. In questo caso il documento attraverserà un processo di revisione che assicuri che non venga pubblicato finché tali revisioni non siano state effettuate.
- Poter ricercare ed indicizzare le informazioni in modo intelligente
- Siccome il CMS può tenere traccia di informazioni strutturate relative al contenuto (come il nome dell'autore, la data di pubblicazione, le date delle modifiche, categorie, e così via) può produrre elenchi di contenuti per autore, modifiche recenti, e così via. Consente funzionalità di ricerca avanzate che sono più veloci ed utili della semplice ricerca testuale.
Sebbene questo esempio ritragga interessi che sono più significativi per le grandi organizzazioni, lo stesso approccio può portare notevoli benefici a organizzazioni di qualsiasi dimensione. Sono infatti le piccole aziende, che non possono impiegare un webmaster a tempo pieno, che possono ottenere un beneficio decisivo utilizzando questo sistema. Installando un CMS possono essere risolti questi ed altri problemi.
Il fattore importante di ogni CMS è che fornisca una chiara separazione dei suoi elementi chiave: sicurezza, controllo di flusso, modelli di pagina (templates), e così via. Per esempio i template che mostrano un elemento devono essere separati dal contenuto. Questo consente di modificare rapidamente l'aspetto.
Funzionalità chiave di Plone
Plone è un software a sorgente aperto (open source) licenziato sotto i vincoli della General Public License (GPL) che è una diffusissima licenza open-source che consente a chiunque il libero (ri)uso del codice sorgente. Per maggiori informazioni riguardo la licenza GPL si visiti il sito della Free Software Foundation all'indirizzo http://www.gnu.org. Si può esaminare il codice sorgente di Plone in ogni suo aspetto e modificarlo secondo le proprie necessità. Non ci sono onorari da pagare o licenze che scadono e tutto il codice è visibile. Da questa filosofia open-source deriva il fatto che Plone ha una grande base di utilizzatori e legioni di di sviluppatori, esperti di usabilità, traduttori, tecnici commentatori e designer grafici che sanno lavorare su Plone. Scegliendo Plone non si viene intrappolati da una azienda ma piuttosto si possono usufruire di servizi da parte di dozzine di aziende.
Pacchettizzato
Plone dispone di pratici programmi di installazione per Windows, Linux e Mac. Assieme a questi installer vengono forniti anche altri prodotti third-party (compatibili con Plone ma non mantenuti da plone.org n.d.t.) e add-ons (aggiunte). La qualità nei rilasci di questi prodotti rende facili l'installazione e la manutenzione. Inoltre ogni nuovo rilascio conserva i path nella migrazione in modo che un sito viene mantenuto attivo e rimane aggiornato.
Internazionale
L'intera interfaccia utente di Plone è tradotta in più di 20 lingue, incluso il Coreano, il Giapponese, il Francese, lo Spagnolo, il Tedesco e l'Italiano. È facile inserire una nuova traduzione (vedi capitolo 4).
Usabile
Plone consente una eccellente esperienza da parte dell'utente con un alto livello di usabilità ed accessibilità. Non si tratta solamente di presentare un buon HTML ma di un aspetto che parte dalle fondamenta Plone. L'interfaccia di Plone è completamente compatibile con gli standard industriali e governativi (WAI-AAA e U.S. Section 508). Ciò permette, per esempio, alle persone con disfunzioni visive di usare comunque i siti costruiti con Plone. Questa caratteristica ha un beneficio inatteso e correlato: le pagine sono indicizzate molto meglio dai motori di ricerca come Google.
Aspetto personalizzabile
Plone separa il contenuto dai modelli effettivamente utilizzati per presentarlo, chiamati in gergo skin. Gli skin sono scritti con un eccellente sistema di modellazione HTML, lo Zope Page Template (ZPT) e un largo uso del Cascading Style Sheets (CSS). Anche con una scarsa conoscenza di Plone è possibile applicare skin multipli al proprio sito, dargli aspetti diversi e personalizzarne completamente l'apparenza.
Registrazione utenti e personalizzazione
Plone offre un completo sistema di registrazione utenti. Gli utenti sono registrati nel sito Plone con i loro nomeutente e password e qualsiasi altra informazione fosse necessario aggiungere all'utente. È possibile quindi personalizzare completamente l'interfaccia dell'utente. Inoltre, con degli add-ons, è possibile usare informazioni preesistenti sugli utenti, provenienti da fonti diverse come database relazionali, Lightweight Directory Access Protocol (LDAP), Active Directory, e altri. Il capitolo 8 spiega come registrare e configurare gli utenti.
Workflow e Sicurezza
I workflow controllano la logica di elaborazione dei contenuti dell'intero sito. È possibile configurare questa logica usando strumenti grafici via web. Gli amministratori dei siti possono creare siti complessi o semplici quanto vogliono; per esempio è possibile aggiungere strumenti di comunicazione come la spedizione di posta o di messaggi istantanei agli utenti. Il capitolo 9 entra nei dettagli dei workflow.
Per ciascun elemento contenuto in un sito Plone è possibile impostare una lista di controllo degli accessi (Access Control Lists, o ACL) per decidere chi ha accesso a quell'elemento e come possa interagire con esso. Possono modificarlo, vederlo o commentarlo? Tutto ciò è configurabile via web (vedi il capitolo 9).
Estensibile
Essendo open-source Plone è facilmente modificabile. È possibile configurare quasi ogni aspetto di Plone per soddisfare qualsiasi necessità.
Vi sono innumerevoli pacchetti e strumenti per Plone che forniscono un ampio spettro di opzioni valide per i siti di piccole aziende come per organizzazioni di larga scala. All'indirizzo http://www.plone.org sono disponibili dei repository che contengono numerose aggiunte (free add-ons). Tramite strumenti di sviluppo come Archetypes (descritto nel capitolo 13) è possibile generare e modificare facilmente il codice via web o usare strumenti di tipo Unified Modeling Language (UML). Il capitolo 10 tratta l'integrazione in Plone di soluzioni e servizi aziendali come LDAP, Apache, Microsoft Internet Information Services (IIS), Macromedia Dreamweaver e così via.
Personalizzazione dei contenuti
Gli utenti di un sito Plone possono aggiungere qualsiasi tipo di contenuto senza limiti o costrizioni dei dati aggiunti. Gli sviluppatori di Plone possono creare loro tipi di contenuti tanto che è possibile gestirne quasi di ogni tipo: l'unico limite è l'immaginazione. Nel Capitolo 11 e nel Capitolo 12 discuteremo come gestire i tipi di contenuti. Il capitolo 13 introdurrà Archetypes che è un potentissimo sistema per generare nuovi tipi di contenuti che non richiede programmazione; per esempio è possibile generare nuovi tipi di contenuti da strumenti UML.
Documentazione
Il progetto Plone mantiene la documentazione, incluso questo libro, pubblicandola sotto la licenza Creative Commons. Il miglior posto per iniziare a conoscere la documentazione della comunità è l'indirizzo http://www.plone.org/documentation.
Comunità
Una delle cose migliori di Plone è la comunità di programmatori ed organizzazioni che lo supportano e lo sviluppano. Vi sono oltre 60 sviluppatori distribuiti in tutto il mondo che sono coinvolti nel progetto a vari livelli ed è quasi sempre possibile trovarne uno in linea in grado di aiutarti. Alan Runyan, Alexander Limi e Vidar Andersen sono quelli che hanno iniziato a scrivere Plone ma subito si sono coinvolti nello sviluppo del progetto open-source molti altri sviluppatori. L'aspetto attuale di Plone è il frutto dei contributi di codesti sviluppatori.
Esempi di siti Plone
Esistono molti siti Plone; alcuni sono ovvii per il loro aspetto, altri no. Quella che segue è solo un piccolo spettro dei vari siti:
- Plone (http://www.plone.org)
- Plone Demo Site (http://demo.plone.org)
- Zope.org (http://www.zope.org)
- Liquidnet (http://www.liquidnet.com)
- Design Science Toys (http://www.dstoys.com)
- Give Kids the World (http://www.gktw.org)
- Propane (http://www.usepropane.com)
- Maestro Headquarters (http://mars.telascience.org)
Molti altri siti Plone sono elencati su http://www.plone.org/about/sites, tra cui anche siti che si presentano con una interfaccia utente molto differente. Senza conoscere qualcosa sul come sono stati sviluppati, sarebbe infatti molto difficile affermare che questi siti sono basati su Plone.
Come collaborare allo sviluppo di Plone
Sebbene Plone offra già una impressionante lista di funzionalità, la lista delle richieste è ancora più grande. Per questa ragione il progetto viene studiato sempre da nuove persone che vi vogliono dedicare il loro tempo.
Fortunatamente, essendo focalizzato sull'utente finale, ha la capacità di servire ad un ampio spettro di discipline. Sono quindi benvenuti volontari di ogni area piuttosto che solo sviluppatori di codice per il web. Plone necessità di sviluppatori per l'interfaccia utente, esperti di usabilità, designer grafici, traduttori, scrittori e collaudatori. È possibile conoscere l'attuale stato dello sviluppo nel sito web di Plone all'indirizzo http://plone.org/development ed il modo migliore per coinvolgersi è quello di collegarsi alle mailing list o contattare gli sviluppatori tramite i canali Internet Relay Chat (IRC).
Plone è realizzato con Zope ed il suo Content Management Framework (CMF). Per capire Plone è necessario capire come funziona Zope ed il CMF e come sia l'architettura sottostante. Per questo motivo, nelle sezioni che seguono, spiegheremo questi due elementi e come sono integrati in Plone.
Zope è una applicazione open-source, sviluppata dalla Zope Corporation (http://www.zope.org), e fa da server web. Inizialmente era sviluppato come ambiente di gestione di contenuti (CMS) autonomo ma nel tempo non rispondeva più alle necessità dei suoi utenti. La Zope Corporation lo ha quindi sviluppato come progetto open-source. Il CMF fornisce agli sviluppatori gli strumenti necessari per creare complessi CMS: abilita il controllo di flusso, consente lo skinning ed offre molte altre funzionalità.
Il CMF è un ambiente per creare un sistema: in altre parole fornisce agli sviluppatori gli strumenti per costruire un prodotto piuttosto che semplicemente dare un sistema precostruito da usare immediatamente. Plone usa queste e molte altre funzionalità e le organizza per fornire all'utente un prodotto di alta qualità. Plone è uno strato software che si appoggia al CMF, che a sua volta è un'applicazione che gira in Zope. Comprendere il CMF è la chiave per capire Plone. Gran parte delle funzioni amministrative prevedono l'uso dell'interfaccia amministrativa di Zope (ZMI) e quindi lo sviluppo di Plone richiede la comprensione di Zope e dei suoi oggetti.
Questo libro non approfondisce Zope ma da istruzioni sul come raggiungere gli obiettivi in Plone. Leggendo questo libro si avranno sufficenti informazioni per personalizzare e modificare qualsiasi cosa si voglia in Plone. Per maggiori informazioni su Zope raccomandiamo il Manuale di Zope (The Zope Book). Originariamente pubblicato presso New Riders è stato successivamente messo online e viene aggiornato dai membri della comunità. È scaricabile liberamente dalla rete all'indirizzo http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition.
Sia Zope che il CMF sono tecnologie chiave su cui si basa Plone: senza di esse Plone non potrebbe esistere. Il gruppo di sviluppo di Plone deve grande riconoscenza a ciascun membro della Zope Corporation per aver intuito, creato ed offerto sia Zope che il CMF come software open-source. L'elenco delle persone che vorremmo lì ringraziare e quello della comunità CMF è molto lungo. Grazie quindi a ciascuno che è coinvolto in questo progetto.
Zope è scritto con Python, un potente linguaggio open-source di programmazione orientata agli oggetti paragonabile al Perl o a Tcl. Non è necessario conoscere il Python per usare Plone e neppure per tenerne l'amministrazione base ma, per personalizzare i prodotti e per gli script, Plone richiede un po' di Python.
Tommy Burnette, un direttore tecnico di Industrial Light Magic, dice quanto segue a proposito di Python (http://www.python.org/Quotes.html):
"Python gioca un ruolo chiave nella nostra linea produttiva. Senza di esso sarebbe stato molto difficile realizzare un progetto delle dimensioni di Star Wars: Episode II."
Se si vuol costruire qualcosa di sofisticato con Plone è utile studiare le basi del Python almeno per un paio di giorni. Questo non solo permette di personalizzare Plone in profondità ma famigliarizza con gli oggetti e con il modo con cui questi interagiscono con l'ambiente in Plone. Non è lo scopo di questo libro quello di insegnare Python e si assume che il lettore ne abbia almeno una conoscenza di base. La conoscenza delle basi Python è sufficiente per proseguire la lettura di questo libro e consente una agevole personalizzazione dell'installazione Plone.
Fortunatamente, Python è un linguaggio di programmazione facile da apprendere; in media, una giornata di studio è sufficiente ad un programmatore esperto per essere produttivo. Programmatori meno esperti avranno bisogno di un po' più di tempo. Installando Plone su Windows o Mac con l'apposito installer assicura l'inclusione della corretta versione di Python. Per scaricare Python separatamente, per qualsiasi sistema operativo o quasi, consultare http://www.python.org.
La maniera migliore per imparare Python è quella di provarlo usando l'interprete di serie. Nell'installazione su Windows è presente un link a Pythonwin, un ambiente integrato per lo sviluppo (IDE), direttamente nel menu di Avvio; seleziona Avvio - Programmi - Plone - Pythonwin (vedi Figura 1-2).
Figura 1-2. Il prompt di Python su Windows
In Linux e in Mac OS X inserendo il comando python si avvia l'interprete Python:
$ python Pyython 2.3.2 (#1, Oct 6 2003, 10:07:16) [GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Python è un linguaggio interpretato ed è quindi possibile inviare semplicemente linee di codice all'interprete mano a mano che le si scrivono piuttosto che dover compilare ed eseguire un intero script. Ciò rende l'interprete un posto di una utilità stupefacente per provare e controllare codice (testing e debugging). Nell'interprete ogni linea in attesa di un input è prefissata con >>>.
Per esempio il semplice programma Hello, World è come segue
>>> print "Hello, world!" Hello, world! >>>
Per uscire dall'interprete premere Ctrl+D (Premere il tasto D mentre si preme Ctrl) se si è in Linux mentre in Windows premere Ctrl+Z. (Questo servirà anche in seguito in una più avanzata interazione tra Zope e Plone). Per eseguire dei normali script Python è sufficente passarli all'interprete; per esempio dando il seguente script chiamato hello.py:
print "Hello, world!"
Puoi eseguirlo con il seguente comando:
$ python hello.py Hello, world!
Il sito ufficiale di Python http://www.python.org contiene dell'eccellente documentazione compreso un ottimo tutorial. Anche i seguenti libri forniscono una buona panoramica di Python:
- Dive Into Python : (Apress, 2004)
- Basato sul popolare tutorial di Mark Pilgrim, questo libro porta il lettore attraverso una rapida introduzione al linguaggio Python. È un gran bel libro che si rivolge in particolare ai programmatori esperti.
- Learning Python, Second Edition : (O'Reilly, 2003)
- Questo libro riguarda la versione 2.3 di Python e offre una buona panoramica su Python e su tutte le nuove funzionalità. È particolarmente adatto per programmatori relativamente nuovi.
- Practical Python : (Apress, August 2002)
- Questa introduzione molto pratica a Python approfondisce le varie funzionalità del linguaggio. Il lettore può mettere in pratica le nuove conoscenze immediatamente, seguendo passo passo la creazione di dieci interessanti progetti, da un bulletin board basato sul web a una applicazione con interfaccia grafica per la condivisione di file.
- Python Essential Reference, Second Edition : (Sams, 2001)
- Un libro di riferimento che contiene un'ottima presentazione di tutte le librerie chiave e di tutte le funzioni. È una scelta eccellente per un programmatore esperto.
Questo libro usa le seguenti convenzioni:
- Italico: I termini nuovi sono italicizzati. (L'appendice C contiene un glossario completo dove sono definiti tutti gli acronimi). Inoltre, sono italicizzati anche i link che appaiono nell'interfaccia utente.
- Grassetto: Se ci sono delle istruzioni nel testo che includono qualcosa che si deve inserire con la tastiera, queste parole sono in grassetto.
- Font fisso: Un font a spaziatura fissa indica nomi di file, indirizzi di cartelle (path), codice, variabili e Uniform Resource Locators (URL).
Questo libro contiene molte immagini (screen shot) di Zope, Python e Plone. Siccome Plone è un prodotto in rapidissima evoluzione questi screen shot possono variare leggermente dalla versione del software che si sta usando; sono modifiche di poca importanza e non interferiscono con la comprensibilità del sistema.
Per questo libro sono state usate le seguenti versioni del software ma sebbene scritto con queste in mente, tutto il software dovrebbe funzionare su queste e sulle successive versioni per un po' di tempo a venire.
La più recente versione di Plone, al momento della scrittura di questo libro, è la Plone 2.0. È la seconda versione (major release) del software ed include molte nuove funzionalità rispetto alla versione 1.0, incluso la gestione dei gruppi di utenti, una nuova interfaccia ed una migliore distribuzione di Zope. È decisamente consigliato di iniziare i nuovi progetti con la 2.0 piuttosto che usare le precedenti versioni.
La versione 2.0 di Plone dipende dai seguenti software: Zope 2.7, CMF 1.4.2, e Python 2.3.3. Tutti gli esempi di codice di questo libro sono stati studiati per non dipendere specificamente da queste versioni o da un particolare sistema operativo. Comunque ci possono essere delle situazioni in cui non è vero, ci scusiamo per eventuali inconvenienti.
In origine è stato un gruppo di utenti di Plone, smaliziati produttori di documentazione di qualità, a lanciare l'idea di questo libro. La prima versione è stata rilasciata sul sito di Plone come progetto di documentazione open source. Tutti i contenuti aggiunti al sito Plone seguono la licenza di libera pubblicazione.
La crescita di interesse attorno a Plone ha creato le condizioni per un libro commerciale e quindi nell'estate del 2003 abbiamo iniziato questo libro. Sono stati riutilizzati alcuni materiali del vecchio libro con il permesso dei proprietari originali. Con le modifiche a Plone 2 sono stati inseriti molti nuovi materiali. Questo libro è ora pubblicato con la Creative Commons license che consente il suo riuso. Non è comunque consentito il riuso commerciale. Per maggiori informazioni vedere la licenza online all'indirizzo http://creativecommons.org/licenses/by-nc-sa/1.0/.
Andy McKay: The Definitive Guide to Plone. Apress 2004
It was last updated by lallo on 2005-04-09 07:08 from the cvs source using
svn export http://docit.bice.dyndns.org/Plone/PloneBook2/it LibroPlone.

