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: Lectura de campo personalizado de tipo fecha en un ADT
Buenas tardes
He creado un campo personalizado de tipo fecha aplicado a los "artículos de contenido WEB". Dentro de mi ADT quiero hacer un filtro para que aquellos "Artículos" cuya fecha en campo personalizado sea menor a la fecha actual no sean mostrados, pero tengo problemas para realizar la lectura del campo personalizado, mi código es el siguiente:
<#if entries?has_content>
<#list entries as curEntry>
<#assign fecha_art = curEntry.getExpandoBridge().getAttribute("fecha_vencimiento")>
</#list>
</#if>
En donde "fecha_vencimiento" es la clave de mi campo personalizado, la lógica que viene después de la lectura del campo ya la tengo funcional (es decir obtener la fecha actual, compararla con la variable "fecha_art" , y la posterior presentación del contenido).
Me gustaría poder aplicar la misma lógica a los buscadores, es decir; si la fecha del campo personalizado es menor a la fecha actual, el "activo" NO se muestre.
Agradezco su ayuda, y me gustaría añadir que este foro representa un excelente recurso para los desarrolladores liferay.
He creado un campo personalizado de tipo fecha aplicado a los "artículos de contenido WEB". Dentro de mi ADT quiero hacer un filtro para que aquellos "Artículos" cuya fecha en campo personalizado sea menor a la fecha actual no sean mostrados, pero tengo problemas para realizar la lectura del campo personalizado, mi código es el siguiente:
<#if entries?has_content>
<#list entries as curEntry>
<#assign fecha_art = curEntry.getExpandoBridge().getAttribute("fecha_vencimiento")>
</#list>
</#if>
En donde "fecha_vencimiento" es la clave de mi campo personalizado, la lógica que viene después de la lectura del campo ya la tengo funcional (es decir obtener la fecha actual, compararla con la variable "fecha_art" , y la posterior presentación del contenido).
Me gustaría poder aplicar la misma lógica a los buscadores, es decir; si la fecha del campo personalizado es menor a la fecha actual, el "activo" NO se muestre.
Agradezco su ayuda, y me gustaría añadir que este foro representa un excelente recurso para los desarrolladores liferay.
Buenas tardes, nadie ha hecho algo similar?

Hola Ángela, sin entrar a comprender lo que quieres construir y sólo atendiendo como obtener una fecha en una plantilla, ten en cuenta que en el contexto de Freemarker tienes disponible el objeto dateUtil dentro de una plantilla Freemarker. El método getDate de ese objeto necesita 3 argumentos: el objeto con la fecha, el formato a aplicar y el locale.
Puedes buscar en el repositorio de GitHub de Liferay ejemplos diversos, que para eso Liferay Portal es de código abierto.
Aquí un ejemplo.
Y otro de como se pinta en un Asset Publisher
Espero te sirva.
Puedes buscar en el repositorio de GitHub de Liferay ejemplos diversos, que para eso Liferay Portal es de código abierto.
Aquí un ejemplo.
Y otro de como se pinta en un Asset Publisher
Espero te sirva.
Buenas tardes, gracias por la respuesta, sin embargo mi duda esta más orientada a la lectura de un campo personalizado en todos los artículos que indexa un Asset Publisher, es decir si el Assset Publisher encontró 10 artículos leer el campo personalizado de cada uno de esos artículos durante cada iteración
<#if entries?has_content>
<#list entries as curEntry>
"valor del campo personalizado de cada artículo que el asset publisher va encontrando"
</#list>
</#if>
muchas gracias
<#if entries?has_content>
<#list entries as curEntry>
"valor del campo personalizado de cada artículo que el asset publisher va encontrando"
</#list>
</#if>
muchas gracias
Hola Ángela, dentro de una plantilla Freemarker tienes varias variables que te dan acceso a los servicios de Expando/Custom Fields:
El método que necesitas para recuperar un valor es getValue de expandoValueLocalService
- expandoColumnLocalService | com.liferay.expando.kernel.service.ExpandoColumnLocalService |
- expandoRowLocalService | com.liferay.expando.kernel.service.ExpandoRowLocalService |
- expandoTableLocalService | com.liferay.expando.kernel.service.ExpandoTableLocalService |
- expandoValueLocalService | com.liferay.expando.kernel.service.ExpandoValueLocalService |
El método que necesitas para recuperar un valor es getValue de expandoValueLocalService
Copyright © 2025 Liferay, Inc
• Privacy Policy
Powered by Liferay™