drupal 7 – Redirigir al usuario al idioma preferido después de iniciar sesión

Pregunta:

Después de que cualquier usuario inicie sesión, quiero mostrarles a todos los usuarios la misma página, pero en su idioma preferido. Entonces, quiero redirigir al usuario a la URL de la página con el idioma adjunto, como http://example.com/pt o http://example.com/en .

¿Cuál es la mejor manera de realizar esta redirección?

Respuesta:

Puede utilizar hook_user_login que se llama después de que un usuario hook_user_login sesión correctamente en el sitio web. Este gancho pasa el objeto de usuario como un argumento que puede utilizar para recuperar el idioma del usuario.

Para los idiomas, puede hacer uso de language_list , que devuelve una matriz con los idiomas definidos en su sitio web Drupal. Y para la redirección, drupal_goto hace el trabajo.

Aquí hay un código de muestra que podría ayudarlo más:

function YOURMODULE_user_login(&$edit, $account)
{
    // retrieve user language
    $user_language = $account->language;

    // don't do anything if no language is defined
    if (!$user_language) {
        return;
    }

    // verify if language exists
    $languages = language_list();
    if (!isset($languages[$user_language])) {
        return;
    }

    // verify if language is enabled
    if (!$languages[$user_language]->enabled) {
        return;
    }

    // redirect to preferred language homepage
    drupal_goto('<front>', array(
        'language' => $languages[$user_language],
    ));
}

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım