Если у вас есть хороший проект, то вы наверняка замечали, что у вас регаются пользователи, чтобы написать всего лишь один комментарий, типа: "Спасибо за ресурс!", "Мда, неплохо...", "Огромное человеческое спасибо!" и многие другие...
На самом деле это боты (в большинстве случаев), которые отнимают у вас тИЦ и/или PR...
Если у вас есть хороший проект, то вы наверняка замечали, что у вас регаются пользователи, чтобы написать всего лишь один комментарий, типа: "Спасибо за ресурс!", "Мда, неплохо...", "Огромное человеческое спасбо!" и многие другие...
На самом деле это боты (в большинстве случаев), которые отнимают у вас тИЦ и/или PR. -Какими способами?
-Элементарно:
1. Если у вас разрешено добавлять комментарии гостям, то они вместо е-майла пишут свой сайт... Это +1 внешняя ссылка...
2. В поле "Информация о себе" они пишут URL-ы. Это + одна или несколько внешних ссылок!!!
3. В самих сообщениях пишут URL-ы сайтов как напрямую (через url= )? так и через смайлики (чтобы незаметно было)
Далее - как избавиться и предотвращать внешние ссылки...
I. Убираем "гостевые ссылки" из комментариев
1-й способ - админ-панель
АдмиЦентр -> Настройка системы -> Настройки комментариев -> Разрешить комментировать новости -> НЕТ
2-й способ - запрет чтения для определенных групп
Открываем engine/modules/show.full.php
Находим:
Code
} else {
$tpl->set( '{edit-date}', "" );
$tpl->set( '{editor}', "" );
$tpl->set( '{edit-reason}', "" );
$tpl->set_block( "''si", "" );
$tpl->set_block( "''si", "" );
}
Ниже вставляем:
Code
if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}
if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}
Открываем engine/modules/lastcomments.php
Находим:
Code
} else {
$tpl->set_block( "'[signature](.*?)[/signature]'si", "" );
}
Ниже вставляем:
Code
if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}
if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}
Открываем templates/ВАШ_ШАБЛОН/comments.tpl
Находим:
Заменяем на:
Code
[not-group=5]{author}[/not-group
Где 5 - это id группы. В данном случае мы запрещаем просмотр гостям и поисковикам, чтобы они не видели ссылки.
ID на вашем сайте вы можете узнать в АдминЦентре -> Настройка групп пользователей
3-й способ - разрешаем чтение только определенным группам
Открываем engine/modules/show.full.php
Находим:
Code
} else {
$tpl->set( '{edit-date}', "" );
$tpl->set( '{editor}', "" );
$tpl->set( '{edit-reason}', "" );
$tpl->set_block( "''si", "" );
$tpl->set_block( "''si", "" );
}
Ниже вставляем:
Code
if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}
if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}
Открываем engine/modules/lastcomments.php
Находим:
Code
} else {
$tpl->set_block( "'[signature](.*?)[/signature]'si", "" );
}
Ниже вставляем:
Code
if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}
if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}
Открываем templates/ВАШ_ШАБЛОН/comments.tpl
Находим:
{author} (а также ключевую фразу по вашему дизайну, например "{author} пишет"
Заменяем на (по дефолту):
Code
[group=1,2,3,4]{author}[/group]
Здесь мы разрешаем чтение группам Администраторы, Главные редакторы, Журналисты, Посетители (то есть всем кроме группы 5 - гости, то есть запрет поисковикам и гостям)
ID на вашем сайте вы можете узнать в АдминЦентре -> Настройка групп пользователей
4-й способ - банальный noindex
Открываем templates/ВАШ_ШАБЛОН/comments.tpl
Находим:
Заменяем на:
II. Убираем внешние ссылки из поля "О себе"
1-й способ - запрет чтения поля для определенных групп
Открываем engine/modules/profile.php
Находим:
Code
} else {
$tpl->set_block( "'[signature](.*?)[/signature]'si", "" );
}
Ниже вставляем:
if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}
if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}
Открываем templates/ВАШ_ШАБЛОН/userinfo.tpl
Находим:
Code
Немного о себе:
{info}
Заменяем на:
Code
[not-group=5]
Немного о себе:
{info}
[/not-group]
Где 5 - это id группы. В данном случае мы запрещаем просмотр гостям и поисковикам, чтобы они не видели ссылки.
ID на вашем сайте вы можете узнать в АдминЦентре -> Настройка групп пользователей
2-й способ - разрешение чтения поля только определенным группам
Открываем engine/modules/profile.php
Находим:
Code
} else {
$tpl->set_block( "'[signature](.*?)[/signature]'si", "" );
}
Ниже вставляем:
if (strpos ( $tpl->copy_template, "[not-group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[not-group=(.+?)](.*?)[/not-group]#ies", "check_group('1', '2', false)", $tpl->copy_template );
}
if (strpos ( $tpl->copy_template, "[group=" ) !== false) {
$tpl->copy_template = preg_replace ( "#[group=(.+?)](.*?)[/group]#ies", "check_group('1', '2')", $tpl->copy_template );
}
Открываем templates/ВАШ_ШАБЛОН/userinfo.tpl
Находим:
Code
Немного о себе:
{info}
Заменяем на (по дефолту):
Code
[group=1,2,3,4]
Немного о себе:
{info}
[/group]
Здесь мы разрешаем чтение группам Администраторы, Главные редакторы, Журналисты, Посетители (то есть всем кроме группы 5 - гости, то есть запрет поисковикам и гостям)
ID на вашем сайте вы можете узнать в АдминЦентре -> Настройка групп пользователей
3-й способ - удаление поля
Открываем templates/ВАШ_ШАБЛОН/userinfo.tpl
Находим:
Code
Немного о себе:
{info}
Удаляем :
Code
Немного о себе:
{info}
Открываем templates/ВАШ_ШАБЛОН/userinfo.tpl
Находим:
Code
Немного о себе:
{info}
Заменяем на: Немного о себе:
III. Предотвращаем появление внешних ссылок из самих комментариев
Открываем engine/modules/addcomments.php
Находим:
Code
if( strlen( $name ) > 50 ) {
$stop[] = $lang['news_err_1'];
$CN_HALT = TRUE;
}
Ниже вставляем:
Code
if (preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['comments']) || preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['name']))
{
$stop[] = "URL адреса сайтов, публиковать ЗАПРЕЩЕНО!";
$CN_HALT = TRUE;
}
Вот интересная информация, думаю что работает, впрочем в хороших руках все работает =)
Как вам?
Источник: 8dle.net