Mokabyte

Dal 1996, architetture, metodologie, sviluppo software

  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti

Nel numero:

159 febbraio
, anno 2011

Liferay Portal Overview

II parte: Portlet Journal Content e upgrade di un tema a Liferay 6

Avatar
Federica Fabbri

Dopo la laurea in Scienze Economiche all‘Università di Bologna sono entrata a contatto con il mondo dei sistemi informativi grazie a un tirocinio formativo presso il Cineca di Bologna e varie attività di collaborazione con il Dipartimento MIUR (Ministero dell‘Istruzione, dell‘Università e della Ricerca). Dal 1999 mi occupo della realizzazione di siti Internet e dell‘integrazione grafica di applicazioni web complesse. Sono iscritta come Consulente Tecnico di Ufficio presso il Tribunale di Bologna per cui svolgo incarichi in materia di diritto commerciale e regolamentazione Internet. Attualmente lavoro per D‘vel Snc.

Avatar
Chiara Mambretti

Chiara Mambretti è un‘anima inquieta dalla passione sfrenata per il cioccolato. Inizia a giocare con le matite e sogna di passare la sua vita disegnando. Le capita tra le mani la rivista AD, si laurea in disegno industriale e compra lo spremiagrumi di Philippe Starck. Il suo indiscutibile gusto grafico la spinge fin sotto le mura di Urbino dove si specializza in disegno grafico. Prende una sbandata per l‘illustrazione, lavora per l‘editoria scolastica e di nascosto inizia a illustrare storie per bambini. Si fidanza con un programmatore, sente parlare spesso di HTML, CSS, JavaScript e si ritrova a progettare siti web presso D‘vel s.n.c. L‘anima inquieta troverà mai pace?

MokaByte

Liferay Portal Overview

II parte: Portlet Journal Content e upgrade di un tema a Liferay 6

Picture of Federica Fabbri – Chiara Mambretti

Federica Fabbri – Chiara Mambretti

  • Questo articolo parla di: Architetture dei sistemi, Frameworks & Tools, Programmazione & Linguaggi

Dopo aver presentato il processo di creazione di un tema grafico, entriamo nello specifico analizzando Portlet Journal Content (la portlet principale di Liferay) e gli step necessari all‘aggiornamento di un tema dalla versione 5.2.x alla versione 6.0.x.

Journal Content

Il Portlet Journal Content (Web Content Display) è uno strumento molto potente in quanto consente di inserire qualsiasi tipo di contenuto all’interno di una pagina (testi, immagini, oggetti in Flash, codice HTML).

Figura 1 – Web Content Display.

 

Si possono creare anche articoli molto complessi che necessitano di una struttura e di un modello ad hoc.

Struttura

Realizzare una struttura richiede di individuare le caratteristiche dei diversi elementi che andranno a costituire il nostro “articolo”. Il primo passo da compiere è analizzare i contenuti dell’articolo da pubblicare e specificare gli elementi che lo compongono nelle seguenti tipologie:

  • testo: riga di testo semplice;
  • casella di testo: area composta da più righe di testo semplice;
  • area di testo: testo formattato con codice HTML (Liferay 6.0.x utilizza CKEditor, la nuova versione di FCKEditor);
  • immagine: immagine caricata dall’utente mediante l’uploader integrato;
  • galleria immagini: immagine scelta tra quelle disponibili all’interno della galleria immagini (Image Gallery);
  • gestione documenti: un documento presente nell’archivio dell’utente (Document Library);
  • variabile booleana;
  • elenco di selezione: lista di coppie ID/valore di elementi (opzioni) che verrà visualizzata come menu a tendina;
  • lista multi-selezione: lista di coppie ID/valore di elementi (opzioni) da cui saranno selezionabili più opzioni (select multiple);
  • collegamenti ad altre pagine: permette di creare un link a un’altra pagina del sito (non ad altri siti).

Nella pagina di inserimento dei contenuti (back-office) ogni elemento diventerà un campo di input a seconda della tipologia scelta (textarea, immagine, ecc.); nella stesura del modello, ogni elemento specificato diventerà una variabile.

Una volta decisi gli elementi del contenuto, si passa a definire la struttura attraverso il pannello di controllo, dove è possibile inserire ogni elemento specificando il nome mediante un campo di input, la tipologia mediante un menu a tendina e la presenza di eventuali elementi figli mediante un campo checkbox (gli elementi possono essere organizzati gerarchicamente ad albero).

Figura 2 – Pannello di controllo dove definire strutture e modelli.

 

Figura 3 – Pannello di inserimento struttura e schema XML.

Modello

Il modello ha la funzione di organizzare i contenuti basandosi sulla struttura a cui è associato. Viene definito mediante Velocity (VM) [1], un linguaggio caratterizzato da una semplice sintassi, utilizzando le variabili definite attraverso la struttura.

Di seguito riportiamo alcuni esempi di istruzioni e metodi:

Visualizzazione condizionale del valore dell’item
#if ($item.getData()!=0)
      $item.getData()
#else
      Valore non disponibile
#end
Iterazione e renderizzazione di un elenco

          #foreach($item in $items.getSiblings())
               
  • $item.getData()

  •       #end

## riga commentata
I metodi più significativi del dynamic element
$item.getName()
$item.getType()
$item.getData()
$item.getChildren()
$item.getOptions()

 

Figura 4 – Gestione contenuti: modelli.

 

Un vantaggio non trascurabile nell’applicazione di strutture e modelli è il loro libero utilizzo all’interno del sito (anche in articoli diversi) e la possibilità di risparmiare tempo in quanto le modifiche apportate alla struttura o al modello si riflettono su tutti gli articoli che ne fanno uso.

Figura 5 – Editor del modello.

Aggiornamento temi dalla versione 5.2.x alla 6.0.x

Ma che fine fanno i “vecchi” temi, magari creati in passato con lavoro e applicazione? Con i cambiamenti intervenuti nella versione 6 di Liferay, dobbiamo buttarli via? Se tentiamo di caricare in Liferay 6.0.x un tema realizzato con la versione 5.2.x, infatti, riscontreremo diversi errori dovuti al cambiamento di alcuni ID tags apportato dalla nuova UI (p.e.: scomparsa della dockbar).

Se il tema era stato creato in accordo con le indicazioni esposte nel nostro articolo precedente [2], ossia modificando soltanto il file custom.css, è molto semplice rendere il tema compatibile con l’ultima versione Liferay.

Basta creare una copia di backup del file custom.css (p.e.: custom_copia.css), sovrascrivere custom.css con gli elementi sottostanti e integrare questo file con custom_copia.css, avendo cura di posizionare gli elementi secondo le linee guida dettate dalla pagina.

Di seguito riportiamo gli elementi CSS da integrare:

/* -------- Global -------- */
 
#skip-to-content,
#heading .community-title,
#heading .page-title,
#navigation h1 {
      clip: rect(0 0 0 0);
      position: absolute;
}
 
body {
}
 
/* -------- Wrapper / Skip / Sign-in -------- */
 
#wrapper {
      margin: 0 auto;
      position: relative;
}
 
#skip-to-content,
#sign-in {
      color: #FFF;
      top: 1.5em;
}
 
#skip-to-content {
      left: 2em;
}
 
#skip-to-content:active,
#skip-to-content:focus {
      clip: auto;
}
 
#sign-in {
      position: absolute;
      right: 2em;
}
 
/* -------- Heading -------- */
 
#heading {
}
 
#heading .company-title {
      margin: 0;
}
 
#heading .company-title a {
      margin 0 auto;
}
 
/* -------- Navigation -------- */
 
#navigation {
}
 
#navigation ul {
      list-style: none;
      margin: 0;
}
 
.ie6 #navigation ul,
.ie7 #navigation ul {
      zoom: 1;
}
 
#navigation ul:after {
      clear: both;
      content: "";
      display: block;
}
 
#navigation li,
#navigation a {
      float: left;
}
 
#navigation a {
}
 
#navigation a:active,
#navigation a:focus,
#navigation a:hover {
}
 
/* -------- Content -------- */
 
#content {
}
 
#breadcrumbs {
      display: none;
}
 
/* -------- Footer -------- */
 
#footer {
}
 
#footer p {
      margin: 0;
}

Lo step successivo è rinominare gli ID tags che hanno subito variazioni con la nuova versione.

5.2.x                        6.0.x
.lfr-grid                    .portlet-layout
.lfr.column                  .portlet-column
#content-wrapper             #main-content
                             #content

Di seguito riportiamo le variazioni di JavaScript e template:

5.2.x                              6.0.x
javascript/javascript.js           js/main.js
dock.vm                            eliminato

Nella versione 6.0.x sono stati aggiunti nuovi macro:

#breadcrumbs()
#dockbar()

Nella versione 5.2.x la dockbar veniva inclusa con il seguente codice

#parse ("$full_templates_path/dock.vm");

Figura 6 – Dockbar Liferay 5.2.x

 

Per aggiornare il portal_normal.vm, nella versione 6.0.x, il richiamo della dockbar è da modificare con il seguente codice:

#if($is_signed_in)
      #dockbar()
#end

Figura 7 – Dettaglio dockbar Liferay 6.0.x.

Conclusioni

In questo secondo articolo, abbiamo presentato alcune rapide indicazioni sull’importanza dei concetti di struttura e modello in Liferay. Abbiamo poi riportato i passi necessari al corretto aggiornamento di temi realizzati nella versione precedente. Seguendo queste linee guida, si riuscirà a realizzare delle grafiche personalizzate con diversi livelli di complessità strutturale e ad aggiornare con facilità quasi ogni tema realizzato con versioni precedenti alla 6.0.x.

Riferimenti

[1] Apache Velocity

http://velocity.apache.org/

 

[2] F. Fabbri – L. Amato – C. Mambretti, “Liferay Portal Overview – I parte: La creazione di un tema grafico”, MokaByte 158, Gennaio 2011

https://www.mokabyte.it/cms/article.run?articleId=8RH-1C2-1XB-4EL_7f000001_29118337_6fac7eed

 

 

Avatar
Federica Fabbri

Dopo la laurea in Scienze Economiche all‘Università di Bologna sono entrata a contatto con il mondo dei sistemi informativi grazie a un tirocinio formativo presso il Cineca di Bologna e varie attività di collaborazione con il Dipartimento MIUR (Ministero dell‘Istruzione, dell‘Università e della Ricerca). Dal 1999 mi occupo della realizzazione di siti Internet e dell‘integrazione grafica di applicazioni web complesse. Sono iscritta come Consulente Tecnico di Ufficio presso il Tribunale di Bologna per cui svolgo incarichi in materia di diritto commerciale e regolamentazione Internet. Attualmente lavoro per D‘vel Snc.

Avatar
Chiara Mambretti

Chiara Mambretti è un‘anima inquieta dalla passione sfrenata per il cioccolato. Inizia a giocare con le matite e sogna di passare la sua vita disegnando. Le capita tra le mani la rivista AD, si laurea in disegno industriale e compra lo spremiagrumi di Philippe Starck. Il suo indiscutibile gusto grafico la spinge fin sotto le mura di Urbino dove si specializza in disegno grafico. Prende una sbandata per l‘illustrazione, lavora per l‘editoria scolastica e di nascosto inizia a illustrare storie per bambini. Si fidanza con un programmatore, sente parlare spesso di HTML, CSS, JavaScript e si ritrova a progettare siti web presso D‘vel s.n.c. L‘anima inquieta troverà mai pace?

Facebook
Twitter
LinkedIn
Avatar
Federica Fabbri

Dopo la laurea in Scienze Economiche all‘Università di Bologna sono entrata a contatto con il mondo dei sistemi informativi grazie a un tirocinio formativo presso il Cineca di Bologna e varie attività di collaborazione con il Dipartimento MIUR (Ministero dell‘Istruzione, dell‘Università e della Ricerca). Dal 1999 mi occupo della realizzazione di siti Internet e dell‘integrazione grafica di applicazioni web complesse. Sono iscritta come Consulente Tecnico di Ufficio presso il Tribunale di Bologna per cui svolgo incarichi in materia di diritto commerciale e regolamentazione Internet. Attualmente lavoro per D‘vel Snc.

Avatar
Chiara Mambretti

Chiara Mambretti è un‘anima inquieta dalla passione sfrenata per il cioccolato. Inizia a giocare con le matite e sogna di passare la sua vita disegnando. Le capita tra le mani la rivista AD, si laurea in disegno industriale e compra lo spremiagrumi di Philippe Starck. Il suo indiscutibile gusto grafico la spinge fin sotto le mura di Urbino dove si specializza in disegno grafico. Prende una sbandata per l‘illustrazione, lavora per l‘editoria scolastica e di nascosto inizia a illustrare storie per bambini. Si fidanza con un programmatore, sente parlare spesso di HTML, CSS, JavaScript e si ritrova a progettare siti web presso D‘vel s.n.c. L‘anima inquieta troverà mai pace?

Picture of Federica Fabbri – Chiara Mambretti

Federica Fabbri – Chiara Mambretti

Tutti gli articoli
Nello stesso numero
Loading...

Pattern per la Service-Oriented Architecture

I parte: Le principali famiglie di pattern SOA

Java e i portali

V parte: Pubblicare articoli, documenti e immagini con Liferay

PircBot

Una libreria Java per la chat

HTML5, CSS3, JavaScript e il mobile

IV parte: I CSS prendono vita

Viaggio a El Dorado: alla scoperta della robotica spaziale in Giappone

I parte: Verso mondi lontanissimi

Nella stessa serie
Loading...

Liferay Portal Overview

V parte: Portlet, configurazioni e preferenze

Liferay Portal Overview

IV parte: Gestire i dati con il Service Builder

Liferay Portal Overview

III parte: Strumenti e concetti per sviluppare portlet

Liferay Portal Overview

I parte: La creazione di un tema grafico

Mokabyte

MokaByte è una rivista online nata nel 1996, dedicata alla comunità degli sviluppatori java.
La rivista tratta di vari argomenti, tra cui architetture enterprise e integrazione, metodologie di sviluppo lean/agile e aspetti sociali e culturali del web.

Imola Informatica

MokaByte è un marchio registrato da:
Imola Informatica S.P.A.
Via Selice 66/a 40026 Imola (BO)
C.F. e Iscriz. Registro imprese BO 03351570373
P.I. 00614381200
Cap. Soc. euro 100.000,00 i.v.

Privacy | Cookie Policy

Contatti

Contattaci tramite la nostra pagina contatti, oppure scrivendo a redazione@mokabyte.it

Seguici sui social

Facebook Linkedin Rss
Imola Informatica
Mokabyte