Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
indchubaka

Форум-исключение для премодерируемой группы (IPB 3.4.6)

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

Здравствуйте. Есть премодерируемая группа пользователей и есть раздел форума, где нужно разрешить этой группе создавать темы и оставлять сообщения без премодерации. Скажите, пожалуйста, это возможно?

Поделиться сообщением


Ссылка на сообщение

1) Создаете маску доступа с названием премодерируемая группа и Выставляете права на нужные разделы.

2) В группе выбрать Вашу маску - Вкладка: Использовать следующие маски доступа к форумам.

Поделиться сообщением


Ссылка на сообщение

Объясню: у есть меня группа "Ghosts" - она премодерируемая. Пользователю, состоящей в этой группе, нужно набрать 5 сообщений, чтобы он перешел в "Users" без премодерации. Ограничение доступа не является премодерированием, система работать не будет, так что ваш вариант мне не подходит, спасибо.

Поделиться сообщением


Ссылка на сообщение

Есть еще идеи у кого-то?

Поделиться сообщением


Ссылка на сообщение

Здравствуйте. Есть премодерируемая группа пользователей и есть раздел форума, где нужно разрешить этой группе создавать темы и оставлять сообщения без премодерации. Скажите, пожалуйста, это возможно?

Думаю, нет. Если группа премодерируется, то без вмешательства в скрипты форума, нельзя сделать так, чтобы где-то в одной ветке форума можно было бы поститься без премодерации. ИМХО.

Поделиться сообщением


Ссылка на сообщение

Может подскажете что в скриптах нужно поменять? Мне очень нужно.

Поделиться сообщением


Ссылка на сообщение

\admin\sources\base\ipsMember.php

 

	if ( $memberData['g_mod_preview'] )
	{
		/* Do we only limit for x posts/days? */
		if ( $memberData['g_mod_post_unit'] )
		{
			if ( $memberData['gbw_mod_post_unit_type'] )
			{
				/* Days.. .*/
				if ( $memberData['joined'] > ( IPS_UNIX_TIME_NOW - ( 86400 * $memberData['g_mod_post_unit'] ) ) )
				{
					return TRUE;
				}
			}
			else
			{
				/* Posts */
				if ( $memberData['posts'] < $memberData['g_mod_post_unit'] )
				{
					return TRUE;
				}
			}
		}
		else
		{
			/* No limit, but still checking moderating */
			return TRUE;
		}
	}

Заменить на

 

	if ( $memberData['g_mod_preview'] )
	{
		$allowForums = array( 1, 2 );
		$allowGroups = array();

		if( ( ipsRegistry::$request['f'] AND in_array( ipsRegistry::$request['f'], $allowForums ) ) AND ( empty( $allowGroups ) OR ipsMember::IsInGroup( ipsRegistry::member()->fetchMemberData, $allowGroups ) ) )
		{
			if( $memberData['member_id'] == ipsRegistry::member()->getProperty( 'member_id' ) )
			{
				ipsRegistry::member()->setProperty( 'g_mod_preview', 0 );
			}
		}
		else
		{
			/* Do we only limit for x posts/days? */
			if ( $memberData['g_mod_post_unit'] )
			{
				if ( $memberData['gbw_mod_post_unit_type'] )
				{
					/* Days.. .*/
					if ( $memberData['joined'] > ( IPS_UNIX_TIME_NOW - ( 86400 * $memberData['g_mod_post_unit'] ) ) )
					{
						return TRUE;
					}
				}
				else
				{
					/* Posts */
					if ( $memberData['posts'] < $memberData['g_mod_post_unit'] )
					{
						return TRUE;
					}
				}
			}
			else
			{
				/* No limit, but still checking moderating */
				return TRUE;
			}
		}
	}

 

array( 1, 2 ) - ид форумов через запятую в которых действую обход премодерации.

Поделиться сообщением


Ссылка на сообщение

Спасибо за решение, но у меня ошибка.

 

Fatal error: Using $this when not in object context in .../admin/sources/base/ipsMember.php on line 4232

line 4232: if( ( $this->request['showforum'] AND in_array( $this->request['showforum'], $allowForums ) ) AND ( empty( $allowGroups ) OR ipsMember::IsInGroup( ipsRegistry::member()->fetchMemberData, $allowGroups ) ) )

Поделиться сообщением


Ссылка на сообщение
Спасибо за решение, но у меня ошибка.
В статичных методах нельзя использовать $this. К тому в массиве request нет ключа showforum

Исправьте

$this->request['showforum']

на

ipsRegistry::$request['f']

Поделиться сообщением


Ссылка на сообщение

Работает! Спасибо!

 

Можете еще подсказать, можно ли убрать сообщение "Ваше сообщение должно пройти проверку модератора, прежде чем оно будет доступно остальным пользователям. Данное ограничение будет снято как только вы наберете 3 одобренных сообщений." в форумах, указанных в array()?

Поделиться сообщением


Ссылка на сообщение

Можете еще подсказать, можно ли убрать сообщение "Ваше сообщение должно пройти проверку модератора, прежде чем оно будет доступно остальным пользователям. Данное ограничение будет снято как только вы наберете 3 одобренных сообщений." в форумах, указанных в array()?

Как вариант, отредактировать шаблон topicViewTemplate

				<if test="is_array($topic['_fastReplyStatusMessage']) AND count($topic['_fastReplyStatusMessage']) AND strlen($topic['_fastReplyStatusMessage'][0])">
				<div class='message'>{parse expression="implode( '<br />', $topic['_fastReplyStatusMessage'] )"}</div>
			</if>

Измените условие

Поделиться сообщением


Ссылка на сообщение

Да, упустил это из виду. Поправил.

 

Одна тема - один вопрос. Если вопрос не касается сабжа темы создаем новую.

Поделиться сообщением


Ссылка на сообщение

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

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

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

×
×
  • Создать...