Перейти к содержимому
Русский язык для Invision Community 5

Как совместить несколько скинов?

Сделали новый скин форума ipb 3.1.4 Для каждого раздела свой стиль (отличаются только шапкой), привязали к разделам в "настройках стиля" форумов. Но теперь в этих разделах невозможно переключиться на стандартный стиль или на мобильную версию.

 

Как этого можно избежать?

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

Если скинов несколько, никак нельзя.

Делайте внутри одного скина смену шапки в зависимости от ID раздела. Закажите хук например для такого действия.

  • Автор

Делайте внутри одного скина смену шапки в зависимости от ID раздела.

Огромное спасибо! А подробней не подскажете, в какое конкретно место кода нужно исправления внести? Т.е. где код, который показ шапки обеспечивает?

Обратитесь к программистам, я просто не знаю как лучше.

Могу только сказать, что модифицировать нужно Global Templates > defaultHeader

Там выводится макрос для смены логотипа.

 

Если не только лого меняется, но и фон под ним, тогда придется править и / или

Global Templates > globalTemplate

  • Автор

Меняется картинка в середине шапки, все остальное остается. Это здесь поискать:

Если не только лого меняется, но и фон под ним, тогда придется править и / или

Global Templates > globalTemplate

Я же не знаю, как у Вас устроена шапка и каким способом привязана картинка.

Могу давать рекомендации только для стандартного варианта. Обратитесь к разработчику Ваших скинов (м.б. картинка вообще в css задана. Тогда надо не трогать html для шапки, а делать дополнительные css, которые заставить подгружаться в зависимости от категории)

  • Автор

Я же не знаю, как у Вас устроена шапка и каким способом привязана картинка.

Могу давать рекомендации только для стандартного варианта. Обратитесь к разработчику Ваших скинов (м.б. картинка вообще в css задана. Тогда надо не трогать html для шапки, а делать дополнительные css, которые заставить подгружаться в зависимости от категории)

В том то и дело, что разработчик, не знает, как по-другому сделать смену шапки. Завтра узнаю у него подробно, как там все организовано. Большое спасибо!

У вас сейчас используется подмена картинки:

#branding { background: url("http://**********/public/style_images/yatakaya/branding.png") no-repeat scroll center top transparent; }

 

Разные скины/файлы/кэши для разных разделов ради одной этой строки - не только трудозатратно (особенно в плане поддержки скинов), но еще и нерационально по ресурсам.

 

Общий принцип решения такой - найти в globalTemplate этот самый brading:

<div id='branding'>

 

И заменить на более сложный вариант:

<php>
$forum_id = 0;
if( !empty( $this->request['f'] ) ) {
	$forum_id = intval( $this->request['f'] ); 		
} elseif ( !empty( $this->request['t'] ) ) {
	if ( ! isset( $this->registry->class_forums->topic_cache['tid'] ) OR ! $this->registry->class_forums->topic_cache['tid'] )
	{
		$this->DB->build( array( 'select' => '*', 'from' => 'topics', 'where' => 'tid='.intval( $this->request['t'] ) ) );									
		$this->DB->execute();			
		$this->topic = $this->DB->fetch();
	}
	else
	{
		$this->topic = $this->registry->class_forums->topic_cache;
	}
	$forum_id = isset( $this->topic['forum_id'] ) ? $this->topic['forum_id'] : 0;
   }
</php>
<!-- Forum_id = {$forum_id}-->
		<div id='branding' style='background:url(/path/to/image_{$forum_id}.jpg)'>

 

В переменной {$forum_id} ниже этого блока ... всегда будет id текущего форума, либо 0, если мы на главной или на служебных страницах.

Изменено пользователем Fisana
URL варезник заменила на ****

Пока не делал, сразу хочу спросить - как назвать изображения, и будет ли этот вариант работать при переходе не только в раздел с форумами, но и в темы, принадлежащие форумам?

Работать будет и в темах, и в списках тем. Названия картинок - на ваш вкус. Я для примера написал "/path/to/image_{$forum_id}.jpg". {$forum_id} - это номер форума: 0 (главная + служебные страницы), 1, 2, 3, 4 и т.д. Какой форум за каким номером идет можно посмотреть прямо на главной странице по ссылками, например для ********** легко увидеть id = 11.

Изменено пользователем Fisana
Ссылку на варезник убила

Кстати, только сейчас посмртрела.

На форуме копирайты убиты :(

 

Зачем в теме мы варезник рекламируем? Если в инфо юзера прописано, слова не скажу. Это не видно никому, кроме администрации.

А в постах ссылки на сайты, нарушающие авторские права, запрещены.

 

ТС, приведите копирайты форума в соответствие с лицензионным соглашением.

  • Автор

А в постах ссылки на сайты, нарушающие авторские права, запрещены.

Извините, не знала. Это произошло случайно.

 

@Ritsuka, огромное спасибо за такой обстоятельный ответ!

 

Надеюсь, все получится! :)

Хм. Не обратил внимания даже. Думаю, раз уж на дизайн не пожадничали - с чего будут рисковать всем... Однако.

Неплохой способ, есть одно но - сами знаете в ipb нет разницы в урлах и id между категориями, форумами и подфорумами, поэтому (наверно) приходится делать несколько одинаковых изображений, их получается по 10-15 для каждой категории. Лучше заместо style задавать class, и в css перечислять все форумы и тд

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.