Profile2 es un módulo de Drupal 7 que permite crear múltiples tipos de perfiles, a los cuales se les pueden asignar roles y permisos. Una de las funcionalidades clave de Profile2 es el módulo "Profile pages", que permite que cada instancia de Profile2 tenga su propia página. De esta manera, cada usuario puede tener un enlace a su perfil desde un menú y acceder a él para modificarlo.
Problema del URL No Amigable
Profile2 asigna automáticamente una URL a cada página de perfil, pero en algunos casos, esta URL no es amigable para el usuario. Para resolver este problema, podemos usar el módulo Pathauto para asignar un alias a cada perfil cada vez que un usuario se registre o edite su perfil. Esto hace que los perfiles sean accesibles mediante un alias más amigable.
Caso de Uso: Perfil de Compañía
En este caso, cada usuario de nuestra aplicación tendrá un perfil de Profile2 llamado "compañía", en el que cada usuario será el "dueño" de una compañía. El objetivo es crear un alias personalizado para cada perfil de compañía utilizando el nombre de la compañía, de manera que el perfil sea accesible de forma amigable.
Pasos para Desarrollar el Módulo Personalizado
Para lograr este objetivo, debemos seguir los siguientes pasos:
Formato del Alias Personalizado
El formato para el alias será el siguiente:
La razón principal para usar el nombre de la compañía en el alias es que es más amigable para el usuario y cada usuario debe asignar un nombre único a su compañía.
Implementación del Módulo Personalizado
Para implementar este módulo, utilizaremos el hook hook_profile2_presave
, proporcionado por el API de Profile2. Este hook es llamado cada vez que un perfil de Profile2 se inserta o edita en la base de datos.
pathauto_cleanstring
y toAscii
.
Código del Módulo Personalizado
A continuación se muestra un ejemplo de cómo implementar este proceso en el hook_profile2_presave:
Explicación del Código
/company/{company_name}
y lo guardamos.
Hemos creado un módulo personalizado que permite acceder a cada perfil de Profile2 de compañía utilizando el nombre de la compañía como alias, haciendo que la URL sea más amigable para el usuario. Este módulo mejora la experiencia de usuario y facilita la navegación en la aplicación.