if (DateUtils.isSameDay(date1, date2)) {
System.out.println("Fechas en el mismo día");
} else if (date1.before(date2)) {
System.out.println("Fecha1 es anterior a la fecha2");
} else {
System.out.println("Fecha1 es posterior a la fecha2");
}
14 de febrero de 2020
:: Java. Determinar si dos fechas pertenecen al mismo día
Únicamente como recordatorio para determinar si dos fechas son del mismo día (00:01 a 23:59), podemos hacer uso de la siguiente función "isSameDay" de la clase "DateUtils":
10 de febrero de 2020
:: Liferay. Comentarios en un workflow
En la definición de un workflow en Liferay, en el que necesitamos que al rechazar una solicitud se envíe un correo al usuario, adjuntando además los motivos, podemos hacer uso de la variable: $taskComments
Dentro del fichero .xml de definición del workflow, tendremos el código al que llamaremos, por ejemplo:
Dentro del fichero .xml de definición del workflow, tendremos el código al que llamaremos, por ejemplo:
<state>
<name>reject</name>
<metadata> <![CDATA[{"xy":[356,225]}]]> </metadata>
<actions>
<action>
<name>denied</name>
<description/>
<script> <![CDATA[Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("denied"), workflowContext);]]> </script>
<script-language>javascript</script-language>
<execution-type>onEntry</execution-type>
</action>
<!-- correo al usuario rechazado -->
<notification>
<name>Review Notification</name>
<description>Denegación de solicitud</description>
<template><![CDATA[<html>
#set ($workflowHandlerRegistryUtil = $portal.getClass().forName("com.liferay.portal.kernel.workflow.WorkflowHandlerRegistryUtil"))
#set ($locale = $localeUtil.getDefault())
#set ($timeZone = $timeZoneUtil.getDefault())
#set ($workflowHandler = $workflowHandlerRegistryUtil.getWorkflowHandler($entryClassName))
#set ($classPK = $getterUtil.getInteger($entryClassPK))
#set ($assetRenderer = $workflowHandler.getAssetRenderer($classPK))
#set ($emailUser = $assetRenderer.getEmailNotificationDenied($locale, $timeZone, $taskComments))
</html>]]> </template>
<template-language>velocity</template-language>
<notification-type>email</notification-type>
<execution-type>onEntry</execution-type>
</notification>
</actions>
</state>
En la función encargada de realizar el envío de correo tras ser rechazada la solicitud,
añadiremos los comentarios al cuerpo del mensaje.
5 de febrero de 2020
:: Accesibilidad web. Enlaces adyacentes
Dentro del análisis de accesibilidad web, uno de los puntos comprobados es la existencia de enlaces adyacentes que apuntan al mismo destino.
Se consideran enlaces adyacentes aquellos que están separados por un carácter y/o conjunto de espacios en blanco, o por alguna etiqueta que no pertenezca al grupo de etiquetas en línea: a, abbr, acronym, b, big, code, cite, dfn, em, font, img, ins, label, q, s, small, span, strike, strong, sub, sup, u.
NOTA: No se tienen en cuenta los enlaces que apunten al destino: #
Se consideran enlaces adyacentes aquellos que están separados por un carácter y/o conjunto de espacios en blanco, o por alguna etiqueta que no pertenezca al grupo de etiquetas en línea: a, abbr, acronym, b, big, code, cite, dfn, em, font, img, ins, label, q, s, small, span, strike, strong, sub, sup, u.
NOTA: No se tienen en cuenta los enlaces que apunten al destino: #
31 de enero de 2020
:: Accesibilidad web. Cambio de contexto
En accesibilidad se llevan a cabo una serie de validaciones, entre las que podemos señalar la existencia de: "Cambios de contexto".
¿Pero a qué hace referencia este término?.
Se entiende por cambio de contexto: una nueva página, ventana, pestaña, aplicación o un cambio de foco (window.location, window.history, window.open, window.focus).
De esta manera, a la hora de evaluar la accesibilidad en un portal web, deberemos tener en cuenta el uso de estas técnicas, para obtener la máxima puntuación posible en los informes.
¿Pero a qué hace referencia este término?.
Se entiende por cambio de contexto: una nueva página, ventana, pestaña, aplicación o un cambio de foco (window.location, window.history, window.open, window.focus).
De esta manera, a la hora de evaluar la accesibilidad en un portal web, deberemos tener en cuenta el uso de estas técnicas, para obtener la máxima puntuación posible en los informes.
- Verificar que no se produzca ningún cambio de contexto en los eventos: onfocus y onblur
- Verificar que no se produzca ningún cambio de contexto nada más cargarse la página: onload
- Verficar que no se produzca ningún cambio de contexto en el evento onchange de los elementos select
27 de enero de 2020
:: Velocity. Directivas
En Apache Velocity existen una serie de directivas que podemos utilizar:
#set($variable="hola mundo")
#set($noticia.titulo=$variable)
#if ($valor>10)
Valor mayor que 10
#elseif
Valor menor o igual que 10
#end
#foreach($noticia in $noticias)
$noticia.titulo
#end
#include("plantilla.html")
#parse("cabecera.vm")
#stop
set
Utilizada para estableer el valor de una referencia. Este valor se puede asignar a una variable o a una propiedad#set($variable="hola mundo")
#set($noticia.titulo=$variable)
if else
Utilizada para definir enunciados condicionales dentro de una plantilla velocity#if ($valor>10)
Valor mayor que 10
#elseif
Valor menor o igual que 10
#end
foreach
Utilizada para definir bucles#foreach($noticia in $noticias)
$noticia.titulo
#end
include
Utilizada para incluir un fichero correspondiente a una plantilla, pero que no será parseado por el motor de velocity#include("plantilla.html")
parse
Utilizada para hacer uso de una plantilla, y esta será parseada por el motor de velocity y rederizará su contenidos#parse("cabecera.vm")
stop
Utilizada para detener la ejecución del motor de plantillas#stop
20 de enero de 2020
:: Velocity. ¿Qué es una plantilla?
Una plantilla velocity es un fichero con extensión .vm, que contiene el código correspondiente, compuesto por: directivas, condicionales, bucles, variables,...
Por ejemplo a la hora de desarrollar un tema en Liferay 6.2 podemos tener varios ficheros .vm encargados de mostrar la información oportuna.
Las plantillas velocity - en tiempo de ejecución- son traducidas por el motor de velocity a código html que un navegador puede entender.
Por ejemplo a la hora de desarrollar un tema en Liferay 6.2 podemos tener varios ficheros .vm encargados de mostrar la información oportuna.
Las plantillas velocity - en tiempo de ejecución- son traducidas por el motor de velocity a código html que un navegador puede entender.
<html>
<body>
#set( $foo = "Velocity" )
¡Hola Mundo $foo!
</body>
<html>
</html>
13 de enero de 2020
:: Liferay. Deshabilitar la creación de sitios personales
Liferay crea sitios personales para los usuarios definidos en el CMS, así como para aquellos usauarios que se registran.
De esta manera, a través del fichero: "portal-ext.properties" es posible llevar a cabo una configuración, de forma que no se creen los sitios personales de los usuarios.
De esta manera, a través del fichero: "portal-ext.properties" es posible llevar a cabo una configuración, de forma que no se creen los sitios personales de los usuarios.
Deshabilitar los sitios personales de los usuarios
layout.user.public.layouts.enabled=false
layout.user.private.layouts.enabled=false
Deshabilitar la creación de sitios personales
layout.user.public.layouts.auto.create=false
layout.user.private.layouts.auto.create=false
Suscribirse a:
Entradas (Atom)
:: Liferay DXP 2026. Habilitar RSS
En la versión Liferay DXP 2026 para habilitar las fuentes de datos RSS debemos seguir los pasos siguientes: 1.- Accederemos a la Configuraci...
-
En multitud de ocasiones es útil obtener el modelo de datos de una aplicación para determinar las tablas, consultas, relaciones,... En es...
-
La siguiente prueba de concepto consistirá en la creación de un webscript que liste las carpetas contenidas en una carpeta dada, pasada co...
-
En Liferay 7.3 y, en versiones anteriores, para el idioma por defecto -en las configuraciones habiturales- no se muestra el código de idioma...



