Одним прекрасным вечером решил зайти на новый форум и еле поднял челюсть от количества спама. Удалять все их постоянно слишком напряжно, да и за всем не уследишь. Чтобы форум использовали как инструмент продвижения каких-то там ресурсов меня совсем не интересует, форум создавался для общения. И так, задача: завалить спамеров, точнее отбить охоту от форума. Попробуем разобраться с этим делом.
Порывшись немного в конструкции движка нашел что весь вывод информации, то есть весь внешний вид находится в папке styles. Кстати, phpBB структурирован довольно простенько, что удобно для редактирования. Итак, в этой папке находятся все наши шаблоны. Структура шаблонов тоже простенькая, опять плюс. Страницы отображения общей массой лежат в папке template. Итого, нужные нам файлы находятся по адресу: styles/[название вашего шаблона]/template.
В данной папке находим файлик bbcode.html. В этом файле расписано отображение самих сообщений в темах форума. Таким образом здесь мы можем что-нибудь сделать с ссылками оставленными в ответе на тему и в подписи пользователя. Открываем файл в редакторе и ищем строку:
1 |
<!-- BEGIN url --><a href="{URL}">{DESCRIPTION}</a><!-- END url --> |
1 |
<!-- BEGIN url --><noindex><a href="{URL}" rel="nofollow">{DESCRIPTION}</a></noindex><!-- END url --> |
1 |
<!-- IF postrow.U_WWW --><li><a href="{postrow.U_WWW}" title="{L_VISIT_WEBSITE}: {postrow.U_WWW}"><span>{L_WEBSITE}</span></a></li><!-- ENDIF --> |
1 |
<!-- IF postrow.U_WWW --><li><noindex><a rel="nofollow" href="{postrow.U_WWW}" title="{L_VISIT_WEBSITE}: {postrow.U_WWW}"><span>{L_WEBSITE}</span></a></noindex></li><!-- ENDIF --> |
1 2 3 4 5 6 7 8 9 10 |
<ul class="profile-icons"> <!-- IF postrow.U_PM --><li class="pm-icon"><a href="{postrow.U_PM}" title="{L_PRIVATE_MESSAGE}"><span>{L_PRIVATE_MESSAGE}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_EMAIL --><li class="email-icon"><a href="{postrow.U_EMAIL}" title="{L_SEND_EMAIL_USER} {postrow.POST_AUTHOR}"><span>{L_SEND_EMAIL_USER} {postrow.POST_AUTHOR}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_WWW --><li class="web-icon"><a href="{postrow.U_WWW}" title="{L_VISIT_WEBSITE}: {postrow.U_WWW}"><span>{L_WEBSITE}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_MSN --><li class="msnm-icon"><a href="{postrow.U_MSN}" onclick="popup(this.href, 550, 320); return false;" title="{L_MSNM}"><span>{L_MSNM}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_ICQ --><li class="icq-icon"><a href="{postrow.U_ICQ}" onclick="popup(this.href, 550, 320); return false;" title="{L_ICQ}"><span>{L_ICQ}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_YIM --><li class="yahoo-icon"><a href="{postrow.U_YIM}" onclick="popup(this.href, 780, 550); return false;" title="{L_YIM}"><span>{L_YIM}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_AIM --><li class="aim-icon"><a href="{postrow.U_AIM}" onclick="popup(this.href, 550, 320); return false;" title="{L_AIM}"><span>{L_AIM}</span></a></li><!-- ENDIF --> <!-- IF postrow.U_JABBER --><li class="jabber-icon"><a href="{postrow.U_JABBER}" onclick="popup(this.href, 550, 320); return false;" title="{L_JABBER}"><span>{L_JABBER}</span></a></li><!-- ENDIF --> </ul> |
- Вариант первый: копаемся в настройках форума и отключаем этот тэг в настройках.
- Вариант второй: заходим в папку includes, в котором находятся весь функционал форума, и ищем файл functions_content.php, в котором и образуется вся информация, которую мы видим в сообщениях в темах. Открываем файлик и ищем строку:
1 |
$html = "$whitespace<!-- $tag --><a$class href=\"$url\">$text</a><!-- $tag -->$append"; |
1 |
$html = "$whitespace<!-- $tag --><noindex><a$class href=\"$url\" rel=\"nofollow\" >$text</a></noindex><!-- $tag -->$append"; |
1 2 3 4 5 6 7 8 9 10 |
case 'bbcode_htm': return array( '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#', '#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#', '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#', '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '#<!\-\- .*? \-\->#s', '#<.*?>#s', ); break; |
1 2 3 4 5 6 7 8 9 10 |
case 'bbcode_htm': return array( '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#', '#<!\-\- l \-\-><a (?:class="[\w-]+" rel="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#', '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" rel="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#', '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '#<!\-\- .*? \-\->#s', '#<.*?>#s', ); break; |
Вот и все, похлопаем себе за проделанную работу. Теперь Вы можете гордиться тем, что на форуме с движком phpBB скрыли внешние ссылки от индексации поисковыми системами или же удалили, все зависит от того, какие из пунктов данного поста Вы выполнили. Но в любом случае придется удалять левые сообщения, от этого никуда не деться, если хотите чтобы форум был приятным и интересным, а не мусоросборщиком. Так что удачи в этом нелегком деле
Вопросы можете задавать в комментариях, я не метеор, но отвечу в короткие сроки
и в файле memberlist_view.html нужно внести изменения
Спасибо, все доступно и понятно. Только подскажите: Не проще ли закрыть индексацию в robot.txt ?
добрый день! В роботс можно закрыть только целые страницы, а не ссылки на странице.
Интересная статья. Так и сделаю, подскажите пожалуйста, как можно частично закрыть ссылки? может есть какой-то мод?
Добрый день! А зачем Вам частично ссылки закрывать?
ну, например в качестве поощрения
для форумных движков не знаю насчет дополнений, а для WordPress есть замечательный плагин – CommentLuv