留言板

Controllo titoli Articoli univoci

tommaso fazio,修改在6 年前。

Controllo titoli Articoli univoci

New Member 帖子: 9 加入日期: 17-5-29 最近的帖子
Buongiorno a tutti,
premetto che sviluppo su Liferay da poco tempo, la mia conoscenza della piattaforma è basilare, pertanto volevo qualche suggerimento su come implementare un controllo sui titoli nel momento in cui è Pubblicato/Salvato come bozza un nuovo articolo (Journal Article),
nel dettaglio:

"Nel momento in cui un utente vuole pubblicare/salvare un nuovo articolo bisogna accertare che il titolo specificato sia univoco, in caso contrario dovrebbe essere visualizzato un messaggio di errore. Fondamentale è che le informazioni inserite dall'utente, in caso di titolo duplicato, non siano perse (per esempio a causa di un refresh della pagina)."

Vi ringrazio anticipatamente per il supporto.


P.S.

Noto che per quanto riguarda la gestione degli allegati (Documents and Media) il controllo suddetto è già implementato, la logica di base relativa agli allegati sarebbe l'ideale se replicata anche nel mio caso.
thumbnail
Daniele Baggio,修改在6 年前。

RE: Controllo titoli Articoli univoci

Expert 帖子: 336 加入日期: 08-12-5 最近的帖子
E' importante sapere su quale versione di Liferay stai lavorando...
tommaso fazio,修改在6 年前。

RE: Controllo titoli Articoli univoci

New Member 帖子: 9 加入日期: 17-5-29 最近的帖子
Hai ragione, l'avevo dimenticato, la versione di Liferay utilizzata è la 6.2
thumbnail
Daniele Baggio,修改在6 年前。

RE: Controllo titoli Articoli univoci

Expert 帖子: 336 加入日期: 08-12-5 最近的帖子
Scusa, sarò telegrafico, spero comunque di darti una traccia utile.

Crea un progetto di tipo HOOK.
https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/customizing-liferay-portal

Crea un model listener per l'entità JournalArticle
https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/creating-model-listeners

Nella classe listener vai di override dei metodi onBeforeCreate, onBeforeUpdate. I questi metodi verifica il titolo e se non è conforme alle tue regole puoi sollevare una PortalException. Il resto viene gestito dal portale.

Facci sapere
@baxtheman
tommaso fazio,修改在6 年前。

RE: Controllo titoli Articoli univoci

New Member 帖子: 9 加入日期: 17-5-29 最近的帖子
Ciao e grazie per la risposta,
tuttavia devo notificarti che il problema persiste, nello specifico la soluzione da te proposta l'avevo già implementata ed il problema è il seguente:

"Se sollevo un'eccezione di tipo PortalException devo necessariamente gestirla con del codice proprietario (ovvero non ho la possibilità di definire la classe in questo modo:

public class JournalArticleListener extends BaseModelListener<JournalArticle> throws PortalException {...}

bensì l'eccezione sollevata deve essere gestita da una catch definita all'interno della classe stessa.
In alternativa ho la possibilità di sollevare un'eccezione di tipo ModelListenerException, la quale non necessita di essere gestita manualmente, tuttavia effettuando dei test nel momento in cui inserisco un articolo con titolo duplicato, viene correttamente sollevata l'eccezione, ma non è gestista causando un crash del server con il relativo messaggio visualizzato lato client:

service temporarily unavailable

)"
thumbnail
Daniele Baggio,修改在6 年前。

RE: Controllo titoli Articoli univoci

Expert 帖子: 336 加入日期: 08-12-5 最近的帖子
Va bene usare ModelListenerException , non puoi far passare una PortalException, ho detto male io su questo.

Ma quindi hai risolto?
tommaso fazio,修改在6 年前。

RE: Controllo titoli Articoli univoci

New Member 帖子: 9 加入日期: 17-5-29 最近的帖子
No no il problema non è risolto perchè una volta sollevata l'eccezione non so come gestirla,
esiste un modo per far visualizzare un messaggio di errore lato client nel momento in cui l'eccezione è sollevata senza causare il refresh della pagina?
Allo stato attuale l'eccezione è sollevata ma non è gestita pertanto comporta un crash del server.
tommaso fazio,修改在6 年前。

RE: Controllo titoli Articoli univoci

New Member 帖子: 9 加入日期: 17-5-29 最近的帖子
nessuno può aiutarmi?
thumbnail
Marco Azzalini,修改在6 年前。

RE: Controllo titoli Articoli univoci

Regular Member 帖子: 146 加入日期: 14-11-18 最近的帖子
tommaso fazio:
nessuno può aiutarmi?


Ciao Tommaso, io ti suggerirei di provare ad andare un pochino più a basso livello. Mi spiego, invece che utilizzare i Listener che sono un pochino troppo slegati, secondo me, dalle logiche del portale, dovresti realizzare un Service Wrapper di JournalArticleLocalService. La procedura per definirlo è molto simile a quella per un Listener
Ho dato una rapida occhiata ai metodi e direi che puoi fare più o meno tutto.... vai in override su quello che ti serve e sei quindi libero di sollevare le opportune eccezioni che verranno correttamente visualizzate lato client.
Spero di aver capito il tuo problema.

ciao
Marco