bloggers bloggers

Marco Napolitano
Messaggi: 79
Stelle: 0
Data: 17/02/22
Jader Jed Francia
Messaggi: 63
Stelle: 0
Data: 18/02/21
Paolo Gambetti
Messaggi: 2
Stelle: 0
Data: 11/11/19
Katia Pazzi
Messaggi: 1
Stelle: 0
Data: 27/06/19
Ezio Lombardi
Messaggi: 11
Stelle: 0
Data: 10/04/18
Chiara Mambretti
Messaggi: 25
Stelle: 0
Data: 27/02/17
Serena Traversi
Messaggi: 3
Stelle: 0
Data: 21/07/16
Francesco Falanga
Messaggi: 8
Stelle: 0
Data: 14/06/16
Antonio Musarra
Messaggi: 2
Stelle: 0
Data: 18/11/13
Simone Celli Marchi
Messaggi: 6
Stelle: 0
Data: 09/07/13
Indietro

Liferay - Migliorare l'accessibilità di un sito

Dovendo migliorare l'accessibilità di un sito fatto con liferay 6 abbiamo dovuto implementare un portlet che consentisse ad ogni utente di modifcare il font, consentendone l' ingrandimento o la riduzione delle dimensioni, nonchè un utilizzo di contrasto alto.
La soluzione che abbiamo utilizzato sfrutta i color schemas relativi al tema di lifery.
Per ogni tipo di visualizzazione che volevamo rendere disponibile abbiamo creato un color schema dedicato, il quale tramite css definisce le proprietà da cambiare.
Successivamente abbiamo implementato un portlet che non fa altro che settare a run time un particolare color schema per il tema, in base alla selezione dell'utente.

Questa sotto è l'immagine del nostro portlet.

Portlet per la modifica del font

Il codice della jsp che mostra questo portlet è

<%@include file="/html/init.jsp" %>

<%
String titolo =(String)renderRequest.getAttribute("titolo");
if(titolo!=null && !"".equals(titolo) && "Piccolo".equals(titolo))
colorScheme.setCssClass("piccolo");
else if(titolo!=null && !"".equals(titolo) && "Grande".equals(titolo))
colorScheme.setCssClass("grande");
else if(titolo!=null && !"".equals(titolo) && "Negativo".equals(titolo))
colorScheme.setCssClass("negativo");
else
colorScheme.setCssClass("normale");
%>

<ul class="accessibilita">

<portlet:actionURL name="changeFontStyle" var="urlPiccolo">
<portlet:param name="titolo" value="Piccolo" />
</portlet:actionURL>
<li class="access"><a href="<%=urlPiccolo.toString() %>">A-</a></li>

<portlet:actionURL name="changeFontStyle" var="urlGrande">
<portlet:param name="titolo" value="Grande" />
</portlet:actionURL>
<li class="access"><a href="<%=urlGrande.toString() %>">A+</a></li>

<portlet:actionURL name="changeFontStyle" var="urlNormale">
<portlet:param name="titolo" value="Normale" />
</portlet:actionURL>
<li class="access"><a href="<%=urlNormale.toString() %>">&nbsp;A</a></li>

<portlet:actionURL name="changeFontStyle" var="urlNegativo">
<portlet:param name="titolo" value="Negativo" />
</portlet:actionURL>
<li class="access-"><a href="<%=urlNegativo.toString() %>">&nbsp;A</a></li>
</ul>

Il metodo changeFontStyle mette in request il nome del color schema da settare, cosa che viene fatta direttamente nella jsp nella parte iniziale,

colorScheme.setCssClass("piccolo");

colorScheme è un oggetto che è possibile accedere inserendo la chiamata ad una taglib di Liferay

<liferay-theme:defineObjects />

Il metodo setCssClass non fa altro che cambiare il color schema applicato al tema, che è quello che volevamo ottenere.

Per vedere come utilizzare i color schema è possibile consultare il wiki di Liferay qui.

Precedente
Commenti
Aggiungi Commento
matteo gnocchi
Ciao a tutti

Complimenti per l'utilissimo post!!

Ho iniziato da poco a usare Liferay e sto ancora cercando di impratichirmi.

Seguendo quello che hai scritto, ho creato una portlet con Eclipse e L'IDE di liferay. Il problema è che quando provo a utilizzarla mi ritrovo questo errore:

java.lang.NoSuchMethodException: com.liferay.util.bridges.mvc.MVCPortlet.changeFontStyle(javax.portlet.ActionRequest, javax.portlet.ActionResponse)

Probabilmente è dovuto alla mia poca esperienza ma se avete consigli o suggerimenti vi ringrazio

Matteo
Inviato il 09/07/15 14.02.
Lorenza Amato
Ciao Matteo, grazie per l'apprezzamento :-)
Il metodo changeFontStyle è un metodo custom che si trova dentro la classe del tuo portlet; in poche parole sei tu che devi implementarlo!
Per brevità non l'ho messo nell'articolo. In sostanza recupera il parametro "titolo" e lo mette in request; questo consente allo script all'inizio della jsp di recuperare il valore e di fare la chiamata, come ad esempio
colorScheme.setCssClass("piccolo");
che setta al volo il color schema corrispondente.
Spero di aver chiarito i tuoi dubbi.
ciao
Lorenza
Inviato il 09/07/15 14.02 in risposta a matteo gnocchi.