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.
Tags: desarrollo
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