Nube de Etiquetas en Liferay 6 por Popularidad

En Liferay 6.0.x se agregó el portlet de Nube de Etiquetas, pero es algo bastante simple, dado que es un gran paso para Liferay, un paso hacia atras sobre el Gestor de Contenidos debido a que no es configurable

Probocando que si tenemos una gran cantidad de etiquetas, nos muestre el listado de las docenas o hasta cientos de etiquetas, por lo que me he dado a la tarea de busar una solución a este problema.

En Liferay.com, me han respondido que dicha configuración se hará para la versión 6.1 o mas adelante, pero para los que no podemos esperar o simplemente no vamos a migrar de versión ya que es un proceso muy arrisgado y engorroso, me generadó un plugin tipo Hook para configurar de acuerdo a mis necesidades para mostrar las etiquetas mas populares en el portlet de Nube de Tags.

Si no sabes que es un Hook, mira este post. Mi primer Hook en Liferay

Si tienes todo lo necesario para hacer el hook, entonces, continuamos.

El archivo en cargado de mostrar la nube de etiquetas se en cuentra en la iguiente ruta:

/opt/liferay/tomcat-6.0.29/webapps/ROOT/html/taglib/ui/asset_tags_navigation/page.jsp

a diferencia de cualquier otro portlet.

Abrimos nuestro archivo en el entorno de desarrollo y modificamos:

 

int popularity = (int)(1 + ((maxCount - (maxCount - (count - minCount))) * multiplier));
 
if (!showZeroAssetCount && (count == 0)) {
continue;
}
 
if (popularity >= n){ /*Agregamos este if para que se muestren
las etiquetas con mayor popularidad. Donde n es el número de
popularidad, Liferay maneja de 1 a 6 de popularidad en etiquetas,
solo bastara con asignar un 2 o un 3 dependiendo de sus necesidades*/
 
sb.append("<li class=\"tag-popularity-");
sb.append(popularity);
sb.append("\"><span>");
 
if (tagName.equals(selectedTagName)) {
sb.append("<strong>");
sb.append(tagName);
sb.append("</strong>");
 
if (showAssetCount) {
sb.append("<span class=\"tag-asset-count\">");
sb.append(StringPool.SPACE);
sb.append(StringPool.OPEN_PARENTHESIS);
sb.append(count);
sb.append(StringPool.CLOSE_PARENTHESIS);
sb.append("</span>");
}
}
else {
portletURL.setParameter("tag", tag.getName());
 
sb.append("<a href=\"");
sb.append(portletURL.toString());
sb.append("\">");
sb.append(tagName);
 
if (showAssetCount) {
sb.append("<span class=\"tag-asset-count\">");
sb.append(StringPool.SPACE);
sb.append(StringPool.OPEN_PARENTHESIS);
sb.append(count);
sb.append(StringPool.CLOSE_PARENTHESIS);
sb.append("</span>");
}
 
sb.append("</a></span>");
}
sb.append("</span></li>");
 
}//Final del IF
 
}
 
sb.append("</ul><br style=\"clear: both;\" />");
 
return sb.toString();
 
Enjoy!!
Comentarios
No hay ningún comentario aún. Sea usted el primero.