Skip to content

Как называетсья мод который закрывает все исходящие ссылки

Подскажие пожадуйста м помощью какого мода можно спрятать отображение всех исходящих ссылок на форуме от незарегеных?

Featured Replies

чуток попозже напишу. МОжете сами поискать решение в темах про ноиндекс. Просто при парсинге постов надо сделать замену ссылок на текст...

Вопрос: как сделать ссылки не видимыми для гостей? (все ссылки автоматом скрываются для гостей)

 

Ответ(годится и для 2.2.x-2.3.x):

 

./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" , "\\2", $tmp_post );
		$tmp_post = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i", "\\2", $tmp_post );
	}

 

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

 

http://www.ibresource.ru/forums/index.php?...st&p=285173

супер, Олег ты чудо)

  • 3 weeks later...
  • Author

Всё бы хорошо, но вставить туда сылку на меню регистрации вместо текста, на подобие

[ur]="http://saut.ru"]Регитсрация[/url]

не выходит, вылетает ошибка при загрузке такой страницы

Parse error: syntax error, unexpected T_STRING in Z:\home\forum\www\sources\classes\post\class_post.php on line 2448

Ну и со второй аналогично

Как быть?

Edited by Dimidrol

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

  • Author

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

Edited by Dimidrol

Ну так если вы её изменили, тем более нужно написать, иначе как можно узнать что за ошибка, если вы ни стоки ни текста ошибки не написали?

 

 

Наверняка вы кавычки внутри строки не проэкранировали.

  • 4 weeks later...
  • Author
Ну так если вы её изменили, тем более нужно написать, иначе как можно узнать что за ошибка, если вы ни стоки ни текста ошибки не написали?

 

 

Наверняка вы кавычки внутри строки не проэкранировали.

 

 

Пороекрачего? :)

 

Вот строчка

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

вместо ссылка пишу url адрес регистрации например

[quote]$row['post'] = preg_replace( "#<a href=[\"'].+?[\"'].+?>.+?</a>#", "<i>Чтоб увидеть ссылку - [url="http://sait.ru"]Регистрируйся[/url]</i>", $row['post'] );[/quote]

Ну а дальше вы уже знаете,

как быть? :)

То что в кавычках -- строка. Если в строке вы хотите использовать кавычки, то их надо экранировать, добавляя перед ними \. Либо используйте не кавычки, а апострофы. Тем более, что ББ-код там уже не сработает, нужно заменять на HTML сразу.

  • Author

ТАк что-ли?

\"<i>Чтоб увидеть ссылку - [url="http://sait.ru"]Регистрируйся[/url]</i>"

и

'<i>Чтоб увидеть ссылку - [url="http://sait.ru"]Регистрируйся[/url]</i>'

\ нужно добавлять не к внешним кавычкам, а к кавычкам внутри строки:

$a = "строка с "кавычками" -- плохо";
$a = "а так -- \"кавычка\" -- хорошо";

 

http://www.php.net/manual/ru/language.type...g.syntax.double

  • Author

Дико извеняюсь

Но не получается чо-то,

можете пожалуйста написать пример с адресом как это должно выглядеть чтоб работало :(

 

Я так понял что вот так

"Чтоб увидеть ссылку - [url=\"http://sait.ru\"]Регистрируйся[/url]"

но выдаёться только текст вместо ссылки

Тем более, что ББ-код там уже не сработает, нужно заменять на HTML сразу.
  • Author

Если написать так

"<b>Чтоб увидеть ссылку - <a href=\"http://sait.ru>\"Регистрируйся</a></b>"

То на странице выводится только надпись "Чтоб увидет ссылку -" без ссылки, что я сделал не так?

Извеняюсь за свои скромные познания в html

Edited by Dimidrol

В <a href=""> у вас вторая кавычка не там :( И проще не париться с экранировкой, раз не в теме, а использовать апострофы :)

"<b>Чтоб увидеть ссылку - <a href='http://example.com'>Регистрируйся</a></b>"

Create an account or sign in to comment

Account

Navigation

Search

Search

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.