Nel nostro ampio discorso sui portali in Java, proseguiamo il discorso del mese scorso, affrontando altre funzionalità di Liferay, soffermandoci su quelle dedicate alla gestione dei contenuti. In tal senso, vedremo come il CMS di Liferay consenta una gestione semplice ed efficace proprio dei contenuti.
Introduzione
Nel precedente articolo abbiamo iniziato a illustrare Liferay dal punto di vista dell’utilizzatore: amministratore, redattore o pubblicatore che sia. Abbiamo iniziato a prendere confidenza con l’interfaccia del prodotto e con gli strumenti di back-office che consentono con grande facilità di costruire un moderno portale di livello enterprise. In questo articolo facciamo una panoramica sulle funzionalità messe a disposizione per la gestione dei contenuti, il vero valore aggiunto di un sito web, quello che lo rende interessante e attraente. Liferay ha numerose funzionalità tipiche dei sistemi di gestione di contenuti, meglio noti come CMS (Content Management System), per la creazione, memorizzazione e gestione di contenuti di qualsiasi tipo come ad esempio immagini, testo e documenti. Come già detto nei precedenti articoli, è sempre bene ricordare che Liferay non è un semplice CMS ma una vera e propria piattaforma di sviluppo; ciò detto, Liferay ha tutto ciò che serve per una gestione completa, semplice ed efficiente dei contenuti.
Gestione dei contenuti: articoli, strutture e modelli
Un articolo è il tipico contenuto presente in qualsiasi sito web. La funzionalità di Liferay che consente al redattore di creare un nuovo articolo è presente nel Control Panel e si chiama Web Content (figura 1).
Figura 1 – Il Web Content.
Accedendo alla funzionalità Web Content dal pannello di controllo, viene visualizzata la lista degli articoli presenti nel repository sui quali è possibile effettuare alcune operazioni quali modifica, copia, cancellazione, anteprima e assegnazione di permessi se si ha il ruolo che lo consente. Per inserire un nuovo articolo è sufficiente cliccare sul button Add Web Content. Al click sul button viene presentata l’interfaccia per la creazione di un nuovo articolo (figura 2).
Figura 2 – Creazione di un articolo.
Articolo
Per tutti gli articoli è possibile inserire una serie di informazioni comuni come ad esempio il nome che lo identificherà nel repository. È possibile inoltre nella sezione Schedule, presente nella parte destra della pagina, inserire informazioni relative alla data di pubblicazione dell’articolo, alla data di scadenza e alla eventuale data di revisione se desiderata. In basso nella pagina (figura 3) sono presenti i campi per inserire un abstract dell’articolo, utile quando si vogliono visualizzare gli articoli sotto forma di lista di abstract, e per definirne la categoria associando all’articolo un tipo tra quelli definiti o marcandolo con un tag.
Figura 3 – Creazione di un articolo.
A parte questi dati comuni a qualsiasi tipologia di articolo, vi è poi il vero e proprio contenuto informativo che può essere semplicemente un testo, oppure un testo arricchito di foto o di contenuto multimediale.
Structures e Templates
I campi che vengono presentati al redattore per l’inserimento dell’articolo, a parte quelli comuni già visti, dipendono dalla Struttura associata all’articolo stesso. La Struttura determina i campi che è possibile inserire per il singolo articolo. Se non si effettua alcuna selezione viene mostrata la struttura default che prevede un solo campo denominato content costituito da un’area di testo HTML all’interno della quale con l’editor si può inserire il contenuto dell’articolo. Ovviamente è possibile creare quante strutture si vogliono per definire differenti tipologie di articolo in base alle proprie esigenze.
Una volta definita una struttura va anche determinato come questa sarà resa dal punto di vista grafico. Per questo è necessario definire un Template, ovvero del codice che può essere scritto in diversi linguaggi, ad esempio in XSL o Velocity per citarne due, che determina la modalità con la quale la struttura viene presentata all’utente. È evidente che una medesima struttura può essere rappresentata in base a template differenti se è necessario avere rappresentazioni grafiche differenti.
Strutture e Template sono editabili a partire dalla pagina del Web Content (figura 1) cliccando rispettivamente sui link Structures e Templates.
In Figura4 è raffigurata la lista delle strutture presenti nel repository ed è riportato l’esempio di una nuova struttura creata ad hoc per una tipologia di articolo costituita da un titolo e da un testo.
Figura 4 – Lista delle Strutture.
Selezionando la nuova struttura si apre la pagina per la sua definizione. Liferay mette a disposizione una semplice interfaccia grafica (figura 5) che consente di aggiungere con pochi click nuovi elementi di diversi tipi ad una struttura. La struttura può anche essere definita scrivendo nell’editor delle strutture il codice XML che la definisce. A titolo di esempio riportiamo di seguito il codice XML della nostra struttura di articolo con titolo e testo:
='false'>
='false'>
Come vediamo la struttura è composta da due elementi: uno di tipo testo denominato titolo e uno di tipo text_area denominato testo. Se associamo ad un articolo in fase di editazione questa struttura vedremo che il form di inserimento dell’articolo cambia presentando i due campi previsti dalla struttura stessa.
Figura 5 – Definizione di una Struttura.
Ad una Struttura, come dicevamo, deve essere associato un Template per specificare come la struttura sarà presentata graficamente all’utente. Analogamente a quanto visto in precedenza cliccando su Templates appare la lista dei template, o modelli, disponibili (figura 6).
Figura 6 – Definire un Template.
Nel nostro caso abbiamo ipotizzato di aver definito un template per la rappresentazione della struttura di articolo con titolo. In figura 7 è raffigurata la pagina di inserimento della definizione del nostro template. In questo caso abbiamo creato il template in linguaggio XSL scrivendolo direttamente nell’editor attivabile nella pagina e salvandolo.
Figura 7 – Una nuovo Template.
Il codice creato
Non ci soffermiamo sui dettagli del codice XSL creato, che riportiamo di seguito, in quanto ciò esula dallo scopo dell’articolo. È importante però ricordare che è questo codice XSL a determinare lo stile grafico di rappresentazione della struttura dell’articolo nella pagina web in cui esso sarà pubblicato.
="root/dynamic-element[@name
='titolo']/dynamic-content"/>
disable-output-escaping="yes"/>
Ciò che è importante sottolineare quindi è che con le strutture e i template è possibile personalizzare a piacimento le tipologie di articolo e la loro rappresentazione grafica in base alla proprie esigenze mantenendo sempre separati i due livelli, contenuto e sua rappresentazione, secondo un modello corretto di sviluppo del portale.
I concetti in sintesi
A questo punto, avendo chiari i concetti di articolo, struttura e modello, creiamo un articolo di nome Contenuto1 e, cliccando sul button Publish in fondo alla pagina (figura 3) lo salviamo nel repository. Come si vede in Figura 1 l’articolo creato compare nella lista di articoli presenti nel repository. Una volta effettuato il salvataggio dell’articolo, questo viene memorizzato nel database di Liferay ma al momento non è visibile in alcuna pagina del sito. Vedremo in seguito come provvedere alla pubblicazione dell’articolo appena creato.
Rispetto a quanto descritto c’è da sottolineare che Liferay consente di utilizzare ed eventualmente definire dei workflow di editazione, approvazione e pubblicazione degli articoli che assegnano a ruoli diversi i diversi compiti previsti nel ciclo di vita dell’articolo. Noi abbiamo effettuato per semplicità queste operazioni come amministratore saltando in un colpo solo tutti i passi, ma è possibile, se lo si desidera, avere utenti che possono solo editare e salvare un articolo, utenti che sono incaricati dell’approvazione ed utenti che si occupano invece della sola pubblicazione.
Gestione dei documenti e delle immagini
Un’altra tipologia fondamentale di contenuto è quella dei documenti. Liferay ha una sua funzionalità denominata Document Library che è una sorta di documentale interno già pronto per l’uso. Utilizzando la Document Library è possibile creare strutture di cartelle assolutamente analoghe a quelle di un file system all’interno delle quali è possibile effettuare l’upload di documenti. In figura 8 vi è la pagina della Document Library in cui è stata definita una cartella denominata Cartella di Esempio contenente un documento PDF.
Figura 8 – La Document Library.
Tutti i documenti che devono essere pubblicati sul proprio sito devono essere inseriti nella Document Library che costituisce quindi il punto unico per la memorizzazione dei documenti. L’utilizzo della funzionalità è assolutamente banale in quanto si tratta di creare cartelle e fare l’upload di documenti per cui non ci soffermeremo oltre sui dettagli ma rimandiamo per approfondimenti ai riferimenti bibliografici [1].
La corrispondente funzionalità per le immagini è la Image Gallery che consente di memorizzare nel repository del portale le immagini che appariranno nelle pagine del sito. Il funzionamento è assolutamente analogo a quello della Document Library; si tratta quindi di creare la propria struttura di cartelle in cui inserire le immagini che si intende pubblicare sul proprio sito. In figura 9 è raffigurata la Image Gallery con una cartella Immagini del sito in cui è stata inserita una immagine da pubblicare nel portale.
Figura 9 – La Image Gallery.
La pubblicazione dei contenuti
Abbiamo visto brevemente le funzionalità di Liferay che consentono di gestire i contenuti più comuni di un sito web: articoli, documenti e immagini. Non ci resta ora che prendere il nostro articolo e pubblicarlo in una pagina del sito.
Supponiamo di voler pubblicare il nostro articolo nella pagina News che avevamo creato in precedenza nel primo articolo della serie. La portlet che consente la pubblicazione di un singolo articolo è la Web Content Display. Selezioniamola dal menù Add e trasciniamola al centro della nostra pagina (figura 10).
Figura 10 – La Web Content Display.
All’interno dello spazio dedicato alla portlet Web Content Display appare un messaggio che ci chiede di selezionare l’articolo che vogliamo visualizzare. A questo punto clicchiamo sull’icona a forma di ingranaggio e apriamo la pagina di configurazione della portlet (figura 11).
Figura 11 – La Web Content Display: scelta dell’articolo.
Qui selezioniamo, tra quelli della lista, l’articolo desiderato e clicchiamo sul tasto Save. Il gioco è fatto: l’articolo così selezionato appare nella pagina web ed è quindi pubblicato sul nostro sito.
Asset
Esiste anche una modalità che consente la pubblicazione di un articolo senza dover ogni volta effettuare le operazioni descritte. Si tratta in questo caso di utilizzare la portlet Asset Publisher. Come dice il suo nome, a differenza della Web Content Display che è pensata per visualizzare un singolo articolo, la Asset Publisher permette di pubblicare un qualsiasi tipo di asset, dove per asset si intende un qualsiasi elemento pubblicabile di Liferay (blog, messaggi di una message board, wiki, articoli, immagini, documenti etc.), in maniera automatica impostando dei criteri che consentono di selezionare gli asset da pubblicare. Ad esempio si può scegliere di pubblicare in una pagina gli asset di un determinato tipo, taggati con un particolare insieme di tag, oppure optare per criteri differenti in base al tipo dell’asset. In ogni caso, a prescindere dal criterio scelto, mediante la Asset Publisher opportunamente configurata, è possibile rendere dinamica e automatica la fase di pubblicazione dei contenuti, ottenendo una procedura molto più veloce e quindi efficiente.
Nel nostro caso possiamo ad esempio trascinare nella pagina la Asset Publisher e vedere come senza alcun filtro impostato questa mostri tutti i contenuti presenti nella nostra community che in questo caso sono due articoli, una immagine e un documento (figura 12).
Figura 12 – La Asset Publisher.
Aprendo la configurazione della portlet ci si può rendere conto dei numerosi criteri di filtraggio che è possibile impostare e dei metadati che in automatico è possibile pubblicare. La Asset Publisher può essere utilizzata anche per pubblicare le immagini della Image Gallery o i documenti della Document Library.
Per la Document Library esiste anche una specifica portlet, la Document Library Display con cui è possibile pubblicare nella pagina tutta la struttura dei documenti presenti nel repository oppure solo una porzione di questa a partire da una determinata cartella.
La cosa importante è che pubblicando sempre in questo modo i documenti, la pubblicazione degli stessi sarà uniforme e standardizzata in tutto il sito. In figura 13 è presentata la pagina del sito nella quale nella colonna a sinistra è stata inserita la visualizzazione della cartella della Document Library creata in precedenza-
Figura 13 – La Document Library Display.
Conclusioni
In questo articolo abbiamo fatto una breve carrellata delle funzionalità di CMS di Liferay. Gli articoli della serie non hanno la pretesa di costituire un manuale utente di Liferay per cui se si vogliono avere tutti i dettagli su ogni singola funzionalità è bene consultare la documentazione sul sito o i testi in bibliografia. Lo scopo è piuttosto mostrare al lettore le funzionalità esistenti facendo intuire la potenzialità dello strumento, la ricchezza e completezza delle sue funzioni e la grande semplicità d’uso. Tutte le operazioni vengono svolte da un unico punto, il Control Panel, con una interfaccia grafica uniforme e semplice da usare. Con pochi semplici passi è possibile creare le pagine del proprio sito senza scrivere una riga di codice e senza avere bisogno di approfondite conoscenze informatiche. Questo rende Liferay uno strumento potente ma alla portata di utenti di qualsiasi livello che vogliano costruirsi un proprio sito web, dal più piccolo a quello di una grande organizzazione.
Riferimenti
[1] Jonas X. Yuan, “Liferay Portal 6 Enterprise Intranets”, Packt Publishing, maggio 2010
[2] Liferay 6 Official Documentation
http://www.liferay.com/documentation/liferay-portal/6.0/getting-started