Главная » IPB » Статьи IPB » Выбор языка гостями — становимся ближе (v2.3)
Распечатать статью

Выбор языка гостями — становимся ближе (v2.3)

На интернациональных форумах может оказаться востребованной функция смены языков незарегистрированными пользователями. Добавляя эту возможность, вы существенно облегчите доступ к вашему форуму иностранцам. Им не придется прибегать к использованию переводчиков и других онлайн/оффлайн средств для успешной ориентации по вашему форуму. Ведь даже самое простое действие – регистрация, может вызвать затруднения.

Установка

Стандартными возможностями форума эту функцию не реализовать, придется вносить необходимые изменения в файлы. Перед началом, не забудьте сделать резервные копии изменяемых файлов.

Открываем файл: ./index.php и находим строки:

//--------------------------------
// Did we choose a language?
//--------------------------------
if ( (isset($ipsclass->input['setlanguage']) AND $ipsclass->input['setlanguage']) AND (isset($ipsclass->input['langid']) AND $ipsclass->input['langid']) AND $ipsclass->member['id'] )
{
if ( is_array( $ipsclass->cache['languages'] ) and count( $ipsclass->cache['languages'] ) )
{
foreach( $ipsclass->cache['languages'] as $data )
{
if ( $data['ldir'] == $ipsclass->input['langid'] )
{
$ipsclass->DB->do_update( 'members', array( 'language' => $data['ldir'] ), 'id='.$ipsclass->member['id'] );
$ipsclass->member['language'] = $data['ldir'];
}
}
}
}

 

Заменяем их на:

//--------------------------------
// Did we choose a language?
//--------------------------------if ( (isset($ipsclass->input['setlanguage']) AND $ipsclass->input['setlanguage']) AND (isset($ipsclass->input['langid']) AND $ipsclass->input['langid']) )
{
if ( is_array( $ipsclass->cache['languages'] ) and count( $ipsclass->cache['languages'] ) )
{
foreach( $ipsclass->cache['languages'] as $data )
{
if ( $data['ldir'] == $ipsclass->input['langid'] )
{
if( $ipsclass->member['id'] == 0 )
$ipsclass->my_setcookie( ‘language’, $data['ldir'] );
}
else
{
$ipsclass->DB->do_update( ‘members’, array( ‘language’ => $data['ldir'] ), ‘id=’.$ipsclass->member['id'] );
}

$ipsclass->member['language'] = $data['ldir'];
}
}
}
}

Сохраняем внесенные изменения и закрываем файл ./index.php.

Открываем следующий файл ./sources/ipsclass.php и находим строку:

$this->lang_id = isset($this->member['language']) ? $this->member['language'] : $this->vars['default_language'];

 

Перед ней вставляем код:

if( $this->member['id'] == 0 )
{
$this->member['language'] = $this->my_getcookie( 'language' );
}

Сохраняем внесенные изменения и закрываем файл ./sources/ipsclass.php.

Открываем следующий файл ./sources/classes/class_display.php и находим строки:

//-----------------------------------------
// Showing skin jump?
//-----------------------------------------
if ( $this->ipsclass->member['id'] > 0 )
{
$lang_jump = $this->ipsclass->compiled_templates['skin_global']->global_lang_chooser( $this->_build_language_list() );
}
else
{
$lang_jump = "";
}

 

Заменяем их на:

//-----------------------------------------
// Showing skin jump?
//-----------------------------------------
$lang_jump = $this->ipsclass->compiled_templates['skin_global']->global_lang_chooser( $this->_build_language_list() );

Сохраняем внесенные изменения и закрываем файл ./sources/classes/class_display.php. После проделанных действий, гостям будет доступна функция выбора языка.

Источник:  ipb-faq.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи