Перейти к контенту

MOD: запрет на BB-Code для определенной группы


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

Задача: необходимо полностью или частично запретить определенной группе пользователей использование BB-Code в сообщениях.

Идеальным вариантом будет, если настройка на разрешение /запрещение BB-Code будет расположена аналогично правам на использование HTML в сообщениях

( в АдминЦентре -> управление -> Группы -> (группа) -> права доступа -> ...) Приемлемо, если такое ограничение будет работать только для конкретной группы, задаваемой как переменная в conf_global.php

 

Сообщения содержащие BB-Code у членов такой группы не должны публиковаться, после заданного числа попыток публикации соощений должно происходить уведомление администратора и запись пользователя блокироваться.

 

Необходимость мода объясняется здесь

Ссылка на комментарий
Поделиться на других сайтах

Задача: необходимо полностью или частично запретить определенной группе пользователей использование BB-Code в сообщениях.

Идеальным вариантом будет, если настройка на разрешение /запрещение BB-Code будет расположена аналогично правам на использование HTML в сообщениях

( в АдминЦентре -> управление -> Группы -> (группа) -> права доступа -> ...) Приемлемо, если такое ограничение будет работать только для конкретной группы, задаваемой как переменная в conf_global.php

Только указанные в теме теги img и url? Или вы планируете настраивать список допустимых тегов для разных групп?

Ссылка на комментарий
Поделиться на других сайтах

Только указанные в теме теги img и url? Или вы планируете настраивать список допустимых тегов для разных групп?

Настраивать запрещенные теги для каждой группы мне кажется излишним.

Минимально необходимый функционал - запрет для определенной группы на img и url (или почти полный запрет на BB-Code, если технически это реализовать проще).

Как мне кажется, новым пользователям минимально необходимо только использование смайлов и кода quote. - без остального они могут прожить.

Ссылка на комментарий
Поделиться на других сайтах

На мой взгляд, проще и надежнее поставить защиту от автоматических регистраций.) Любую.

 

Мой опыт говорит, что защита от автоматических регистраций все равно пробивается. На предыдущем форуме, делал сильнозашумленную картинку, с нестандартным шрифтом - часть пользователей не могут зарегистрироваться, придется периодически получать письма помогите, не могу понять код, :D а при этом несколько роботов каждый день регятся....

Видел на форумах с ip.board и настандартным вопросом на регистрации возникающие сообщения от роботов...

Да ботов становится на два порядка меньше но 100% защиты она не дает.

Поэтому хотелось бы дополнить защиту от авторегистраций дополнительной - пусть в первых N постах новичок не сможет давать ссылки.

Ссылка на комментарий
Поделиться на других сайтах

Я не видел ни одного форума, на котором бы боты взламывали мод с вопросом типа 2+3=? или с модом Вопросы при регистрации.

 

 

Теперь насчёт того что вы хотели. Привожу пример на 2.3.3.

Открываем ./sources/classes/bbcode/class_bbcode.php(и class_bbcode_legacy.php), ищем функцию pre_db_parse( $txt="" ), в ней соответственно:

			//-----------------------------------------
		// Auto parse URLs
		//-----------------------------------------

		$txt = preg_replace_callback( "#(^|\s|>)((http|https|news|ftp)://\w+[^\s\[\]\<]+)#i", array( &$this, '_regex_build_url_manual' ), $txt );

и

			//-----------------------------------------
		// Do [IMG] [FLASH] tags
		//-----------------------------------------

		if ( $this->ipsclass->vars['allow_images'] )
		{
			$txt = preg_replace_callback( "#\[img\](.+?)\[/img\]#i"							 , array( &$this, 'regex_check_image' ), $txt );
			$txt = preg_replace_callback( "#(\[flash=)(\S+?)(\,)(\S+?)(\])(\S+?)(\[\/flash\])#i", array( &$this, 'regex_check_flash' ), $txt );
		}

и

			//-----------------------------------------
		// [url]http://www.index.com[/url]
		// [url=http://www.index.com]ibforums![/url]
		//-----------------------------------------

		$txt = preg_replace_callback( "#\[url\](.*?)\[/url\]#is"													, array( &$this, '_regex_build_url_tags'), $txt );
		$txt = preg_replace_callback( "#\[url\s*=\s*(?:\"\;|\")\s*(.*?)\s*(?:\"\;|\")\s*\](.*?)\[\/url\]#is", array( &$this, '_regex_build_url_tags'), $txt );
		$txt = preg_replace_callback( "#\[url\s*=\s*(.*?)\s*\](.*?)\[\/url\]#is"

 

Эти куски кода отвечают за конверт ссылок и картинок. Нужно каждый из этих фрагментов "завернуть" в условие на группу, если ей разрешены коды, то парсить, иначе вывести сообщение об ошибке. Привожу как это будет выглядеть в готовом виде с первым фрагментом, в остальных меняется код в первом блоке условия:

			if( !in_array($this->ipsclass->member['mgroup'], explode(',', $this->ipsclass->vars['mgroups_without_bbcode'])) )
		{
			$txt = preg_replace_callback( "#(^|\s|>)((http|https|news|ftp)://\w+[^\s\[\]\<]+)#i", array( &$this, '_regex_build_url_manual' ), $txt );
		}
		else
		{
			$this->error = 'mgroups_cannot_bbcode';
		}

 

И так для всех 3х фрагментов. Аналогично можно отключить парсинг и других кодов.

Настройку создаём или в conf_global.php, или в админцентре, как вам удобнее.

Ключ: mgroups_without_bbcode

Содержание: список групп, которым запрещены ббкоды, через запятую, например:

1

или

1,7,9

 

В cong_global соответственно:

$INFO['mgroups_without_bbcode'] = "1,7,9";

 

В ./cache/lang_cache/*/lang_error.php нужно добавить переменную $lang['mgroups_without_bbcode'] = "сообщение об ошибке";

 

Уточняйте, если что-то не совсем ясно излагаю, спешу.

Ссылка на комментарий
Поделиться на других сайтах

Я не видел ни одного форума, на котором бы боты взламывали мод с вопросом типа 2+3=? или с модом Вопросы при регистрации.

....

Уточняйте, если что-то не совсем ясно излагаю, спешу.

Спасибо. Буду ставить. О результатах отпишусь

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.