Ask Questions and Find Answers
Important:
Ask is now read-only. You can review any existing questions and answers, but not add anything new.
But - don't panic! While ask is no more, we've replaced it with discuss - the new Liferay Discussion Forum! Read more here here or just visit the site here:
discuss.liferay.com
RE: Visualización de Artículos de Contenido WEB expirados
Buenas tardes, necesito crear una página para visualizar los artículos de contenido WEB expirados, hace un tiempo ví en el foro que el portlet "WEB CONTENT" nos permite verlos, sin embargo solo permite ver los expirados que están dentro de la ruta actual (esta prueba la hice, embebiendo el portlet dentro de una plantilla, ademas su desempeño no es muy bueno), y lo que necesito es un listado completo de todos los artículos expirados, he oído que por medio de las clases de Liferay se puede sin embargo hice pruebas con la clase "AssetEntryLocalService" y varios de sus métodos (entre ellos getGroupEntries()) y efectivamente me retorna una lista con las entradas al portal (imágenes, carpetas. comunicados..) pero infortunadamente no me lista los "no vigentes", cree también un servicio para leer la tabla "journal article" en donde la fecha de expiración fuera diferente de NULL y desde allí logré obtener los registro de la base de datos, pero en la columna "content", me aparece el código fuente del artículo en formato xml, el cual al "parsearlo" a HTML no me arroja algo realmente visible, ¿alguien sabe de que manera puedo listar estos artículos o que clase y métodos permiten hacerlo?, algunas de las clases al tratar de instanciarlas me arrojan error, de antemano les agradezco su colaboración
Attachments:
Hola Ángela
¿Para qué versión de Liferay Portal o DXP necesitas implementar esa funcionalidad?
¿Para qué versión de Liferay Portal o DXP necesitas implementar esa funcionalidad?
Buenas tardes, la versión es la siguiente: "liferay-dxp-7.2.10.1-sp1".Continué realizando pruebas, y con la clase "JournalArticleLocalService " del paquete "com.liferay.journal.service", y usando el método "getArticles()", logré listar todos los artículos del portal incluyendo los expirados, ahora estoy tratando de crear una forma de visualización de estos, pero al parecer liferay no lo permite ni siquiera utilizando la "URL amigable" que aparece en el editor del contenido WEB. Listé también algunos artículos con un Asset Publisher y luego seleccioné uno de ellos, lo que me llevó a una página de visualización con la siguiente URL: "http://localhost:8080/group/guest/no_vigentes/-/asset_publisher/swgqL5bQOSP1/content/id/46976", luego fui a las opciones de "Contenido WEB" y de forma manual "expiré" el comunicado, volví a la página de visualización y me arrojó el siguiente error: "Error:The asset could not be found.", hice el mismo procedimiento con un "Display Page Template" y el comportamiento es el mismo.
He utilizado los métodos de la clase "AssetPublisherHelper" para obtener URL´s de destino para los Asset Publisher, pero en este caso no logró obtener nada puesto que el resultado es la evaluación NULA de estos. Actualmente logré crear una URL que lleva al usuario hasta la página de edición de los artículos, pero naturalmente esto no funcionará con un usuario final que no tenga permisos de Edición.Muchas gracias por su ayuda.
He utilizado los métodos de la clase "AssetPublisherHelper" para obtener URL´s de destino para los Asset Publisher, pero en este caso no logró obtener nada puesto que el resultado es la evaluación NULA de estos. Actualmente logré crear una URL que lleva al usuario hasta la página de edición de los artículos, pero naturalmente esto no funcionará con un usuario final que no tenga permisos de Edición.Muchas gracias por su ayuda.
Ah entiendo, yo creo que si lo que quieres es controlar un estado como "vigente" o "no vigente", es más sencillo que modeles ese estado como un campo más de tu contenido Web o también como una categoría. Luego ya configura en el Asset Publisher que liste tales contenidos, aquellos de la categoría "no vigente".
El estado de EXPIRADO imposibilita que Liferay DXP muestre esos contenidos, ya que el Asset Publisher sólo muestra contenidos en estado PUBLICADO.
Tal como estabas planteando hacerlo, podría hacerse, pero extendiendo/modificando el producto, lo cual debe evitarse.
En resumen, no modeles ese estado de vigencia como un estado del workflow de aprobación, si no como un dato más de ese contenido Web, como una categoría por ejemplo.
Espero te sirva
El estado de EXPIRADO imposibilita que Liferay DXP muestre esos contenidos, ya que el Asset Publisher sólo muestra contenidos en estado PUBLICADO.
Tal como estabas planteando hacerlo, podría hacerse, pero extendiendo/modificando el producto, lo cual debe evitarse.
En resumen, no modeles ese estado de vigencia como un estado del workflow de aprobación, si no como un dato más de ese contenido Web, como una categoría por ejemplo.
Espero te sirva
Buenas tardes Sergio, me parece muy buena idea lo que plantea sobre el manejo de la fecha en un campo de la misma estructura del contenido WEB, sin embargo; me preocupa el impacto que pueda tener sobre otras funcionalidades del sistema que quizá hagan uso de la información presente en el campo de fecha de expiracion, como el tema de analitics, workflow, buscadores, notificaciones (por ejemplo para este último tendríamos que realizar un desarrollo para que la notificación se genere ahora teniendo el cuenta el campo de la estructura y no el campo de fecha de expiracion propio de Liferay), por casualidad ¿conoce que otras implicaciones nos pueda traer el hecho de usar un campo especifico dentro de cada comunicado para el manejo de la vigencia de los artículos?, nuevamente le agradezco por su ayuda e interés.
Hola Ángela, según voy entendiendo manejais también el campo de Fecha de expiración para la expiración automática de los contenidos y hay una serie de notificaciones asociadas a ello.
Se trata de algo que parece os es de utilidad. Has de tener en cuenta que en el estado EXPIRADO hace que esos contenidos Web no puedan ser mostrados por portlets visores tales como el Asset Publisher al usuario que navegue por la Web. Es el comportamiento de Liferay DXP. No es algo que se pueda hacer por configuración y sería necesaria una extensión al producto, que puede no ser trivial.
Una pregunta en este punto, ¿esos contenidos Web tienen que estar disponibles en la Web para su visualización por cualquier persona? Si no es el caso, y solo es una utilidad para administradores, la extensión puede que sea más sencilla y se circunscriba al portlet de administración de contenido Web del Panel de Control.
Si se cambia el enfoque de la solución, no se me ocurren más pérdidas de las que has expuesto. Recuerda que si quieres que se visualicen en una portlet deben estar en estado PUBLICADO. Funcionalidades como el cambio de estado (siendo con el otro enfoque, un cambio de categoría) las puedes modelar en un workflow también y el cambio automático de estado necesitaría del desarrollo de una tarea programada (que ahora lo conseguís con la expiración). Las notificaciones puedes incluirlas en el workflow que modeles para que se envíen.
Se trata de algo que parece os es de utilidad. Has de tener en cuenta que en el estado EXPIRADO hace que esos contenidos Web no puedan ser mostrados por portlets visores tales como el Asset Publisher al usuario que navegue por la Web. Es el comportamiento de Liferay DXP. No es algo que se pueda hacer por configuración y sería necesaria una extensión al producto, que puede no ser trivial.
Una pregunta en este punto, ¿esos contenidos Web tienen que estar disponibles en la Web para su visualización por cualquier persona? Si no es el caso, y solo es una utilidad para administradores, la extensión puede que sea más sencilla y se circunscriba al portlet de administración de contenido Web del Panel de Control.
Si se cambia el enfoque de la solución, no se me ocurren más pérdidas de las que has expuesto. Recuerda que si quieres que se visualicen en una portlet deben estar en estado PUBLICADO. Funcionalidades como el cambio de estado (siendo con el otro enfoque, un cambio de categoría) las puedes modelar en un workflow también y el cambio automático de estado necesitaría del desarrollo de una tarea programada (que ahora lo conseguís con la expiración). Las notificaciones puedes incluirlas en el workflow que modeles para que se envíen.
Buenos días Sergio, la necesidad de visualización de artículos de contenido WEB no vigentes se debe a que utilizamos el portal como herramienta de ventas (entre otras cosas), y resulta imperativo que un usuario final (no administrador) pueda visualizar estos contenidos. Plantearé un ejemplo.El primero de enero un usuario administrador publica un artículo de contenido WEB informando sobre una promoción que tiene una vigencia de una semana (aquí entra en juego la fecha de expiracion) es decir finaliza el 7 de enero.Un mes después un usuario se acerca a un centro de atención indicando que no recibió todos los beneficios que mencionaba la promoción, en este caso el asesor se dirige a una página en donde puede ver ese artículo que actualmente se encuentra expirado, pero los privilegios del asesor solo le permiten realizar una lectura del artículo, luego de esto el asesor podrá determinar si lo que indica el usuario es correcto o no.Actualmente estamos evaluando la opción que usted nos planteó de utilizar un campo de la estructura para la fecha de expiracion, nuevamente muchas gracias por toda su colaboración.
Copyright © 2025 Liferay, Inc
• Privacy Policy
Powered by Liferay™