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

Скрыть содержимое bbcode


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

вообщем такое дело.

нужно скрывать содержимое тэгов quote и code, и url от незарегистрированных юзеров.

т.е если гость заходит на форум, то вместо содержимого цитат он видит надпись: вы неможете видеть содержимое данного блока, пожалуйста зарегайтесь..

тоже самое вместо тэга code

и вместо любой ссылки...

 

версия 2.3.х

...

спасибо!

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

Я считаю, что создавать дополнительный контейнер для скрытого текста как не для обязательного аттрибута поста (потому что не для всех доступного, а значит имеющего ограниченную ценность) расточительно.
Ссылка на комментарий
Поделиться на других сайтах

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

тоесть тупо поставить проверку перед парсингом.. чтото типо ( $this->ipsclass->member['mgroup'] ) и дальше сам код который выполняеться при условии..

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

ну тогда бери class_bbcode_core, ищи эти три функции (цитата, код и урл) и вставляй условие в самом начале:

if(intval($this->ipsclass->member['id'])==0)

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

если честно ненашел вообще нужных функций в файле class_bbcode_core :D еще идеи? Изменено пользователем kapa6
Ссылка на комментарий
Поделиться на других сайтах

Arhar, а всё равно ж не прокатит, эти функции вызывается из pre_db_parse, а при выволде не парсится пост.

Нужно вырезать при выводе регуляркой, как в хайде.

Либо нужно тогда на выходе из этих функций код заворачивать в [hide] или [priv] и следить чтобы они после этих вызовов обрабатывались.

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

Открыть /sources/ipsclass.php

 

Найти:

} // end class

 

Добавить ПЕРЕД:

	function clear_tags_for_guests($post)
{
	if(!$this->member['id'])
	{
		$post = preg_replace("#<!--c1-->.*?<!--ec2-->#", "<b>Вы не можете видеть содержимое данного блока без регистрации</b>", $post);
		$post = preg_replace("#<!--quoteo-->.*?<!--QuoteEEnd-->#", "<b>Вы не можете видеть содержимое данного блока без регистрации</b>", $post);
		$post = preg_replace("#<a.*?</a>#", "<b>Вы не можете видеть содержимое данного блока без регистрации</b>", $post);
	}
	return $post;
}

 

Сохранить, закрыть.

 

Открыть /sources/action_public/topics.php

 

Найти:

return array( 'row' => $row, 'poster' => $poster );

 

Добавить ПЕРЕД:

$row['post'] = $this->ipsclass->clear_tags_for_guests($row['post']);

 

Сохранить, закрыть.

 

Посмотреть http://vakhara.vizjerei.com/index.php?showtopic=6 сначала гостем, затем зарегившимся пользователем.

 

Заменить вот эту строку:

<b>Вы не можете видеть содержимое данного блока без регистрации</b>

... на такое сообщение, которым вы хотите пугать гостей.

 

По необходимости добавить вызов вот этой функции во все места, откуда вам бы хотелось убрать цитаты, коды, URL'ы:

$row['post'] = $this->ipsclass->clear_tags_for_guests($row['post']);

 

Перечислить благодарность, если есть желание, на один из следующих кошельков:

R286211355217

Z182436077740

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

спасибо большое!!!!!!

с цитатами маленький затор.. содержимое показывает..

а с

 и url всё нормальненга!

......

смущает $post = preg_replace("#<!--quoteo--> ( Почему quoteO?) , а не quote)

.....

не пожертвую 10 wмз, если доработаешь хак, чтобы покрасивее было, и выглядело примерно как ниже.. тоесть текст как бы в рамке..

 

Для простмотра скрытого текста - Зарегестрируйтесь

 

http://vareza.net/image/uploads/ba2958ca59.jpg

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

Для того чтобы выглядело красиво:

	// WildRAID
function clear_tags_for_guests($post)
{
	if( !$this->member['id'] )
	{
		// HTML код замены
		$repl = "<div class='quotetop'>Скрыто от гостей</div><div class='quotemain'>Для просмотра скрытого текста — <a href='{$this->base_url}act=Reg'>Зарегистрируйтесь</a></div>";

		// Ссылки
		$post = preg_replace("#<a.*?</a>#", $repl, $post);
		// Тег [code]
		$post = preg_replace("#<!--c1-->.*?<!--ec2-->#", $repl, $post);
		// Тег [quote]
		$post = preg_replace("#<!--quoteo.*?--><div class='quotetop'>.*?<!--QuoteEEnd-->#", $repl, $post);
		// Тег [html]
		$post = preg_replace("#<!--html-->.*?<!--html3-->#", $repl, $post);
		// Тег [sql]
		$post = preg_replace("#<!--sql-->.*?<!--sql3-->#", $repl, $post);

	}
	return $post;
}
// WildRAID

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

а с цитатами кой чего не так

смотри какой у меня код в 21х

<!--quoteo(post=46893:date=31.3.2007, 13:03:name=Steel)--><div class='quotetop'>Цитата(Steel @ 31.3.2007, 13:03)...

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

Вероятно "мастера-затейники", которые нулили мою "выставочную" версию, что-то и в цитатах поковыряли. Впрочем, основную идею расписал, а адаптировать её под конкретный случай несложно.

 

P.S. Давно бы купил лицензию, если бы было, на что (на какой домен). С некоторых пор идея быть ... хозяином какого-либо форума совершенно не возбуждает, равно как и общение в Сети без конкретной цели.

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

Да, забыли про такую цитату :D

 

Однако вы забыли и про то, что гость может спокойно процитировать это сообщение и всё вскроется ;) Так что нужно ещё добавить вызов этой функции, чуть изменённой, в начало pre_edit_parse().

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

  • 2 месяца спустя...

А как скрыть Прикрепленные файлы с постам?

 

И вобще если бы кто смог сделать так что бы настройки вынести в админку.

Вроди все не сложно но и не просто. Наперед спасибо.

А вобщем - проситься мод расширяющий стандартные настройки прав доступа по каждой Категории при ее создании.

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

  • 1 год спустя...
По необходимости добавить вызов вот этой функции во все места, откуда вам бы хотелось убрать цитаты, коды, URL'ы:

$row['post'] = $this->ipsclass->clear_tags_for_guests($row['post']);

 

Все отлично, но как скрыть ссылки из текстовой версии форума, что лежит в директории lofiversion ?

 

Подскажите, люди добрые :D

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

  • 3 месяца спустя...

Да, очень бы хотелось скрыть ссылки в подписях таким же образом...

 

 

нашел функцию отключения просмотра подписей для гостей, думаю это оптимально. Спасибо!

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

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

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

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

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

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

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

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

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

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

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

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