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

Aggiungere le discussioni alle proprie entità

In alcuni casi, può essere necessario associare delle note alle nostre entità e magari dare all'utente la possibilità di replicare alle note scritte da altri; per fare questo non è necessario implementare codice custom ma è possibile integrarsi con le discussion di Liferay.

L'operazione è piuttosto semplice, vediamo quindi come procedere.

All'interno della pagina JSP, tipicamente quella di modifica dei dati dell'entità, inseriamo il codice seguente:

<liferay-portlet:actionURL name="invokeTaglibDiscussion" var="discussionURL" />
<liferay-ui:discussion
className="<%= Entity.class.getName() %>"
classPK="<%= entity.getPrimaryKey() %>"
formAction="<%= discussionURL %>"
ratingsEnabled="<%= true %>"
redirect="<%= currentURL %>"
subject="<%= entity.getSubject() %>"
userId="<%= entity.getUserId() %>" />

Gli attributi indicati sono quelli più utilizzati ed hanno il seguente significato:

  • className, rappresenta il nome della classe Java che rappresenta l'entità a cui associare le discussioni;
  • classPK, rappresenta la chiave primaria dell'entità a cui associare le discussioni;
  • formAction, rappresenta la actionURL che viene invocata per il salvataggio del commento;
  • ratingsEnabled, abilita/disabilita la votazione dei singoli commenti;
  • redirect, rappresenta la renderURL di ritorno dopo il salvataggio del commento;
  • subject, è una sorta di titolo da visualizzare;
  • userId, è l'identificativo dell'utente corrente.

Come si può notare, il meccanismo di associazione con le discussioni segue il classico pattern di Liferay che utilizza la coppia className/classPK.

Infine è importante spendere 2 parole sulla actionURL da impostare nel parametro formAction; tale URL deve infatti avere l'attributo name valorizzato a invokeTaglibDiscussion.

Come saprete, l'attributo name di una actionURL rappresenta il nome del metodo (o dell'annotation) specifico di processAction che viene invocato dal portale.

Nel caso particolare il metodo invokeTaglibDiscussion è già implementato dal portale all'interno della superclasse MVCPortlet e pertanto non serve implementare nulla lato Java; ammesso che stiate usando sottoclassi di MVCPortlet...

Enjoy!

Precedente
Commenti
Nessun commento. Vuoi essere il primo.