Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Стили 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

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

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

Опубликовано:

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.