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

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


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

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

 

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

 

Плюсы такого мода от тега 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 года спустя...

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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