Перейти к контенту
  • 0

Разрешить гостям менять язык


zil1924

Вопрос

Как мне разрешить гостям менять язык. Пробовал мод мастера с ибповер. Мод то работает ну только в куках не сохраняется и при заходе на следующею страницу язык сбрасываться.
Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
Как мне разрешить гостям менять язык. Пробовал мод мастера с ибповер. Мод то работает ну только в куках не сохраняется и при заходе на следующею страницу язык сбрасываться.

Вам необходимо:

  1. Обратиться за помощью в тему поддержки соответствующей модификации на форуме товарища Master'а.
  2. Либо опубликовать весь исходный код сей модификации здесь, чтобы люди могли его посмотреть и указать на явные (или неявные) причины неработоспособности модификации.
  3. Либо попробывать самостоятельно адаптировать модификацию «Guest Lang and Skin Choser» для линейки 2.2—2.3 (если, конечно, выше названная модификация не является этой самой попыткой).

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Как мне разрешить гостям менять язык. Пробовал мод мастера с ибповер. Мод то работает ну только в куках не сохраняется и при заходе на следующею страницу язык сбрасываться.

Вам необходимо:

  1. Обратиться за помощью в тему поддержки соответствующей модификации на форуме товарища Master'а.
  2. Либо опубликовать весь исходный код сей модификации здесь, чтобы люди могли его посмотреть и указать на явные (или неявные) причины неработоспособности модификации.
  3. Либо попробывать самостоятельно адаптировать модификацию «Guest Lang and Skin Choser» для линейки 2.2—2.3 (если, конечно, выше названная модификация не является этой самой попыткой).

1) Спрашивал у автора мода.

2) Исохдный код:

 

//-----------------------------------------------------------------------------
// index.php
//-----------------------------------------------------------------------------

//==================
// найти
//==================

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'];
		}
	}
}
}

//==================
// добавить после
//==================

elseif( $ipsclass->input['setlanguage'] and $ipsclass->input['langid'] and !$ipsclass->member['id'] )
{
$ipsclass->my_setcookie("langchose", $ipsclass->input['langid']);
$ipsclass->member['language'] = $ipsclass->input['langid'];
}


//-----------------------------------------------------------------------------
// sources/ipsclass.php
//-----------------------------------------------------------------------------


найти

		if ( ( $this->is_bot == 1 ) and ( $this->vars['spider_suit'] != "" ) )
		{
				$skin_set = 1;
				$id	   = $this->vars['spider_suit'];
		}

//==================
// добавить после
//==================

		elseif ( !$this->member['id'] and !$this->member['skin'] and !$this->input['skinid'])
		{
				$skin_set = 1;
				$id	   = intval($this->my_getcookie("skinchose"));
		}

//==================
// найти
//==================
	if ( isset($this->input['setskin']) AND $this->input['setskin'] AND $this->member['id'] )
	{
		$this->DB->simple_construct( array( 'update' => 'members',
											'set'	=> "skin=".intval($id),
											'where'  => "id=".$this->member['id']
								   )	  );
		$this->DB->simple_exec();

		$this->member['skin'] = $id;
	}

//==================
// добавить после
//==================

		elseif( ($this->input['setskin']) and (!$this->member['id']) )
		{
				$this->my_setcookie("skinchose", intval($id));
				$this->member['skin'] = $id;
		}


//-----------------------------------------------------------------------------
// sources/classes/class_display.php
//-----------------------------------------------------------------------------

//==================
// найти
//==================
	if ( $this->ipsclass->vars['allow_skins'] and $this->ipsclass->member['id'] > 0 )
	{
		$skin_jump_options = $this->_build_skin_list();

		if( $skin_jump_options )
		{
			$skin_jump = $this->ipsclass->compiled_templates['skin_global']->global_skin_chooser( $skin_jump_options );
		}
		else
		{
			$skin_jump = "";
		}
	}
	else
	{
		$skin_jump = "";
	}

//==================
// заменить на
//==================

	if ( $this->ipsclass->vars['allow_skins'] )
	{
		$skin_jump_options = $this->_build_skin_list();

		if( $skin_jump_options )
		{
			$skin_jump = $this->ipsclass->compiled_templates['skin_global']->global_skin_chooser( $skin_jump_options );
		}
		else
		{
			$skin_jump = "";
		}
	}
	else
	{
		$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 = "";
	}

//==================
// заменить на
//==================

	$lang_jump = $this->ipsclass->compiled_templates['skin_global']->global_lang_chooser( $this->_build_language_list() );

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Отсутствует часть кода, которая осуществляет загрузку необходимого языка из cookies для гостей.

 

Решение: добавить в файл ./index.php проверку на гостя и попытку загрузки языка (так же стоит не забыть учесть, присутствует ли значение из cookies в локальном кеше ($ipsclass->cache['languages']), чтобы не получилось так, что после удаления того или иного языкового пакета у ряда гостей вместо языковых конструкций отображалось непойми что).

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Отсутствует часть кода, которая осуществляет загрузку необходимого языка из cookies для гостей.

 

Решение: добавить в файл ./index.php проверку на гостя и попытку загрузки языка (так же стоит не забыть учесть, присутствует ли значение из cookies в локальном кеше ($ipsclass->cache['languages']), чтобы не получилось так, что после удаления того или иного языкового пакета у ряда гостей вместо языковых конструкций отображалось непойми что).

Если не сложно то можешь по подробней написать.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Он ушёл в жестокий забот и больше модами не занимается. "Может быть потом, за деньги".
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.