Para redirigir a una página de una comunidad después de registrarse en Liferay, hay que agregar un Evento, entonces vamos a hacer lo siguiente:
portal-ext.properties
login.events.post=com.liferay.portal.events.MyLoginPostAction,\ com.liferay.portal.events.DefaultLandingPageAction
MyLoginPostAction.java
package com.liferay.portal.events; import .... public class MyLoginPostAction extends Action { private static Log _log = LogFactory.getLog(MyLoginPostAction.class); public void run(HttpServletRequest req, HttpServletResponse res) throws ActionException { try { Group group = this.getGroup(req); this.setLastPath(group, req); } catch(Exception e) { _log.error(e); throw new ActionException(e); } } private void getGroup(HttpServletRequest req) { return null; } private void setLastPath(Group group, HttpServletRequest req) throws PortalException, SystemException { long defaultPlid = LayoutLocalServiceUtil.getDefaultPlid(group.getGroupId()); Layout defaultLayout = LayoutLocalServiceUtil.getLayout(defaultPlid); HttpSession ses = req.getSession(); Map<String, String[]> params = new HashMap<String, String[]>(); params.put("p_l_id", new String[] { Long.toString(defaultLayout.getPlid()) }); LastPath lastPath = new LastPath("/c", "/portal/layout", params); ses.setAttribute(WebKeys.LAST_PATH, lastPath); } }
En este caso va a redirigir a la primer página publica de la comunidad y si esta no existe la redirige a la primer página privada.
Esto también puede ser para redirigir a una organización o a la página de un usuario.


Buen dia.
AL crear un cuenta nueva el combo genero(Hombre,Mujer) lo modifique por especialidades de medicos(Odontologo, Ginecologo,etc) la modificacion la realize en liferay-portal-tomcat-5.5-5.1.2\webapps\ROOT\html\portlet\login\create_account.jsp
Necesito Modificar Tambien en MiCuenta el combo genero Cambiandolo Por especialidades de medicos (Odontologo, Ginecologo,etc)
Pero no he encontrado el jsp para cambiarlo.
Al registrarse necesito dirigir la pagina dependiendo de la especialidad del medico.
Por lo tanto tengo que verificar la especialidad del medico registrado. para poder redirigir la pagina con la informacion de interes del medico.
Necesito de su ayuda para poder Solucinar esto.
Gracias
Respuestas a tu preguntas
Cualquier duda avisame.
————————–
Buen dia.
AL crear un cuenta nueva el combo genero(Hombre,Mujer) lo modifique por especialidades de medicos(Odontologo, Ginecologo,etc) la modificacion la realize en liferay-portal-tomcat-5.5-5.1.2\webapps\ROOT\html\portlet\login\create_account.jsp
Te recomiendo utilizar el entorno EXT de desarrollo.
ext-web\docroot\html\portlet\login\create_account.jsp // cuando haces el deploy sobreescribe el jsp original
Necesito Modificar Tambien en MiCuenta el combo genero Cambiandolo Por especialidades de medicos (Odontologo, Ginecologo,etc)
Pero no he encontrado el jsp para cambiarlo.
ext-web\docroot\html\portlet\enterprise_admin\edit_user_profile.jspf
Al registrarse necesito dirigir la pagina dependiendo de la especialidad del medico.
Por lo tanto tengo que verificar la especialidad del medico registrado. para poder redirigir la pagina con la información de interes del medico.
Yo crearía UserGroups, cada UserGroup representaria una especialidad. Cuando el usuario entra, deberias redirigir a la comunidad del UserGroup.
Donde guardas la especialidad del medico? Yo generalmente utilizo una tabla UserInfoExtra para agregar campos adicionales a la tabla User_, por cada fila en la tabla User_ deberia haber una en la tabla UserInfoExtra. Para esto deberias modificar la clase EditUserAction, que por lo que me imagino ya deberias estar haciendo.
ext-web\docroot\html\portlet\enterprise_admin\edit_user_profile.jspf
especialidad" >
< select name="
< % for(UserGroup userGroup : userGroupsList ){ %>
< option value="<%= userGroup.getUserGroupId() %>">< %= userGroup.getName() %>
< % } %>
< /select >
MyEditUserAction (copia todo lo de EditUserAction y modificar dicha accion en ext-web\docroot\WEB-INF\structs-config.xml por esta nueva implementacion)
…
long especialidad = ParamUtil.getString(actionRequest, “especialidad”); // valida que haya seleccionado una especialidad
UserInfoExtraLocalServiceUtil.addUser(user.getUserId(), especialidad);
….
MyLoginPostAction (aca vas a redireccionar a la comunidad del UserGroup que representa una especialidad, no te olvides de definir esta accion en el portal-ext.properties)
UserInfoExtra userInfoExtra = UserInfoExtraLocalServiceUtil.getUserInfoExtra(themeDisplay.getUserId());
UserGroup userGroup = UserGroupLocalServiceUtil.getUserGroup(userInfoExtra.getEspecialidad());
long plid = LayoutLocalServiceUtil.getDefaultPlid(userGroup.getGroupId();
HttpSession ses = req.getSession(); params = new HashMap ();
Map
params.put(”p_l_id”, new String[] { Long.toString(defaultLayout.getPlid()) });
LastPath lastPath = new LastPath(”/c”, “/portal/layout”, params);
ses.setAttribute(WebKeys.LAST_PATH, lastPath);
Necesito de su ayuda para poder Solucinar esto.
Gracias
Hola!!!
Tengo que redirigirme a una pagina privada después de registrarme, ya que cuando me registro me manda nuevamente a la opción de logeo, me logeo con la cuenta nueva y entro a la pagina privada, pero no quiero logearme despues de registrarme.
Realice la clase MyLoginPostAction.java en la siguiente ruta: login-ext\docroot\WEB-INF\ext-impl\src\com\liferay\portlet\login\action pero me marca 18 errores creo que son por las librerias, me gustaria saber que librerias importar y si es correcta la ruta donde puse la clase.
Estoy trabajando con Liferay 6.0.5 y tomcat 6.0.5
Muchas Gracias!!!!!!!!!!
Abri el .classpath del proyecto EXT y comproba si estan las librerias apuntan correctamente.
Te recomiendo que utilices plugins del tipo HOOK para modificar esto. Brevemente voy a estar escribiendo como hacerlo.
Hola!!
Ya realice el HOOK y modifique el portal-ext.properties, pero no puedo entrar a la pagina privada despues de registrarme, me tengo que resgistrar despues me regresa a login me autentico y ya puedo entrar, pero no quiero esto, con el solo hecho de registrarme exitosamente quiero entrar automaticamente a la pagina privada.
Mi HOOK le tuve que quitar algunas cosas para que no marcara error quedo de la siguiente manera:
package com.flujo.login;
import java.util.HashMap;
import java.util.Map;
import com.liferay.portal.kernel.events.Action;
import com.liferay.portal.kernel.events.ActionException;
import com.liferay.portal.model.Group;
import com.liferay.portal.service.LayoutLocalServiceUtil;
import com.liferay.portal.model.*;
import com.liferay.portal.kernel.struts.LastPath;
import com.liferay.portal.kernel.util.WebKeys;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class MyLoginPostAction extends Action {
//private static Log _log = LogFactory.getLog(MyLoginPostAction.class);
public void run(HttpServletRequest req, HttpServletResponse res) throws ActionException {
try {
Group group = this.getGroup(req);
this.setLastPath(group, req);
} catch(Exception e) {
// _log.error(e);
throw new ActionException(e);
}
}
private Group getGroup(HttpServletRequest req) {
return null;
}
private void setLastPath(Group group, HttpServletRequest req) throws com.liferay.portal.kernel.exception.SystemException, com.liferay.portal.kernel.exception.PortalException {
long defaultPlid = LayoutLocalServiceUtil.getDefaultPlid(group.getGroupId());
Layout defaultLayout = LayoutLocalServiceUtil.getLayout(defaultPlid);
HttpSession ses = req.getSession();
Map params = new HashMap();
params.put(“p_l_id”, new String[] { Long.toString(defaultLayout.getPlid()) });
LastPath lastPath = new LastPath(“/c”, “/portal/layout”, params);
ses.setAttribute(WebKeys.LAST_PATH, lastPath);
}
}
Y en el portal-ext.properties no se que paquete ponerle:
login.events.post=com.flujo.login.MyLoginPostAction,\
com.liferay.portal.events.DefaultLandingPageAction
ó
login.events.post=com.liferay.portal.events.MyLoginPostAction,\
com.liferay.portal.events.DefaultLandingPageAction
Espero me puedan ayudar
Gracias!!!!!