« Обратно

Liferay 6.1, trabajando con categorías y etiquetas programáticamente

Introducción

La gestión de categorías y etiquetas es un proceso muy habitual dentro de Liferay Portal. Se pueden gestionar desde el panel de control y mediante portlets de Liferay.

Pero cuando necesitamos manejar este concepto desde nuestros propios desarrollos, ¿qué debemos hacer? Pues debemos tener en cuenta los siguientes elementos.

Selección de categorías desde la interface web

Liferay Portal nos ofrece la etiqueta JSP aui:input para ofrecer al usuario un componente para seleccionar las categorías disponibles:

<aui:input classPK="<%= assetClassPK %>"
                  model="<%= DLFileEntry.class %>"
                  name="categories"
                  type="assetCategories"
                  fieldParam="categories"
                  field="categories" />

Como se puede ver, la propiedad type debe ser igual a assetCategories, la propiedad model debe identificar la clase asociada a la entidad sobre la que queremos definir categorías y classPK debe ser el identificador de la entidad.

 

Selección de etiquetas desde la interface web

La etiqueta aui:input nos permite también trabajar con el selector de etiquetas. El atributo type debe ser igual a assetTags:

<aui:input classPK="<%= assetClassPK %>"
               model="<%= DLFileEntry.class %>"
               name="tags"
               type="assetTags" />

 

Dentro de un formulario

Incluir estos componentes dentro de un formulario es tan simple como:

<aui:form action="<%= mostrarAccion %>" method="post" name="fm">
...

<aui:fieldset>

<aui:input classPK="<%= assetClassPK %>" model="<%= DLFileEntry.class %>"

name="categories" type="assetCategories" fieldParam="categories" field="categories" />
<aui:input classPK="<%= assetClassPK %>" model="<%= DLFileEntry.class %>" name="tags" type="assetTags" />
</aui:fieldset>   
...
</aui:form>

Recuperación de categoría y etiquetas

La recuperación de las categorías y etiquetas seleccionadas por un usuario dentro del código de nuestros portlets, OBLIGATORIAMENTE, deben hacerse mediante la clase ServiceContext de Liferay Portal.

@ProcessAction(name="getInformation")
public void getInformation(ActionRequest actionRequest, ActionResponse actionResponse){

try {

  ServiceContext context =
  ServiceContextFactory.getInstance(actionRequest);
  long [] categories = context.getAssetCategoryIds();
  String [] tags = context.getAssetTagNames();
   
} catch (PortalException e) {
    e.printStackTrace();
} catch (SystemException e) {
    e.printStackTrace();
}
...

Como se puede ver en el ejemplo, los métodos getAssetCategoryIds() y getAssetTagNames() nos permiten recuperar las categorías y etiquetas seleccionadas por el usuario a través de la interfaz web.

Conclusión

Como habéis podido comprobar, la gestión de categorías y etiquetas dentro de nuestros portlets es muy simple. Os recomendamos su uso.

 

Коментари
Trackback URL:

comments powered by Disqus