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

Запрет Гостю публиковать ссылки


Вопрос

Здравствуйте уважаемые пользователи и Великие Гуру!

 

Если возможно помогите решить такую проблемку.

 

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

Как это можно сделать?

 

Просидела в поиске 3 час такого не нашла. Подмена УРЛа для всех это не то, мне нужно что бы именно Гостям и новичкам нельзя было публиковать ссылки и картинки.

 

Заранее благодарна.

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

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

  • 0

если достали боты, лучше поставить защиту от ботов

 

по цели - проверять

if ($this->ipsclass->member['posts']<10)

(это соответствено сработает и для гостей..)

в парсере в местах обработки урл и имг (class_bbcode_core.php)

и если такая гадость, делать

return ' ';

вот так вроде..

тоесть писать они смогут ссылки и картинки, а возвращать им будет пробел

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

  • 0
если достали боты, лучше поставить защиту от ботов

 

по цели - проверять

if ($this->ipsclass->member['posts']<10)

(это соответствено сработает и для гостей..)

в парсере в местах обработки урл и имг (class_bbcode_core.php)

и если такая гадость, делать

return ' ';

вот так вроде..

тоесть писать они смогут ссылки и картинки, а возвращать им будет пробел

 

А можно поподробнее в каких файлах где и что менять?

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

  • 0

В файле ./sources/classes/bbcode/class_bbcode_core.php

 

Найти

function regex_build_url( $url=array() )
{

добавить после:

		if ($this->ipsclass->member['posts']<10)
	{
		return " ";
	}

 

Найти

	function regex_check_image($url="")
{

добавить после:

		if ($this->ipsclass->member['posts']<10)
	{
		return " ";
	}

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

  • 0

если достали боты, лучше поставить защиту от ботов

 

по цели - проверять

if ($this->ipsclass->member['posts']<10)

(это соответствено сработает и для гостей..)

в парсере в местах обработки урл и имг (class_bbcode_core.php)

и если такая гадость, делать

return ' ';

вот так вроде..

тоесть писать они смогут ссылки и картинки, а возвращать им будет пробел

 

А можно поподробнее в каких файлах где и что менять?

 

Супер - работает! СПАСИБО ОГРОМНОЕ! Именно то, что я хотела.

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

  • 0

Хм, а можно ли сделать чтобы гости не видели ссылки на форуме? Ставить мод Hide Text не хочется, ибо надо просто скрывать ссылки на внешние ресурсы (файлы, музыка...) от гостей.

Может, что-то поправить в файлах таким же образом?

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

  • 0

Замените в приведённом выше условие

if ($this->ipsclass->member['posts']<10)

на

if (!$this->ipsclass->member['id'])

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

  • 0
Именно. Или же только мод может предусмотреть все варианты скрытия ссылок? Мод это хорошо конечно, но при апгрейде форума мучительно ждать обновления модов....
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Да, лохонулся) Тогда можно попробывать так:

 

./sources/action_public/topic.php

Найти:

		//-----------------------------------------
	// Highlight...
	//-----------------------------------------

Добавить перед:

		if (!$this->ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$row['post'] = preg_replace( "#<a href=[\"'].+?[\"'].+?>.+?</a>#", "<i>ссылка</i>", $row['post'] );
	}

./sources/classes/class_post.php

Найти:

						$extra = "";

					if ( $tmp_post )
					{
						$raw_post .= "[quote name='".$this->parser->make_quote_safe($tp['author_name'])."' date='".$this->parser->make_quote_safe($this->ipsclass->get_date( $tp['post_date'], 'LONG', 1 ))."' post='".$tp['pid']."']\n$tmp_post\n".$extra.'[/quote]'."\n\n\n";
					}

Добавить перед:

		if (!$this->ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$tmp_post = preg_replace( "#\[url\](\S+?)\[/url\]#i", "[i]ссылка[/i]", $tmp_post );
		$tmp_post = preg_replace( "#\[url\s*=\s*\& quot\;\s*(\S+?)\s*\& quot\;\s*\](.*?)\[\/url\]#i", "[i]ссылка[/i]", $tmp_post );
		$tmp_post = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i", "[i]ссылка[/i]", $tmp_post );
	}

 

& quot - писать слитно

 

P.S.1. Надеюсь ничего не пропустил :D

P.S.2. А как без мода то? ;)

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

  • 0

Я не посмотрел сразу на раздел, у меня версия 2.2.2, там точно так же все менять? :D

Да, это затронет и другие режимы (текстовый, древовидный...), а то были когда-то какие-то косяки с хайд-модом по поводу этого?

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

  • 0
у меня версия 2.2.2, там точно так же все менять?
Да :D

 

это затронет и другие режимы (текстовый, древовидный...), а то были когда-то какие-то косяки с хайд-модом по поводу этого?
Да, проверил ;)

 

P.S. Если будук косяки - исправлюсь, пишите сюда или в аську если что :)

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

  • 0

Забавно. Но некторыые ссылки делаются текстом, то есть "вы можете (начало урла)скачать Total Commander(конец урла) тут".

После обработки получится "вы можете (текст вместо ссылки) тут".

Теряется смысл предложения. Так что наверное лучше мод ставить.

Все равно спасибо.

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

  • 0

Зачем же так сложно) За вывод текста - замены отвечает в приведённом выше следующий код:

$tmp_post = preg_replace( "#\[url\](\S+?)\[/url\]#i", "[i]ссылка[/i]", $tmp_post );
$tmp_post = preg_replace( "#\[url\s*=\s*\& quot\;\s*(\S+?)\s*\& quot\;\s*\](.*?)\[\/url\]#i" , "[i]ссылка[/i]", $tmp_post );
$tmp_post = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i", "[i]ссылка[/i]", $tmp_post );

Чтобы при вводе ссылки вида

[url=http://www.ya.ru]Yandex[/url]

Выводилось Yandex сделайте так:

$tmp_post = preg_replace( "#\[url\](\S+?)\[/url\]#i", "[i]ссылка[/i]", $tmp_post );
$tmp_post = preg_replace( "#\[url\s*=\s*\& quot\;\s*(\S+?)\s*\& quot\;\s*\](.*?)\[\/url\]#i" , "\\2", $tmp_post );
$tmp_post = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i", "\\2", $tmp_post );

 

& quot - писать слитно

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

  • 0

видоизменил

[i]ссылка[/i]

на

 

 

[b][i]Вы - гость и не можете видеть ссылки. [url=http://ваш_домен/index.php?act=Reg&CODE=00]Зарегистрируйтесь![/url][/i][/b]

 

а

<i>ссылка</i>

соответственнно на

 

<b><i>Вы - гость и не можете видеть ссылки. <a href=http://ваш_домен/index.php?act=Reg&CODE=00>Зарегистрируйтесь!</a></i></b>

 

думаю, так эффективней.

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

  • 0

Предположительно...

Скрытие ссылок в текстовой версии, 2.1.x.

 

Открыть ./lofiversion/index.php, найти:

		$parser->parse_html  = ( $ipsclass->forums->forum_by_id[ $topic['forum_id'] ]['use_html'] and $ipsclass->cache['group_cache'][ $r['mgroup'] ]['g_dohtml'] and $r['post_htmlstate'] ) ? 1 : 0;
	$parser->parse_nl2br = $r['post_htmlstate'] == 2 ? 1 : 0;

	$r['post'] = $parser->pre_display_parse( $r['post'] );

и добавить выше:

		if (!$ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$r['post'] = preg_replace( "#\[url\](\S+?)\[/url\]#i", "[i]ссылка[/i]", $r['post'] );
		$r['post'] = preg_replace( "#\[url\s*=\s*\& quot\;\s*(\S+?)\s*\& quot\;\s*\](.*?)\[\/url\]#i" , "[i]ссылка[/i]", $r['post'] );
		$r['post'] = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i", "[i]ссылка[/i]", $r['post'] );
	}

& quot - писать слитно.

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

  • 0
Да, лохонулся) Тогда можно попробывать так:

 

./sources/action_public/topic.php

Найти:

		//-----------------------------------------
	// Highlight...
	//-----------------------------------------

Добавить перед:

		if (!$this->ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$row['post'] = preg_replace( "#<a href=[\"'].+?[\"'].+?>.+?</a>#", "<i>ссылка</i>", $row['post'] );
	}

./sources/classes/class_post.php

Найти:

						$extra = "";

					if ( $tmp_post )
					{
						$raw_post .= "[quote name='".$this->parser->make_quote_safe($tp['author_name'])."' date='".$this->parser->make_quote_safe($this->ipsclass->get_date( $tp['post_date'], 'LONG', 1 ))."' post='".$tp['pid']."']\n$tmp_post\n".$extra.'[/quote]'."\n\n\n";
					}

Добавить перед:

		if (!$this->ipsclass->member['id'])
	{
		//-----------------------------------------
		// Clear links for guests
		//-----------------------------------------

		$tmp_post = preg_replace( "#\[url\](\S+?)\[/url\]#i", "[i]ссылка[/i]", $tmp_post );
		$tmp_post = preg_replace( "#\[url\s*=\s*\& quot\;\s*(\S+?)\s*\& quot\;\s*\](.*?)\[\/url\]#i", "[i]ссылка[/i]", $tmp_post );
		$tmp_post = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i", "[i]ссылка[/i]", $tmp_post );
	}

 

& quot - писать слитно

 

P.S.1. Надеюсь ничего не пропустил :D

P.S.2. А как без мода то? ;)

 

Огромное спасибо за мод!!!

Проверил на 2.3.6 - полет нормальный!

Единственное, что не устраивает, а нельзя ли срыть только то что нужно?

А то если заходит гость, то даже картинок не видит

Спасибо!

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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