Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
zil1924

Картинки для языков

Recommended Posts

Возможно реализовать чтобы у каждого языка были свои картинки. Например русский язык русские кнопочки у Английского кнопки на английском. То есть при выборе любого языка у него будут свои кнопки (Новая тема, быстрый ответ, ответить и т.д.).

Share this post


Link to post
Share on other sites

Чтобы реализовать, нужно связать с выбором языка либо:

выбор папки картинок для текущих шаблонов соответственно англо/русскоязычных + выбор css

либо выбор макросов с привязкой кнопок из разных папок

либо выбор скина - это самое простое.

 

В любом случае нужна модификация. Просто так это не реализовать.

Вероятно, в последнем варианте изменения будут минимальны.

Share this post


Link to post
Share on other sites

С макросами времени много потратить можно. Проще создать условие в исходниках и сделать два стиля.

 

Сейчас доделаю радио - день-два, потом над этим подумаю

Share this post


Link to post
Share on other sites
С макросами времени много потратить можно. Проще создать условие в исходниках и сделать два стиля.

 

Сейчас доделаю радио - день-два, потом над этим подумаю

Нужно какнибуть к языку сделать привязку скина.

Share this post


Link to post
Share on other sites

Есть какие новости ? =)

Share this post


Link to post
Share on other sites

Вообщем можно попробовать там.

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

на

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'] )
		{
			if ($ipsclass->member['skin'] == $ipsclass->member['language'] ) 
			{
				$ipsclass->member['skin'] = $data['ldir'];
			}
			$ipsclass->DB->do_update( 'members', array( 'language' => $data['ldir'], 'set' => "skin=".intval($ipsclass->member['skin']) ), 'id='.$ipsclass->member['id'] );
			$ipsclass->member['language'] = $data['ldir'];
		}
	}
}
}

 

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

Подстраивать id относительно просто. Надо зайти в утилиту управления sql. Там в таблице ibf_languages поправить значение ldir под id скина.

 

Попробуйте, но сделайте бэкап.

Share this post


Link to post
Share on other sites

После изменений в index.php дальше не особо понел что делать.

Share this post


Link to post
Share on other sites

У вас языки в папках. Надо эти папочки переименовать под уникальный идентификатор стилей (id). Идете в phpmyadmin или что там у вас для работы с mysql. Выбираете таблицу ibf_languages и жмете редактировать напротив одного из ваших языков. И меняете поле ldir на id скина, который хотите применить к языку. (У вас должно быть два скина, английский и русский. Можете создать дочерний скин, и применить к нему другую папку с кнопками)

Или выполняете запрос:

UPDATE ibf_languages SET ldir = 'ID_СКИНА' WHERE ldir='НАЗВАНИЕ_ПАПКИ_ДО_ПЕРЕИМЕНОВАНИЯ'

Потом меняете название папки, в cache/lang_cache

на то id скина.

 

Потом идете в админку и перестраиваете кэш.

tools & settings -> cache control -> languages -> update cache

 

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

 

Узнать id скина легко. В ниспадающем меню выбора скинов id указан. Просто посмотрите исходный текст.

Вот пример как здесь сделаны стили.

<form action="http://ipbskins.ru/forum/ipb.html?setskin=1" name="skinselectorbox" method="post">
<input type="hidden" name="skinurlbits" value="&cal_id=" />
<select name="skinid" onchange="chooseskin(this)">
	<optgroup label="Выбор стиля">

<option value='3'>IBR_Green</option><!--CHILDREN:3-->
<option value='6'>IBR_beige_style</option><!--CHILDREN:6-->
<option value='8'>IBR+</option><!--CHILDREN:8-->
	</optgroup>
</select>
</form>

value='8' означает, что id скина 8.

 

Пример. Я поставлю для русского языка скин ibr+

 

Выполняем запрос, или меняем вручную

UPDATE ibf_languages SET ldir = '8' WHERE ldir='ru'

Переименовываю папку "ru", что в "cache/lang_cache/", в "8".

Иду в админку и перестраиваю кэш.

 

Если не понятно или не работает пишите в icq, разберемся.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...