Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Стили IPB 2.3.1

Интересует вот такая вещь!

Один стиль для всех, а для пользователей отдельный! Как можно реализовать? (IPB 2.3.1)

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

  • Автор

Вопрос:

1. Что такое ID Стиля?

2. Что такое ID Пользователя

?

(чучуть подробнее, куда что вписать)

Изменено пользователем ProgmanX

ID = номер.

Админцентр -> Прочее -> Управление SQL -> Инструменты ( ACP -> Admin -> SQL Management ->SQL Toolbox )

внизу введите

select g_id, g_title from ibf_groups

и запишите ID нужных групп. ID - это циферка слева (столбик g_id), название группы - это буковки справа (столбик g_title).

--

select set_skin_set_id, set_name from ibf_skin_sets

и запишите ID нужных вам скинов. ID - это циферка слева (столбик set_skin_set_id), название группы - это буковки справа (столбик set_name).

--

'ID группы 1' => 'ID стиля для этой группы (1)',

что здесь делать ясно?

пишите ID группы, и скин, который будет по-умолчанию у нее.

 

Пример для рут админа

'4' => '2',

группа с ID 4 будет использовать по-умолчанию скин с ID 2

  • Автор

Что то не работает!!! (есть ли ошибки???)

	if ( $skin_set != 1 AND $this->vars['allow_skins'] == 1 )
			{
				if ( $this->input['skinid'] )
				{
					$id		= $this->input['skinid'];
					$skin_set  = 1;
				}
				  else
				{ 
					if ( $this->member['skin'] )
					{
						$id	   = $this->member['skin'];
						$skin_set = 1;
					}
					else
					{
						$my_skins_array = array (   '2' => '16',
													'6' => '16',
													'7' => '16',
													'8' => '16',
													'10' => '16',
												 );
						if(isset($my_skins_array[ $this->member['mgroup'] ]))
						{
							$id	   = $my_skins_array[ $this->member['mgroup'] ];
							$skin_set = 1;
						}
					}
				}
			}
		}
	}

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

--

написано правильно.

Можете заменить код

						if ( $this->member['skin'] )
					{
						$id	   = $this->member['skin'];
						$skin_set = 1;
					}
					else
					{
						$my_skins_array = array (   '2' => '16',
													'6' => '16',
													'7' => '16',
													'8' => '16',
													'10' => '16',
												 );
						if(isset($my_skins_array[ $this->member['mgroup'] ]))
						{
							$id	   = $my_skins_array[ $this->member['mgroup'] ];
							$skin_set = 1;
						}
					}

на

$my_skins_array = array (   '2' => '16',
													'6' => '16',
													'7' => '16',
													'8' => '16',
													'10' => '16',
												 );
						if(isset($my_skins_array[ $this->member['mgroup'] ]))
						{
							$id	   = $my_skins_array[ $this->member['mgroup'] ];
							$skin_set = 1;
						}

но тогда у юзера пропадет право выбора своего стиля

--

У вас стиль "по-умолчанию" выставлен?!?!

Это не тот, что вы выбираете внизу, а в утилитах для скинов надо проставить для всех юзеров 1 стиль "по-умолчанию"!!!

 

старайтесь не употреблять восклицательные знаки. Не думаю, что это кому-то нравится.

  • Автор

Один стиль стоит по умолчанию, "не скрыт от пользователей!!! (и в подфорумах)

Я же в коде пытаюсь установить другой стиль для нескольких групп!!!

Он не стоит по умолчанию и не используется в подфорумах, "не скрыт от пользователей"!!!

 

В этом коде (что ниже) он и сам не функционирует но и нельзя авторизоватся на форуме!!!

 if ( $skin_set != 1 AND $this->vars['allow_skins'] == 1 )
			{
				if ( $this->input['skinid'] )
				{
					$id		= $this->input['skinid'];
					$skin_set  = 1;
				}
				  else
				{ 
					if ( $this->member['skin'] )
					{
						$id	   = $this->member['skin'];
						$skin_set = 1;
					}
					else
					{
						$my_skins_array = array (   '2' => '16',
													'6' => '16',
													'7' => '16',
													'8' => '16',
													'10' => '16',
												 );
						if(isset($my_skins_array[ $this->member['mgroup'] ]))
						{
							$id	   = $my_skins_array[ $this->member['mgroup'] ];
							$skin_set = 1;
						}
					}
				}
			}
		}
	}

В этом коде (что ниже) он просто не работает! Стиль как был по умолчанию для всех так и остался!

				//-----------------------------------------
			// Are we allowing user chooseable skins?
			//-----------------------------------------

 if ( $skin_set != 1 AND $this->vars['allow_skins'] == 1 )
			{
				if ( $this->input['skinid'] )
				{
					$id		= $this->input['skinid'];
					$skin_set  = 1;
				}
				  else
				{ 
				  $my_skins_array = array (   '2' => '16',
													'6' => '16',
													'7' => '16',
													'8' => '16',
													'10' => '16',
												 );
						if(isset($my_skins_array[ $this->member['mgroup'] ]))
						{
							$id	   = $my_skins_array[ $this->member['mgroup'] ];
							$skin_set = 1;
						}
				}
			}
		}
	}

Каковы могут быть еще советы?

Изменено пользователем ProgmanX

ладно!!! вечером проверю, что не так!!! подождите!!!

 

 

 

 

added: :) :) :)

Изменено пользователем SomehaiN

  • Автор

Буду ждать...

ну вот и вечер наступил!!!

 

Проверил!!! Как ни странно, но все работает!!! Я сделал в точности что вы просили!

Стиль по умолчанию для группы/групп!
Если юзер выбрал другой стиль, то сие не будет отрабатываться! А если хотите, чтобы у пользователя не было права выбора своего стиля, и скрипт не смотрел на его выбор, надо делать так.
./sources/ipsclass.php
----------------------
найти
----------------------
				else if ( $this->member['skin'] )
				{
					$id	   = $this->member['skin'];
					$skin_set = 1;
				}
----------------------
заменить на
----------------------
	else
				{ 
					$my_skins_array = array (  'ID группы' => 'ID стиля для этой группы',
												 );
					if(isset($my_skins_array[ $this->member['mgroup'] ]))
					{
						$id	   = $my_skins_array[ $this->member['mgroup'] ];
						$skin_set = 1;
					}
				}

Этот вариант, и предыдущий работают!!! Проверял!

 

Еще раз повторяю, если хотите чтобы работал первый вариант, сделайте

в утилитах для скинов надо проставить для всех юзеров 1 стиль "по-умолчанию"!!!

 

==

ps: да, мне тоже смешно... но порой бесит.

  • Автор

- еще одна мелочь!

Я запутался, где выставляется стиль для всех юзеров по умолчанию???

:)

ACP - Внешний Вид

  • Автор

При включении разрешения выбора стиля пользователями!

У меня заработала последняя версия кода (та что мол не реагирует на выбор стиля пользователем, что является далеко не так)

Я в общем добился с помощью andaril результата но не 100%

Еще мне нужно чтоб никто не мог сменить себе стиль!!!

Причем не выключением данной функции в админцентре! (иначе не будет работать код)

Каковы еще возможны решения???

Другой код или отключение выбора???

Мдя. Вас же спрашивали выше. Вы сказали, что жёстко задавать стиль не нужно, только чтобы по умолчанию был тот, который вы определите для группы. Вы внимательно читаете вопросы? И после этого хотите, чтобы немедленно вам давали ответ? Или вы просто не в состоянии сформулировать ваше требования? :)

 

Уберите из кода вашего:

AND $this->vars['allow_skins'] == 1

  • Автор

Я извиняюсь за не предусмотрительность!

Сразу не подумал что это тоже нужно!!!

AND $this->vars['allow_skins'] == 1

К сожалению удаления этого фрагмента кода ничего не дало!

Пользователи по прежнему могут менять стиль и он меняется!

в настройках им можно запретить, или в настройках групп, не помню :)

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

Аккаунт

Навигация

Поиск

Поиск

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

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