En un proyecto que hice hace un año mas o menos tuve que crear un Portlet que gestionara datos del perfil de los usuarios de una comunidad Liferay.
Como me pareció muy interesante voy ha explicar en pocas líneas como se hace.
Primero de todo, para hacer modificaciones en los perfiles de Liferay se utilizan las classes: User que encapsula los datos del usuario, Contact que gestiona los datos de contacto y UserServiceUtil para realizar las operaciones.
Primero de todo para obtener los datos del usuario a partir del Id de usuario. En este ejemplo lo hacemos a partir del Id de usuario logueado:
User user = UserLocalServiceUtil.getUser( themeDisplay.getUserId() );
Contact contact = user.getContact();
A partir de aquí podemos hacer distintas operaciones:
Añadir un usuario (Cogiendo muchos datos del usuario actual):
newUser=UserServiceUtil.addUser(
user.getCompanyId(),
true,
"",
"",
true,
"",
email,
user.getLocale(),
nom,
cognom1,
cognom2,
contact.getPrefixId(),
contact.getSuffixId(),
true,
Integer.parseInt( aniversariMonth ),
Integer.parseInt( aniversariDay ),
Integer.parseInt( aniversariYear ),
"",
user.getOrganizationIds(),
true);
Modificar los datos de usuario (Atención que en el ejemplo no modificamos ningún dato, los cogemos todos de los que ya tenemos):
UserServiceUtil.updateUser(
user.getUserId(),
user.getPasswordUnencrypted(),
false,
user.getScreenName(),
user.getEmailAddress(),
user.getLanguageId(),
user.getTimeZoneId(),
user.getGreeting(),
user.getComments(),
user.getFirstName(),
user.getMiddleName(),
user.getLastName(),
contact.getPrefixId(),
contact.getSuffixId(),
user.getMale(),
daniversariMonth,
daniversariDay,
daniversariYear,
contact.getSmsSn(),
contact.getAimSn(),
contact.getFacebookSn(),
contact.getIcqSn(),
contact.getJabberSn(),
contact.getMsnSn(),
contact.getMySpaceSn(),
contact.getSkypeSn(),
contact.getTwitterSn(),
contact.getYmSn(),
contact.getJobTitle(),
user.getOrganizationIds()
);
Actualizar el Portrait de usuario (Imagen):
imagen = imagen.getScaledInstance( wi,he, java.awt.Image.SCALE_DEFAULT );
ByteArrayOutputStream bas = new ByteArrayOutputStream();
ImageIO.write(toBufferedImage(imagen),"jpeg", bas);
byte[] data = bas.toByteArray();
UserServiceUtil.updatePortrait( Long.parseLong(userid), data );

Hola Alberto
Soy un estudiante cubano que quiere hacer su tesis en Liferay, voy a utilizar PHP y como BD postgres, Mi tesis es un Sistema de Informacion de Mercadotecnia y estoy aprendiendo por las malas con el portal ya que soy practicamente pionero en mi escuela con este portal, necesito de tu ayuda por favor.
gracias de antemano
Hola Osmany,
Pregunta lo que quieras, pero creo que vas mal. Liferay esta desarrollado en Java.
Saludos,
Hola Alberto,
Hay que hacer algun import para usar tu código?
Gracias!
Hola Marc,
Te paso todos los que tengo en la clase:
import javax.portlet.*;
import org.apache.commons.logging.*;
import com.liferay.portal.kernel.dao.jdbc.*;
import org.apache.commons.fileupload.*;
import com.liferay.portal.theme.*;
import com.liferay.portal.util.*;
import com.liferay.portal.service.*;
import com.liferay.portal.model.*;
import com.liferay.portal.kernel.util.*;
import com.liferay.portal.service.persistence.*;
import org.hibernate.*;
import org.hibernate.cfg.*;
Saludos,
Hola Alberto somos unos estudiantes en practicas en Berlin,y nos han pedido si podiamos hacer un servlet con portlets de subida modificacion y descarga de archivos. No he encontrado mucha informacion acerca del tema. A ver si era posible que nos orientaras un poco y en que sentido va orientado el codigo. Muchas gracias!.Un saludo desde Berlin.
Hola Isis,
Carai, desde Berlin!!!. Pues si queréis hacer un portlet para Liferay lo mejor es que empezeis instalandos el liferay SDK desde aquí(http://www.liferay.com/downloads/liferay-portal/additional-files), también podéis encontrar gran cantidad de ejemplos de los “Community pluggins” y los “Official pluggins” (Podéis descargaros los war y después descomprimirlos, son ficheros .zip).
Una vez hayáis creado el primer portlet os puedo passar trozos de código que tengo hecho por mail, comentadmelo.
Por cierto, perdón por la tardanza en contestar, he estado bastante liado.
Saludos,
Albert
Cordial Saludo
Soy un rotante y me han puesto a buscar un portlet que que permita la creación de tablas dinámicas, he buscado pero no encuentro lo que me han pedido, por casualidad encontré tu blog el cual me parece muy bueno, entonces te pregunto si conoces donde puedo buscar esa clase de portlet, o conoces algo que me ayude para ello.
Muchas Gracias
Hola Ignacio, pues la verdad es que no se muy bien a que te refieres con ‘tablas dinamicas’. Has probado a buscar en los portlets oficiales y de la comunidad de liferay?¿ Un saludo,
Hola
e estado desarrollando con flex y php.
ahora me piden que lo convierta a un portlet para poderlo introducir a liferay mi problema es como hacer correr php en glassfish
Hola Eddy,
Directamente no vas a poder, normalmente lo que se hace es hacer correr un apache y hacer llamadas del glassfish al apache. La forma mas “sencilla” que se me ocurre es através de un IFrame.
De todos modos no se quanto de difícil es pasar la lógica del PHP a Java. Esa quizás seria la solución mas elegante.
Siento no poder ayudarte mas.
Saludos,
Hola Albert,
Estoy realizando un estudio sobre LifeRay. Te cuento mi problema.
Tengo un portal desarrollado en J2EE (jsps, portlets, multiidioma y cumpliendo AA Accesibilidad). El problema es que se encuentra muy mal estrucuturado y el mantenimiento es muy costoso. El planteamiento sería migrar a LifeRay (manteniendo la taxonomía, css, contenidos,…). Estoy intentando ver buscar herramientas que me faciliten la transición pero no encuentro nada. Si me puedes dar una pista o indicarme un camino “sencillo” te lo agradecería.
Un saludo.
Hola Raúl,
Pues cone sa información no puedo decirte gran cosa. Quizà te interesaria desarrollar algún portlet para poder llevar una gestión mejor de los contenidos.
Dame alguna pista mas, porque sinó no se que decirte. Aunque ya te adelanto que no hay muchas herramientas para facilitar una migración de este tipo de portales, se requiere de un analisi previo bueno para poder migrar sin problemas.
Saludos,
Hola, desde Rep. Dom. Quiero saber si liferay me permitiria crear un website donde cada usuario guarde y muestre informacion de su perfil, asi como administrar la parte de registro y logeo de usuarIos, mensajería interna, sistema de “friends”, sistema de detección de online u offline, comentarios, upload de fotografías y embed de videos. La pregunta es si liferay posee estas funcionalidad y que solo sea cuestion de activarlas y darles estilo. Sino es asi, que tanto puedo hacer con liferay?
Hola Alexandra,
Si, Liferay posee la mayoria de estas funcionalidades, aunque alguna la tendrias que desarrollar tu (Como por ejemplo el Streaming de vídeos).
Te aconsejaría que algún consultor bueno en Liferay te hiciera un poco de análisis de tu proyecto, antes de lanzarte a la piscina. Saludos,