Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Invision Board » Убирать линки в сообщениях гостей

Модерирует : Antuan, Dekker

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

catbegemot



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Очень достали жадные дети, а времени убивать спам жалко. Форум небольшой, поэтому очень не хочется закрывать доступ на запись для гостей. Поэтому пришла в голову мысль - чтобы в любом посте от гостя линки просто убивались. Прошерстил ipbresource.ru но там ничего похожего нет.
 
Может кто-то подсказать - где править код?

----------
catbegemot.net | Мой БЛОГ

Всего записей: 654 | Зарегистр. 09-12-2001 | Отправлено: 23:07 08-03-2005
GiV

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
./sources/Topics.php
 
найди

Код:
 
if (!$ibforums->member['view_img'])
{
// unconvert smilies first, or it looks a bit crap.
 
$row['post'] = preg_replace( "#<!--emo&(.+?)-->.+?<!--endemo-->#", "\\1" , $row['post'] );
 
$row['post'] = preg_replace( "/<img src=[\"'](.+?)[\"'].+?".">/", "(IMG:<a href='\\1' target='_blank'>\\1</a>)", $row['post'] );
}

и добавь перед

Код:
 
if ( !$ibforums->member['id'] ) {
$row['post'] = preg_replace( "#<a href=[\"'](http://|https://|ftp://|news://)?(\S+?)['\"].+?".">(.+?)</a>#" , "\\3"  , $row['post'] );
}

Всего записей: 74 | Зарегистр. 05-05-2004 | Отправлено: 12:22 09-03-2005 | Исправлено: GiV, 12:23 09-03-2005
catbegemot



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может я что не так сделал, но нифига не работает
 
Вот как оно теперь выглядит:

Цитата:
 
//disable links in guest posts -- catbegemot
 if ( !$ibforums->member['id'] ) {
$row['post'] = preg_replace( "#<a href=[\"'](http://|https://|ftp://|news://)?(\S+?)['\"].+?".">(.+?)</a>#" , "\\3"  , $row['post'] );
}
 
if (!$ibforums->member['view_img'])
{
// unconvert smilies first, or it looks a bit crap.
 
$row['post'] = preg_replace( "#<!--emo&(.+?)-->.+?<!--endemo-->#", "\\1" , $row['post'] );
 
$row['post'] = preg_replace( "/<img src=[\"'](.+?)[\"'].+?".">/", "(IMG:<a href='\\1' target='_blank'>\\1</a>)", $row['post'] );


----------
catbegemot.net | Мой БЛОГ

Всего записей: 654 | Зарегистр. 09-12-2001 | Отправлено: 18:33 09-03-2005 | Исправлено: catbegemot, 18:39 09-03-2005
GiV

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
catbegemot
ммм... а ты наверное хотел что бы они вообще были убраны, а не оставались, но были неактивны.
 
тогда
$row['post'] = preg_replace( "#<a href=[\"'](http://|https://|ftp://|news://)?(\S+?)['\"].+?".">(.+?)</a>#" , "Links Disabled To Guests. Please Register"  , $row['post'] );
 
Добавлено:
catbegemot тьфу блин... не понял вопроса
./sources/lib/post_parser.php
 
найти:

Код:
$txt = preg_replace( "#(^|\s)((http|https|news|ftp)://\w+[^\s\[\]]+)#ie"  , "\$this->regex_build_url(array('html' => '\\2', 'show' => '\\2', 'st' => '\\1'))", $txt );

заменить на:

Код:
if ( $ibforums->member['id'] ) {
    $txt = preg_replace( "#(^|\s)((http|https|news|ftp)://\w+[^\s\[\]]+)#ie"  , "\$this->regex_build_url(array('html' => '\\2', 'show' => '\\2', 'st' => '\\1'))", $txt );
} else {
    $txt = preg_replace( "#(^|\s)((http|https|news|ftp)://\w+[^\s\[\]]+)#i"  , "", $txt );    
}

 
ниже найти:

Код:
    $txt = preg_replace( "#\[url\](\S+?)\[/url\]#ie"                                       , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\1'))", $txt );
    $txt = preg_replace( "#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );
    $txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#ie"                       , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );

заменить на:

Код:
if ( $ibforums->member['id'] ) {
    $txt = preg_replace( "#\[url\](\S+?)\[/url\]#ie"                                       , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\1'))", $txt );
    $txt = preg_replace( "#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#ie" , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );
    $txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#ie"                       , "\$this->regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $txt );
} else {
    $txt = preg_replace( "#\[url\](\S+?)\[/url\]#i"                                       , "", $txt );
    $txt = preg_replace( "#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#i" , "", $txt );
    $txt = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i"                       , "", $txt );    
}

 
сорри, туплю

Всего записей: 74 | Зарегистр. 05-05-2004 | Отправлено: 22:59 09-03-2005 | Исправлено: GiV, 23:00 09-03-2005
catbegemot



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот вариант, который подсказали на ibresource.ru - работает замечательно и именно так, как я хотел с самого начала.
 
Файл post_parser.php
Найди

Цитата:
 
 function regex_build_url($url=array()) {
 

и замени на
 

Цитата:
 
function regex_build_url($url=array()) {
global $ibforums;
 
if ( !$ibforums->member['id'] or $ibforums->member['posts'] < 20 ) return "";
 

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

Цитата:
 
function regex_build_url($url=array()) {
global $ibforums;
 
if ( !$ibforums->member['id'] or $ibforums->member['posts'] < $ibforums->member['numposts_link']  ) return "* Link removed *";
 

Потом в админке создал новый параметр в разделе Topics, Posts and Polls:
 
Setting title? Необходимое число постов для размещения линка
Setting Type? Text Input
Setting Key? numposts_link
Setting Current Value? 20
Setting Default Value? 20
 
Сохранить изменения. Вуаля...

----------
catbegemot.net | Мой БЛОГ

Всего записей: 654 | Зарегистр. 09-12-2001 | Отправлено: 00:14 10-03-2005 | Исправлено: catbegemot, 00:17 10-03-2005
dmaks

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, прошу прощения, а как убрать линки из подписей пользователей?

Всего записей: 2 | Зарегистр. 08-03-2005 | Отправлено: 23:54 14-03-2005
catbegemot



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Рассуждая по аналогии - найти место, которое парсит подпись при вводе. По-моему так.

----------
catbegemot.net | Мой БЛОГ

Всего записей: 654 | Зарегистр. 09-12-2001 | Отправлено: 18:28 17-03-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Invision Board » Убирать линки в сообщениях гостей


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru