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

Хак "Автоматическое скрытие ссылок от гостей"


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

Есть идея сделать автоматическое скрытие публикуемых ссылок от гостей (поисковиков).

 

Основная причина, для чего это нужно: защита от личеров, и лучшая оптимизация под поисковики.

 

Плюсы такого мода от тега HIDE следующие:

- пользователей не надо заставлять использовать тег hide при публикации ссылок.

- все делается автоматически.

 

Есть некоторые идеи как это реализовать.

Первая идея (проста в реализации) [!]

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

 

Вторая идея (немного сложноватая)

Вот как это реализовано для vbulletin. Знающие php поймут и смогут подсказать, возможно ли такое для IPB ;)

<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="See Links 1.2.0" title="Not See Links" description="With this hack only selected usergroups can see links." version="1.20" active="1">
<codes>
	<code version="1.2.0">
<installcode>
</installcode>
<uninstallcode>
</uninstallcode>
	</code>
</codes>
<plugins> 
<plugin active="1" product="See Links 1.2.0">
	<title>Not see  links in post</title>
	<hookname>postbit_display_complete</hookname>
	<phpcode>
	<![CDATA[eval('$canseelinks = in_array($this->registry->userinfo[usergroupid], array(' . $this->registry->options['canseelinks'] . '));');
eval('$canshowlinks = in_array($post[usergroupid], array(' . $this->registry->options['canshowlinks'] . '));');
if ((!in_array($this->registry->userinfo[usergroupid], array($canseelinks)) and !in_array($post[usergroupid], array($canshowlinks))) or !is_member_of($post, explode(',', $this->registry->options['canseelinks'])))
{
$this->post['message'] = preg_replace("!<a[^>]*>(.*)</a>!siU", $vbphrase[nolink], $this->post['message']);  
}]]>
</phpcode>
</plugin>
<plugin active="1" product="See Links 1.2.0">
	<title>Not see links in Reply</title>
	<hookname>newreply_form_reviewbit</hookname>
	<phpcode>
	<![CDATA[eval('$canseelinks = in_array($vbulletin->userinfo[usergroupid], array(' . $vbulletin->options['canseelinks'] . '));');
if ((!in_array($vbulletin->userinfo[usergroupid], array($canseelinks)) or !is_member_of($post, explode(',', $this->registry->options['canseelinks']))))
{
$reviewmessage = preg_replace("!<a[^>]*>(.*)</a>!siU", $vbphrase[nolink], $reviewmessage);
}]]>
</phpcode>
</plugin>
<plugin active="1" product="See Links 1.2.0">
	<title>Not see links in Print Version</title>
	<hookname>printthread_post</hookname>
	<phpcode>
	<![CDATA[eval('$canseelinks = in_array($vbulletin->userinfo[usergroupid], array(' . $vbulletin->options['canseelinks'] . '));');
if (!in_array($vbulletin->userinfo[usergroupid], array($canseelinks)))
{
$post['message'] = preg_replace("!<a[^>]*>(.*)</a>!siU", $vbphrase[nolink], $post['message']);
}]]>
</phpcode>
</plugin>
<plugin active="1" product="See Links 1.2.0">
	<title>Not see links in Archive</title>
	<hookname>archive_thread_post</hookname>
	<phpcode><![CDATA[eval('$canseelinks = in_array($vbulletin->userinfo[usergroupid], array(' . $vbulletin->options['canseelinks'] . '));');
if (!in_array($vbulletin->userinfo[usergroupid], array($canseelinks)))
{
$post['pagetext'] = eregi_replace('(http|www)([[:alnum:]/\n+-=%&:_.~?]+[#[:alnum:]+]*)', $vbphrase[nolinkinarchive], $post['pagetext']);

$post['pagetext_simp'] = strip_bbcode($post['pagetext']);
$post['postdate'] = vbdate($vbulletin->options['dateformat'], $post['dateline']);
$post['posttime'] = vbdate($vbulletin->options['timeformat'], $post['dateline']);
}]]></phpcode>
</plugin>
</plugins>
<phrases>
	<phrasetype name="global">
		<phrase name="nolink"><![CDATA[[Link only for <a href="payments.php">Paid Subscribers</a>]]]></phrase>
		<phrase name="nolinkinarchive"><![CDATA[[Link only for Paid Subscribers]]]></phrase>
	</phrasetype>
	<phrasetype name="vBulletin Settings" fieldname="vbsettings">
		<phrase name="setting_canseelinks_desc"><![CDATA[Usergroups that can see links]]></phrase>
		<phrase name="setting_canseelinks_title"><![CDATA[Can See Links]]></phrase>
		<phrase name="setting_canshowlinks_desc"><![CDATA[Usergroups that can show links to all usergroups]]></phrase>
		<phrase name="setting_canshowlinks_title"><![CDATA[Can Show Links]]></phrase>
					<phrase name="settinggroup_linkperm"><![CDATA[Link Permissions]]></phrase>
	</phrasetype>
</phrases>
<options>
	<settinggroup name="linkperm" displayorder="12">
		<setting varname="canseelinks" displayorder="10">
			<datatype>free</datatype>
			<defaultvalue>5,6,7,18,19,21</defaultvalue>
			</setting>
			<setting varname="canshowlinks" displayorder="20">
			<datatype>free</datatype>
			<defaultvalue>5,6,7</defaultvalue>
		</setting>
	</settinggroup>
</options>
</product>

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

  • 9 месяцев спустя...
  • 2 года спустя...

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

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

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

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

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

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

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

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

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

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

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