Перейти к публикации
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.

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

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

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

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

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

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

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

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

 

Ответ(годится и для 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 недели спустя...
Опубликовано:
  • Автор

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

[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

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

Как быть?

Изменено пользователем Dimidrol

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

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

Опубликовано:
  • Автор

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

Изменено пользователем Dimidrol

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

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

 

 

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

  • 4 недели спустя...
Опубликовано:
  • Автор
Ну так если вы её изменили, тем более нужно написать, иначе как можно узнать что за ошибка, если вы ни стоки ни текста ошибки не написали?

 

 

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

 

 

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

 

Вот строчка

$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 сразу.

Опубликовано:
  • Автор

ТАк что-ли?

\"<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

Опубликовано:
  • Автор

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

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

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

 

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

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

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

Опубликовано:
Тем более, что ББ-код там уже не сработает, нужно заменять на HTML сразу.
Опубликовано:
  • Автор

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

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

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

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

Изменено пользователем Dimidrol

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

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

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

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

Сейчас на странице 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.