Fórum

Evento após publicar conteúdo

thumbnail
Marcelo Guimarães Melo, modificado 12 Anos atrás.

Evento após publicar conteúdo

Regular Member Postagens: 248 Data de Entrada: 29/09/08 Postagens Recentes
Pessoal,

Eu gostaria de saber se tem como eu criar um hook que é executado assim que é publicado um conteúdo, sei que consigo para o pre e pos login, será que existe algum evento pos content.

Obrigado,

Marcelo
thumbnail
Thiago Leão Moreira, modificado 12 Anos atrás.

RE: Evento após publicar conteúdo

Liferay Legend Postagens: 1449 Data de Entrada: 10/10/07 Postagens Recentes
Dae Marcelo,

Você pode usar a propriedade value.object.listener como segue

##
## Value Object
##

    #
    # You can add a listener for a specific class by setting the property
    # "value.object.listener" with a list of comma delimited class names that
    # implement com.liferay.portal.model.ModelListener. These classes are pooled
    # and reused and must be thread safe.
    #
    value.object.listener.com.liferay.portlet.journal.model.JournalArticle=com.liferay.portlet.journal.model.MyJournalArticleListener
thumbnail
Marcelo Guimarães Melo, modificado 12 Anos atrás.

RE: Evento após publicar conteúdo

Regular Member Postagens: 248 Data de Entrada: 29/09/08 Postagens Recentes
Thiago,

Eu quero na verdade validar o conteúdo, caso o mesmo não esteja seguindo os padrões de acessibilidade eu salvo como draft, eu consigo fazer?

Abs,

Marcelo.
thumbnail
Henrique Simoes de Andrade, modificado 12 Anos atrás.

RE: Evento após publicar conteúdo

Regular Member Postagens: 165 Data de Entrada: 30/04/10 Postagens Recentes
Olá Marcelo,

Este recurso que você mencionou:
caso o mesmo não esteja seguindo os padrões de acessibilidade eu salvo como draft


É muito interessante, aqui estamos trabalhando pesado p/ seguir ao máximo os padrões de acessibilidade e esta funcionalidade seria um ótimo recurso.

O listener que o Thiago mencionou parece ser exatamente o que você precisa, se você der uma olhada no portal.properties verá que o valor padrão da propriedade value.object.listener.com.liferay.portlet.journal.model.JournalArticle é a classe com.liferay.portlet.journal.model.JournalArticleListener, e se você olhar esta classe verá que faz um extend de com.liferay.portal.model.BaseModelListener (conforme está informado no comentário da propriedade) que tem o método onBeforeUpdate. Acredito que a partir deste método você possa fazer a validação.

abçs
thumbnail
Thiago Leão Moreira, modificado 12 Anos atrás.

RE: Evento após publicar conteúdo

Liferay Legend Postagens: 1449 Data de Entrada: 10/10/07 Postagens Recentes
Dae Marcelo,

Acho que tu consegue fazer isso no ModelListener, se não der certo tenta usar o hook com ServiceWrappers para o serviço com.liferay.portlet.journal.service.JournalArticleLocalService
thumbnail
Marcelo Guimarães Melo, modificado 12 Anos atrás.

RE: Evento após publicar conteúdo

Regular Member Postagens: 248 Data de Entrada: 29/09/08 Postagens Recentes
Thiago,

Funcionou usando:
[code value.object.listener.com.liferay.portlet.journal.model.JournalArticle

Será que usando Hook eu consigo disparar uma exceção, caso dê erro na validação que eu quero fazer?

Obrigado,

Marcelo
thumbnail
Thiago Leão Moreira, modificado 12 Anos atrás.

RE: Evento após publicar conteúdo

Liferay Legend Postagens: 1449 Data de Entrada: 10/10/07 Postagens Recentes
Acredito que sim mas nesse caso o ideal seria usar os SericeWrappers para modificar o business logic do JournalArticle.