Drupal 에서 다국어 환경서 Logout시 기존 언어를 유지못하는 문제

Drupal 에서 다국어 적용시 Logout 하면
원래의 언어를 유지못하는데, 이를 해결하려면...

안타깝게도 드루팔의 핵심 모듈 하나를 수정해야 한다.
드루팔-설치폴더/modules/user/user.module 에서
아래와 같은 항목(함수 user_logout)을 찾는다.

그리고 다음과 같이 수정한다.

수정 전 :

/**
* Menu callback; logs the current user out, and redirects to the home page.
*/
function user_logout() {
global $user;

watchdog('user', t('Session closed for %name.', array('%name' => $user->name)));

// Destroy the current session:
session_destroy();

module_invoke_all('user', 'logout', NULL, $user);

// Load the anonymous user
$user = drupal_anonymous_user();

drupal_goto();
}

 
수정 후 :

/**
* Menu callback; logs the current user out, and redirects to the home page.
*/
function user_logout() {
global $user;

watchdog('user', t('Session closed for %name.', array('%name' => $user->name)));

$strOrgLang = $_SESSION['language']; // added!

// Destroy the current session:
session_destroy();

module_invoke_all('user', 'logout', NULL, $user);

// Load the anonymous user
$user = drupal_anonymous_user();

$_SESSION['language'] = $strOrgLang; // added!

if ( $_SESSION['language'] == "" ) drupal_goto();
else drupal_goto( $strOrgLang ); // 중요!
}

 

이렇게 작업하고 나서 다국어 환경에서 로그아웃 해 보면,
해당 언어를 잘 기억한다.

No votes yet