a cura del dott. Ventre Antonello Introduzione al CMS a cura del dott. Ventre Antonello
Pagine statiche e dinamiche Html Non cambiano nel tempo Ogni modifica richiede una riscrittura di codice Pagine Dinamiche ASP, Java, PHP, etc… Subiscono cambiamenti nel tempo Non richiede una riscrittura di codice La realizzazione di una soluzione basata su standard html, non pone particolari problemi, l’architettura è studiata apposta per avere un elevatissimo livello di flessibilità. Le cose si complicano quando il sito standard html non basta più. L’analisi, la realizzazione di codice ASP o PHP, il test, la formazione nel caso il cliente voglia provvedere in economia ad usare strumenti di manutenzione ecc. comportano tempi e costi notevoli. Poi c’è la manutenzione. Le aziende o gli enti pubblici, quando hanno loro risorse interne (un ced, un webmaster ecc.) possono provvedere in economia, le altre strutture, necessariamente, devono operare in outsourcing. Nel primo caso, la tempestività della pubblicazione delle informazioni è garantita dall’interno della struttura, che però fa generalmente capo ad una o poche persone che hanno il know how necessario e, in ogni caso, difficilmente (se non in strutture più grandi) riescono ad essere tecnologicamente sempre all’avanguardia. Nel secondo caso, la struttura che si occupa della manutenzione e del publishing deve garantire tempestività e correttezza di aggiornamento
Sistemi di CMS WEB Content Management System (CMS) Sistema per la gestione dinamica di contenuti informativi (articoli, rubriche, notizie, faq, etc) da pubblicare su siti e portali web senza richiedere l'intervento di personale con particolari competenze informatiche, offrendo ai gestori strumenti semplici e veloci per l'inserimento e la modifica dei contenuti.
Sistemi di CMS WEB Content Management System (CMS) Contenuti editoriali, grafica e impaginazione svincolati modifiche apportate immediatamente disponibili Nel caso specifico di pubblicazioni web, l'autore è completamente svincolato da qualsiasi problematica relativa alla formattazione dei contenuti secondo lo stile grafico previsto dal sito
Perché un CMS? Mantiene separato il codice di programmazione, la grafica e i contenuti questo significa che su ognuno di questi tre elementi possono intervenire persone diverse con competenze specifiche il grafico web realizza l’interfaccia grafica del sito il programmatore informatico configura e personalizza la struttura del sistema integrando il materiale grafico e realizzando eventuali template l’azienda o l’ente committente provvede a gestire i contenuti
Perché un CMS? Con un CMS viene tenuta distinta l’attività di sviluppo del sito dall’attività di mantenimento del sito Prima fase : a cura della società informatica che realizza il progetto (il contenitore con tutti gli automatismi necessari). Seconda fase : a cura dell’organizzazione committente che inserisce e aggiorna le informazioni del sito (il contenuto).
Perché un CMS? Valorizza la natura comunicativa del sito Utilizza i template grafici Consente di aggiornare il sito via web Utilizza gli editor visuali Crea in automatico la navigazione e la mappa del sito Gestisce le fasi del lavoro (workflow) Gestisce gli utenti 1 - alcuni pensano che con un CMS vengano realizzati siti graficamente poco accattivanti e che la comunicazione perda di efficacia. E’ vero il contrario. Un CMS valorizza la comunicazione e l’interazione fra gli utenti e l’azienda o l’ente gestore del sito. Alle pagine di un CMS può essere integrato qualsiasi elemento grafico o multimediale senza vincoli di formati (oggetti flash, file audio e video, 3D). Un CMS inoltre sfrutta i fogli di stile (CSS) per tenere separata la visualizzazione della pagina dalla struttura dei contenuti garantendo un aspetto omogeneo a tutte le pagine del sito. Un CMS infine consente di modificare o aggiornare la grafica con estrema facilità. Se ad esempio si rendesse necessario cambiare il logo o il marchio pubblicato sul sito questo verrebbe realizzato con la modifica ad un solo file e verrebbe attuato su tutte le pagine in modo automatico ed immediato. 2 - nei CMS è possibile definire dei modelli grafici di pagina web che possono poi essere richiamati al momento della creazione di nuovi contenuti. Questo permette di avere una varietà grafica all’interno del sito scegliendo, fra alcuni template predefiniti, quello che meglio si adatta ai contenuti da pubblicare. 3 - l’aggiornamento delle informazioni contenute nel sito viene effettuato tramite browser web. Qualsiasi utente autorizzato può contribuire, in collegamento via Internet, alla definizione dei contenuti. Questo consente a persone dislocate in sedi diverse, anche lontane fra di loro, di partecipare all’aggiornamento del sito. 4 - nei CMS sono integrati degli editor visuali che consentono di scrivere i contenuti della pagina o della sezione di pagina con le funzionalità standard di un semplice word processor: inserimento di testi, modifica del font e della dimensione del carattere, inserimento di elenchi puntati, inserimento di foto o immagini, inserimento di tabelle, scelta del colore dello sfondo, scelta della posizione di testi e foto. Anche personale senza conoscenze di HTML può pertanto scrivere sul sito. 5 - il CMS gestisce la navigazione del sito. Quando viene inserita una nuova sezione o una nuova pagina non è necessario preoccuparsi di inserirla nella navigazione o di linkarla dalla altre pagine perché questo avviene in modo automatico. Molti CMS inoltre generano anche la mappa del sito. Ogni nuova pagina inserita sarà automaticamente evidenziata nell’albero della mappa. 6 - nei CMS sono integrati dei motori di workflow che consentono la definizione delle varie fasi di lavoro. Così, ad esempio si potrà decidere che un operatore può inserire una nuova notizia, ma che questa non viene pubblicata sul sito fintanto che il responsabile non dà la sua autorizzazione. Il tutto via web con eventuali segnalazioni tramite e-mail. 7 - un CMS consente di gestire i diversi ruoli degli utenti coinvolti nel mantenimento del sito attribuendo a ciascuno un permesso specifico per intervenire in una particolare sezione (chi fa cosa e dove). La funzionalità può essere estesa per rendere visibili determinate sezioni del sito solo a particolari utenti (ad esempio partner, rivenditori, agenti, ecc.).
Perché un CMS? Ha il motore di ricerca integrato Gestisce il sito in lingue diverse Dispone di moduli e componenti aggiuntivi Integra e supporta funzionalità evolute È scalabile Aiuta a creare e mantenere siti accessibili Supporta il lavoro collaborativo 1 - nei CMS è disponibile un motore di ricerca integrato che indicizza i contenuti del sito in modo automatico e consente di fare delle ricerche avanzate sui testi delle pagine 2 - la gestione multilingua del sito, solitamente laboriosa e complessa, viene effettuata in modo semplice utilizzando un CMS 3 - quasi tutti i CMS dispongono di moduli aggiuntivi che possono essere facilmente integrati al sistema base come ad esempio forum, newsletter, sondaggio, ecc. 4 - ai CMS sono interfacciabili database esterni, cataloghi di prodotti, sistemi e-commerce e in generale funzionalità web evolute 5 - i CMS consentono di realizzare inizialmente dei siti semplici che possono crescere ed evolversi nel tempo integrando nuove funzionalità a seconda delle mutate esigenze 6 - i CMS più moderni soddisfano i requisiti di realizzazione di pagine web secondo le direttive W3C guidando i gestori dei contenuti nell’inserimento delle corrette informazioni. Dispongono inoltre di funzionalità native quali le “briciole di pane”, la pulsantiera per la modifica della dimensione del carattere, ecc. che aiutano i navigatori a muoversi all’interno del sito. 7 - i CMS sono la base per la realizzazione di sistemi collaborativi come le Intranet.
Elementi di un CMS Il Content Manager Contenuto Metadati La pubblicazione Il target Il Content Manager Il Content Manager si occupa di scrivere, sviluppare, gestire e pubblicare i contenuti di un sito. Se la produzione di contenuti informativi originali è alta, si costituisce un team di lavoro di tipo redazionale al cui vertice generalmente si trova un copy writer, un giornalista o comunque un professionista della comunicazione professionale Contenuto Il contenuto si può definire come l’informazione in un formato utilizzabile presentata o pubblicata per un certo scopo, e che viene posto in un contesto specifico dalla presentazione Metadati Assieme ai contenuti, in un CMS vengono gestiti i metadati, cioè i dati che descrivono il contenuto. I metadata sono “etichette descrittive” ovvero dati che descrivono altri dati, e sono spesso più facili da trattare dei dati stessi, questo perché il loro formato viene deciso dal catalogatore. Amministrativi gestionali MAG (usati per la gestione e amministrazione delle risorse informative) Descrittivi (dal MARC al Dublin Core) Conservazione (compresa migrazione) Tecnici (comportamento dei metadati e funzionamento dei sistemi) Utilizzo (relativi al livello e al tipo di utilizzo dell’utente) La pubblicazione Il formato di pubblicazione si può suddividere in due parti. Una è la codifica dell’informazione e l’altra è la riproduzione visiva dell’informazione Il target Sempre più siti, soprattutto quelli della pubblica amministrazione, offrono percorsi per target.
Architettura di un CMS Acquisizione e memorizzazione La gestione Creazione Acquisizione Conversione Aggregazione La gestione Memorizzazione Selezione Sicurezza/amministrazione Work Flow La pubblicazione Approval Routes Un sistema di gestione del contenuto può essere diviso in alcune aree funzionali: l’acquisizione del contenuto, la memorizzazione del contenuto all’interno del sistema, la gestione del flusso di lavoro ed infine la pubblicazione. -Acquisizione e me morizzazione Creazione del contenuto: il contenuto può essere creato ex-novo direttamente nel sistema di gestione, possibilmente utilizzando sistemi che permettano agli autori di inserire comodamente e correttamente il contenuto ed i metadati relativi all’interno del sistema. Acquisizione il contenuto: In questo caso il contenuto viene prelevato automaticamente da una fonte esterna, come ad esempio una base di dati e trasformato in componenti utilizzabili in un CMS. Conversione: il contenuto creato od acquisito viene convertito, eliminando eventuali parti inutili e modificandone la struttura per poter essere meglio gestito successivamente. Aggregazione: il contenuto preesistente viene suddiviso, modificato ed adattato in modo da essere più facilmente gestibile con il sistema di metadati in uso. -Gestione Memorizzaizone:Il contenuto può essere salvato in una o più basi di dati, oppure può essere salvato sul file system od avere soluzioni ibride Selezione:Una volta salvato, il contenuto deve essere reso disponibile per la pubblicazione e l’utilizzo: indicando in una richiesta i metadati adatti all’identificazione del contenuto il sistema deve restituire il contenuto che si può associare ad essi Sicurezza/amministrazione:L’accesso al contenuto deve essere controllato in maniera tale da impedire una modifica od una lettura indiscriminata nonché per poter sapere chi e quando ha effettuato determinate operazioni nel sistema WorkFlow:Un Content Management System permette ad un utente abilitato di inserire o aggiornare i contenuti di un settore o di un’area del sito, attraverso la gestione di un sistema guidato e personalizzato di controlli ed approvazioni (workflow) da parte di figure diverse: L'amministratore, che sceglie gli autori e gli editori, assegnando loro le aree su cui lavorare. L'autore, che inserisce i contenuti nelle aree di propria competenza. L'editore, che approva, modifica, rifiuta e pubblica le pagine approvate Il workflow approvativo è un modo sicuro per assicurarsi che i contenuti siano adeguatamente sottoposti a controlli di revisione prima di essere pubblicati. Quando un autore decide di pubblicare un contenuto questo può essere inviato ad uno o più “reviewers” prima che venga pubblicato, ognuno di questi soggetti definito più correttamente “approvatore” ha la facoltà di approvare o rifiutare la pubblicazione del contenuto. I CMS consentono generalmente 2 tipi di approvazione: seriale e parallela -Pubblicazione Il sistema di pubblicazione recupera le parti di contenuto e le altre risorse necessarie per poter creare automaticamente le pubblicazioni, ad esempio pagine HTML, oppure documenti stampati su carta. La parte più importante di un sistema di pubblicazione è la gestione dei template (o modelli), ovvero documenti che indicano come creare la pubblicazione a partire dal contenuto disponibile nel sistema di gestione. Questi template sono dei semplici programmi che implementano la logica necessaria a costruire le pubblicazioni e includono tre categorie di oggetti. La prima categoria è quella degli elementi statici cioè testi, grafica e contenuti multimediali che vengono inseriti direttamente nella pubblicazione senza altre modifiche. La seconda categoria è quella delle chiamate ai servizi di pubblicazione, che vanno a recuperare ed a rimpaginare parti di contenuto prelevate dal sistema di gestione e si occupano di personalizzazioni, conversioni di contenuto e di costruire indici od alberi di navigazione. La terza categoria è quella delle chiamate esterne, con cui è possibile richiamare automaticamente funzioni presenti su altri sistemi informatici esterni per la post produzione o l’inserimento in altri sistemi aziendali.
Zope
Zope Zope è il leader di mercato degli Application Server Open Source. Mette a disposizione una architettura ad oggetti che permette di costruire portali Web potenti, modulari, dinamici ed in grado di offrire ottime prestazioni nella navigazione del sito.
Zope Strumento di sviluppo e di Web publishing dinamico scritto per lo più in Python, che incorpora un server Web e un database object oriented. Separa il livello dei dati dai livelli della logica Livello dati, archiviati in genere nel proprio database o in database relazionali esterni. Livelli della logica, scritta con metodi Python, e della presentazione, realizzata con un Html arricchito denominato Dtml (o recentemente con il linguaggio di templateTAL). Amministrazione da browser Web
Zope Principali caratteristiche di ZOPE: possibilità di utilizzo su piattaforme diverse: Windows, Linux, Solaris, Hpux organizzazione in gerarchie di oggetti, con elementi nativi di tipo folder, documents, images, mailhost, etc sofisticata gestione interna delle problematiche di sicurezza operatività completa attraverso un qualsiasi browser linguaggi DHTML e TAL per la costruzione dinamica delle pagine Web linguaggio Python per la implementazione delle classi di base dell'applicazione
Zope Principali caratteristiche di ZOPE: Supporto di XML (anche per chiamate remote RPC) Interfaccia GUI ed estetica omogenea Database object oriented interno (ZODB) Connettività con i principali database relazionali Web server interno e supporto dei principali WebServer presenti sul mercato Supporto nativo protocollo di SSL (Secure Sockets Layer) Alte prestazioni in configurazione base e disponibilità del modulo Zope Enterprise Option per siti ad altissima intensità di traffico.
Zope Caratteristiche tecniche Linguaggio di sviluppo: C (core), Python (Applicazioni) Database supportati: ZODB (Database OO nativo interno), Database relazionali esterni (mysql, postgres, sybase etc...) Sistemi operativi supportati: Tutti i sistemi Unix, Windows Web Server: ZServer (Web Server nativo interno), Apache 1.3.x via PCGI o FastCGI Requisiti client: browser internet Requisiti server: Apache (opzionale) con pcgi-wrapper attivo oppure con modulo FastCGI abilitato, MySQL o altro database esterno prescelto
PLONE
PLONE Plone è un prodotto di Zope. E’ un Content Management System Open Source completo. E' ideale come server intranet, come sistema di publishing e come strumento di groupware per collaborazioni remote. E' un CMS versatile che può essere utilizzato in diverse situazioni permettendo la creazione veloce ed organica di siti e portali dinamici ed evoluti.
PLONE Possiede in modo nativo un motore di workflow, la gestione della sicurezza e degli utenti, una serie di oggetti per la gestione di contenuti già configurati (notizie, documenti, eventi, ecc.) e il supporto multilingua. Plone inoltre segue attentamente gli standard di usabilità e accessibilità. Le pagine di Plone sono compatibili con il rating W3C AA in materia di accessibilità e fanno uso di standard web come XHTML e CSS.
PLONE Principali caratteristiche di Plone : editing remoto, elevata personalizzazione, funzionalità per la collaborazione, facilità di configurazione e amministrazione, gestione utenti, workflow, riutilizzo del codice, oggetti modulari, indicizzazione contenuti e funzioni di ricerca, supporto database relazionali esterni.
PLONE Caratteristiche tecniche Linguaggio di sviluppo: Python Database supportati: Database relazionali (mysql, postgres, sybase etc...) Sistemi operativi supportati: Linux, Windows, Mac OS X, Solaris e BSD Web Server: Zope, Apache 1.3.x via PCGI o FastCGI Requisiti client: browser internet Requisiti server: Zope
20. Autenticazione e autorizzazione L'account degli utenti viene gestito tramite particolari folders, chiamati User Folders Quando viene richiesto l'accesso ad una risorsa protetta il sistema chiede all'utente di autenticarsi. Una volta autenticato, il processo di assegnazione dei permessi è suddiviso in 2 livelli intermedi: - ruoli (roles) - permessi (permissions) I 2 livelli sono collegati dalle politiche di sicurezza (security policies), che definiscono chi può fare cosa. © ecnoteca srl 2004
21. Gestione della sicurezza La gestione della sicurezza di Zope si basa su tre concetti fondamentali: ruoli permessi politiche di sicurezza © Tecnoteca srl 2004
34. Combinazione ZOPE/PLONE Orientamento agli oggetti Database Ricerca integrata Multipiattaforma Copie personalizzate degli script Workflow Scalabilità Efficace ed elegante ambiente per la navigazione Facilità nella creazione di documenti strutturati anche complessi © Tecnoteca srl 2004
35. Installazione di PLONE PLONE è liberamente scaricabile da http://plone.org/downloads/ Nel caso di installazione su Windows possiamo evidenziare 2 metodi: codice eseguibile codice sorgente Lanciando l’installazione da eseguibile, verranno installate, fra le altre, le seguenti componenti base: Zope CMF Python © Tecnoteca srl 2004
37. La pagina iniziale Main content Left_slots Right_slots Footer Ridimensionamento testo Logo Barra di ricerca Portal tabs breadcrumbs Stato e preferenze Main content Left_slots Right_slots Footer © Tecnoteca srl 2004
Le classi di utenti che possono accedere al sito sono le seguenti: 38. Accesso al sito Le classi di utenti che possono accedere al sito sono le seguenti: Anonymous Utente Registrato (Member) Per poter modificare i contenuti, un utente deve registrarsi. © Tecnoteca srl 2004
40. Il controllo del Workflow Ogni oggetto può assumere diversi stati durante il suo ciclo di vita. Lo stato di un oggetto determina se sia accessibile o meno dai vari tipi di utente definiti da Plone. Il Workflow di Plone include 4 stati di default Visibile In Revisione Pubblicato Privato © Tecnoteca srl 2004
La sicurezza viene tenuta quindi sotto controllo in ogni momento 41. Ruoli degli utenti Plone usa i ruoli per definire cosa possono fare e vedere i diversi utenti. La sicurezza viene tenuta quindi sotto controllo in ogni momento I ruoli definiti in una installazione di default di Plone includono: Anonimo (Anonymous) Collaboratore (Member) Possessore (Owner) Revisore (Reviewer) Manager © Tecnoteca srl 2004
Le principali tabs (azioni) sono: 42. Le “content tabs” Le content tabs sono metodi/azioni definite nel contesto in cui ci troviamo. Ogni oggetto ha le proprie tabs di default, altre se ne possono aggiungere. Alcune sono “hidden”, ma comunque accessibili in funzione dei privilegi dell’utente. Le principali tabs (azioni) sono: contenuti (contents) visualizza (view) modifica (edit) visualizza contenuti (folder listing) proprietà (properties) stato (state) © Tecnoteca srl 2004
43. Cenni alla barra di stato La barra di stato è composta da: utente (user) cartella personale (my folder) preferenze personali (my preferences) ripristina (undo) esci (exit) configurazione di Plone (Plone setup) (accessibile solo al Manager) © Tecnoteca srl 2004
69. GESTIONE DEGLI UTENTI La gestione degli utenti di Plone viene attuata tramite i seguenti Folders e Tools: Folder Member Folder acl_users Tool portal_memberdata Tool portal_membership Ogni utente iscritto presenta in Members un folder con id uguale al suo username. Tale folder è la sua home. acl_users è gestito dal prodotto “Group User Folder” (GRUF). Qui possono venire assegnati ruoli e configurati gruppi degli utenti iscritti. © Tecnoteca srl 2004
70. GESTIONE DEGLI UTENTI: Note sul folder “Members” Di default qualunque utente può accedere al sito e diventare un Member. Si può voler eliminare questa modalità. Questo può essere fatto andando in “Security” sulla ZMI della home del nostro portale e modificare “add portal members” deselezionando l'acquire e selezionandolo solo per il Manager. Come risultato si ottiene che ad un Anonymous non apparirà più l'opzione di join. © Tecnoteca srl 2004
116. Plone e l’accessibilità Plone aderisce agli standard web del Consorzio W3C Rispetta la sintassi XHTML Si basa su un CSS valido E’ conforme alle Linee Guida WCAG 1.0 sviluppate dal Consorzio W3C/WAI Presenta un layout senza tabelle Utilizza fogli di stile per Stampa, Presentazione e Portatili (cellulari e palm) E’ supportato da tutti i browser © Tecnoteca srl 2004
117. Documentazione e risorse disponibili pag.1 www.zope.org il sito della comunità internazionale di ZOPE www.zope.it il sito della comunità italiana di ZOPE zdp.zope.org/ Zope Documentation Project www.zopemag.com una autorevole newsletter su ZOPE www.zope.org/Resources/ZopePowered elenco di siti realizzati in Zope www.python.org Python © Tecnoteca srl 2004
118. Documentazione e risorse disponibili pag.2 www.plone.org il sito della comunità internazionale di Plone http://zope.it/Members/lallo/plone/pbithtml/index_html Plone Book in versione italiana http://plone.org/about/sites elenco di siti realizzati in Plone http://sourceforge.net/projects/plone il progetto Plone presso SourceForge(tm) © Tecnoteca srl 2004