Forums

Home » Liferay Portal » Español » 3. Desarrollo

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Cecilia Lopez Gonzalez
Recuperar una imagen subida con el portlet Gallery Image en mi propio portt
October 15, 2008 8:35 AM
Answer

Cecilia Lopez Gonzalez

Rank: Junior Member

Posts: 27

Join Date: September 25, 2008

Recent Posts

Hola!

No llevo mucho tiempo utilizando liferay pero ya he creado varios portlets utilizando el entorno SDK y he aprendido a utilizar los portlets que trae Liferay. Antes de comenzar con el entorno EXT, se me pasó por la cabeza el poder recuperar datos de la bd de liferay en mi propio portlet externo, es decir, en un portlet que yo he creado deseo recuperar informacion de una imagen a través de su imageId que puedo observarla en la bd de liferay, incluso recuperar la imagen... es un ejemplo. ¿ Cómo puedo hacerlo? Yo tengo montado un entorno ext y a parte tengo un portlet creado con el SDK pues bien desde este último quiero acceder a informacion de alguna tabla propia de liferay y recuperar lo que yo quiera.

También me gustaría que me pudieses aconsejar algun manual de comó utilizar el entorno ext dado que el código no tiene ningún comentario y la estructura que genera es algo difícil de comprender. Hay un portlet creado por Brian Chan liferay-portal-ext-5.1.2 que por lo que veo es un ejemplo de creacion de un portlet con el entorno EXT. El portlet en sí no hace nada, solo pulsas y cuenta 1, 2, 3 pero la estructura que monta para ello es impresionante, necesito antes poder comprender mejor la estructura y cómo poder desarrollar yo lo que quiero. Cualquier manual o enlace bueno será bien venido ....


Gracias
Mario Muñoz
RE: Recuperar una imagen subida con el portlet Gallery Image en mi propio p
October 16, 2008 6:55 AM
Answer

Mario Muñoz

Rank: Junior Member

Posts: 43

Join Date: August 27, 2007

Recent Posts

Hola Cecilia,

Te pongo aquí un fragmento de código que uso en algunos de nuestros portlets para hacer algo parecido a lo que quieres (creo):

 1
 2long imageId;
 3        ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
 4       
 5        long companyId = themeDisplay.getCompanyId();
 6        long portletGroupId = themeDisplay.getPortletGroupId();
 7       
 8        List folderIds = new ArrayList();
 9        folderIds.add(new Long(0));
10        IGFolderLocalServiceUtil.getSubfolderIds(folderIds, portletGroupId, 0);
11        long [] folderIdsArray = StringUtil.split(StringUtil.merge(folderIds), 0L);
12       
13        SearchContainer searchContainer = new SearchContainer(request, null, null, SearchContainer.DEFAULT_CUR_PARAM, SearchContainer.DEFAULT_DELTA, response.createActionURL(), null, "No se obtuvieron resultados");
14        Hits hits = IGFolderLocalServiceUtil.search(companyId, portletGroupId, folderIdsArray, fileName, searchContainer.getStart(), searchContainer.getEnd());
15       
16        List results = new ArrayList(hits.getDocs().length);
17       
18        for (int j = 0; j < hits.getDocs().length; j++) {
19            Document doc = hits.doc(j);
20            imageId = GetterUtil.getLong(doc.get(Field.ENTRY_CLASS_PK));
21            IGImage image = IGImageLocalServiceUtil.getImage(imageId);
22            results.add(image);
23        }
24       
25        log.info("Tamaño de la lista de imágenes encontradas="+results.size());


En nuestro caso estamos usando la clase SearchContainer para buscar imágenes comparando con el nombre de archivo en el que las guardamos (el campo fileName), que coincide con la descripción de la imagen si ésta no se modifica. Los resultados se guardan en la lista "results" y son objetos de tipo IGImage. No te puedo ayudar demasiado sobre el significado de los parámetros de los métodos porque, como bien dices, la documentación es escasa y los comentarios en los fuentes de Liferay son prácticamente nulos.

Te agradecería que si encuentras algún tutorial "para tontos" sobre desarrollo en el entorno de extensión lo publicases por aquí, o si al fin consigues modificar clases de Liferay usando este entorno escribas un pequeño "howto". Cada vez que he intentado hacer alguna modificacion, he encontrado bastantes problemas.

Espero que te ayude.

Saludos!

Mario.
Cesar Ingaruca
RE: Recuperar una imagen subida con el portlet Gallery Image en mi propio p
October 16, 2008 12:41 PM
Answer

Cesar Ingaruca

Rank: Regular Member

Posts: 143

Join Date: August 12, 2008

Recent Posts

Hola Cecilia, para resolver eso tendrías que fijarte en los portlets desarrollados por liferay
por ejemplo en el jsp edit_image.jsp dentro del portlet de galeria de imagenes encontraras esto:

<a href="<%= themeDisplay.getPathImage() %>/image_gallery?img_id=<%= image.getLargeImageId() %>" target="_blank">
<img alt="<%= image.getDescription() %>" border="1" src="<%= themeDisplay.getPathImage() %>/image_gallery?img_id=<%= image.getSmallImageId() %>" />
</a>


te preguntaras que es el LargeImageId y el SmallImageId pues en la tabla IGimage por cada
Imagen subida se guarda una imagen pequeña(para visualizar) y otra como la original y estos
Id's apuntan a la tabla Image que es en donde se guardan las imagenes propiamente dichas.
Al parecer estas iniciando con el ext es muy bueno. A mi opinión el liferay es muy completo
solo es cosa de meterse en el código si quieres te puedo hechar una mano con el ext.

Te dejo mi correo.

cingaruca@gmail.com
gbcesar_25@hotmail.com

Espero que te sea de ayuda.
Cecilia Lopez Gonzalez
RE: Recuperar una imagen subida con el portlet Gallery Image en mi propio p
October 28, 2008 1:50 AM
Answer

Cecilia Lopez Gonzalez

Rank: Junior Member

Posts: 27

Join Date: September 25, 2008

Recent Posts

Hola César,

Muchas gracias por contestarme. He estado muy liada aprendiendo Liferay como puedo, me vendrá muy bien tu ayuda.
Lo que he podido ver ahora que stoy desarrollando con el entorno ext, es la falta de documentación y códigos sin ningún tipo de comentario. No comentan ni lo que hace cada procedimiento.... No sé si es la forma de desarrollar de ellos, pero un código sin ningún tipo de comentario no facilita nada el desarrollo. Mi queja para los desarrolladores de Liferay es comentarios en el código!! porque sin apenas documentación y sin comentarios hay que echar bastante tiempo para comprender un poco esto.

Me pondré en contacto contigo porque ahora mismo tengo demasiadas dudas, gracias.
Jorge Ferrer
RE: Recuperar una imagen subida con el portlet Gallery Image en mi propio p
November 12, 2008 4:00 AM
Answer

Jorge Ferrer

LIFERAY STAFF

Rank: Liferay Legend

Posts: 2768

Join Date: August 31, 2006

Recent Posts

Hola Cecilia,

Sólo quería decir que los desarrolladores de Liferay somos conscientes de los inconvenientes de que no haya Javadoc en las APIs públicas. Es algo que tenemos previsto corregir lo antes posible. Eso en combinación con las colaboraciones que van haciendo cada vez más miembros de la comunidad en el wiki creo que hará que el desarrollo sobre Liferay esté cada vez mejor documentado.