bloggers bloggers

Marco Napolitano
Messaggi: 68
Stelle: 0
Data: 15/11/17
Jader Jed Francia
Messaggi: 50
Stelle: 0
Data: 22/09/17
Ezio Lombardi
Messaggi: 9
Stelle: 0
Data: 23/06/17
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
marcello marangio
Messaggi: 4
Stelle: 0
Data: 05/07/13
Marco Mancini
Messaggi: 1
Stelle: 0
Data: 05/06/13
Indietro

Liferay e gestione della breadcrumb

L'installazione standard di Liferay mette a disposizione nel template la visualizzazione della breadcrumb (vedi immagine), con l'interessante funzionalità di essere sempre visualizzata anche in caso di scrolling verticale del contenuto.

Breadcrumb di Liferay

Le API di Liferay consentono di poter interagire con essa, aggiungendo voci custom direttamente via codice.

Come prima è necessario inserire una nuova direttiva nel file liferay-portlet.xml all'interno del blocco della propria portlet:

<private-request-attributes>false</private-request-attributes>

Dopodichè è sufficiente utilizzare il seguente metodo per aggiungere una voce alla breadcrumb:

PortalUtil.addPortletBreadcrumbEntry(HttpServletRequest request, String title, String url);

I parametri hanno il seguente significato:

  • request, request di Liferay
  • title, testo da visualizzare nella breadcrumb
  • url, URL associato al titolo visualizzato (di solito è la URLcorrente)

Vediamo un esempio di utilizzo.

// creazione della URL "corrente" da associare al testo visualizzato

HttpServletRequest request = (HttpServletRequest) renderRequest

.getAttribute(PortletServlet.PORTLET_SERVLET_REQUEST);

PortletURL portletURL = renderResponse.createRenderURL();

portletURL.setParameter("parm1", "qualcosa");

portletURL.setParameter("parm2", "qualcosaltro");

// ... eventuali altri parametri da aggiungere alla URL

PortalUtil.addPortletBreadcrumbEntry(request, "miaVoce", portletURL.toString());


Si ricorda che per creare la "URL corrente" (ossia una renderURL) server la renderResponse pertanto è consigliabile inserire il codice nella fase di render

Enjoy!

Precedente
Commenti
Nessun commento. Vuoi essere il primo.