← phpBB

(RESOLVIDO) Hide (Advanced BBCode Box Add-on)

Lida 3004 vezes

Offline

mCavaleiro 
Membro
Mensagens 74 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 50 Posts

Precisava do mod Hide, para adicionar ao Advanced BBCode Box 5.0.0, para esconder os links, e só mostrar para quem postar. ( utilizadores registados é claro )

Alguém sabe se existe e se funciona?

ESTE NÃO DÁ:

Código: [Seleccione]

############################################################################
## MOD HIDE | Made By / Auteur: Philiweb < http://www.philiweb.fr.st/ >
############################################################################
## Description : MOD "HIDE" (aka lockdown) - this mod allow users to hide
## a message via some "bbcodes", ex : [hide] message [/hide]. To see the
## hidden message, you must be a member and you must post a reply to
## the message...
############################################################################
## VERSION DE PHPBB : PHPBB 2.0 RC3 - RC4 - 2.0.x (gold) - 2.0.4 |02/2003|
############################################################################
## You can find the last versions and informations here on the official
## website (in English and French) :
## http://membres.lycos.fr/philiweb/accueil.php?num=15
## Info : There is also some pre-modified files if you have difficulties !
############################################################################
## And you can find some modifications to "hide" mod here :
## http://membres.lycos.fr/philiweb/accueil.php?num=23
## new : version 4 => administrators and moderators can see "hidden
## messages" immediatly...)
############################################################################
## Demo : http://membres.lycos.fr/philiweb/forums/viewtopic.php?t=167
############################################################################
## This MOD Cannot Be Posted To Or Added At Any Non-Official phpBB Sites
############################################################################

There is 7 files to modify :

1 - posting.php
2 - viewtopic.php
3 - search.php
4 - topic_review.php // in the "/includes" directory
5 - bbcode.php // in the "/includes" directory
6 - bbcode.tpl // in the Templates/{Used template}/ directory
7 - posting_body.tpl // in the Templates/{Used template}/ directory

This mod is easy to install. (20 mn)

------------------
1 - In posting.php
------------------

Find  

if( $attach_sig && $user_sig != '' && $userdata['user_sig_bbcode_uid'] )
{
        $user_sig = bbencode_second_pass($user_sig, $userdata['user_sig_bbcode_uid']);
}

if( $bbcode_on )
{
        $preview_message = bbencode_second_pass($preview_message, $bbcode_uid);
}
 

Replace by  

$valid = FALSE;
if( $userdata['session_logged_in'] ) {
$sql = "SELECT p.poster_id, p.topic_id
FROM " . POSTS_TABLE . " p
WHERE p.topic_id = $topic_id
AND p.poster_id = " . $userdata['user_id'];
$resultat = $db->sql_query($sql);
$valid = $db->sql_numrows($resultat) ? TRUE : FALSE;}

if( $attach_sig && $user_sig != '' && $userdata['user_sig_bbcode_uid'] )
{
        $user_sig = bbencode_second_pass($user_sig, $userdata['user_sig_bbcode_uid']);
        $user_sig = bbencode_third_pass($user_sig, $userdata['user_sig_bbcode_uid'], $valid);
}

if( $bbcode_on )
{
        $preview_message = bbencode_second_pass($preview_message, $bbcode_uid);
        $preview_message = bbencode_third_pass($preview_message, $bbcode_uid, $valid);
}
 

Find  

if ( !preg_match('/^Re:/', $subject) && strlen($subject) > 0 )
{
        $subject = 'Re: ' . $subject;
}
 

Add Below  

if( !$userdata['session_logged_in'] ) {$message = hide_in_quote($message);}
else { $sql = "SELECT p.poster_id, p.topic_id
FROM " . POSTS_TABLE . " p
WHERE p.topic_id = $topic_id
AND p.poster_id = " . $userdata['user_id'];
$resultat = $db->sql_query($sql);
if(!$db->sql_numrows($resultat)) {$message = hide_in_quote($message);}
}


--------------------
2 - In viewtopic.php
--------------------


Find  

//
// Generate a 'Show posts in previous x days' select box. If the postdays var is POSTed
// then get it's value, find the number of topics with dates newer than it (to properly
// handle pagination) and alter the main query
//
 

Add below  

$valid = FALSE;
if( $userdata['session_logged_in'] ) {
$sql = "SELECT p.poster_id, p.topic_id
FROM " . POSTS_TABLE . " p
WHERE p.topic_id = $topic_id
AND p.poster_id = " . $userdata['user_id'];
$resultat = $db->sql_query($sql);
$valid = $db->sql_numrows($resultat) ? TRUE : FALSE;}
 

Find  

if ( $user_sig != '' && $user_sig_bbcode_uid != '' )
{
        $user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig);
}

if ( $bbcode_uid != '' )
{
        $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
}
 

Replace by  

if ( $user_sig != '' && $user_sig_bbcode_uid != '' )
{
        $user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig);
        $user_sig = bbencode_third_pass($user_sig, $user_sig_bbcode_uid, $valid);
}

if ( $bbcode_uid != '' )
{
        $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
        $message = bbencode_third_pass($message, $bbcode_uid, $valid);
}
 
-----------------
3 - In search.php
-----------------

Find  

//
// If the board has HTML off but the post has HTML
// on then we process it, else leave it alone
//
if ( $return_chars != -1 )
 

And replace it by  

//
// If the board has HTML off but the post has HTML
// on then we process it, else leave it alone
//
if( $return_chars == -1 )
 

Find  

if ( $bbcode_uid != '' )
{
        $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
}
 

Replace by  

if ( $bbcode_uid != '' )
{
        $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
        $message = bbencode_third_pass($message, $bbcode_uid, FALSE);
}
 
-----------------------
4 - In topic_review.php  // in the "/includes" directory
-----------------------

Find  

        //
        // Okay, let's do the loop, yeah come on baby let's do the loop
        // and it goes like this ...
        //
        if ( $row = $db->sql_fetchrow($result) )
        {
 

Add below  

$valid = FALSE;
if( $userdata['session_logged_in'] ) {
$sql = "SELECT p.poster_id, p.topic_id
FROM " . POSTS_TABLE . " p
WHERE p.topic_id = $topic_id
AND p.poster_id = " . $userdata['user_id'];
$resultat = $db->sql_query($sql);
$valid = $db->sql_numrows($resultat) ? TRUE : FALSE;}
 

Find  

if ( $bbcode_uid != "" )
{
        $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
}
 

Replace by  

if ( $bbcode_uid != "" )
{
        $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
        $message = bbencode_third_pass($message, $bbcode_uid, $valid);
}
 
-----------------
5 - In bbcode.php // in the "/includes" directory
-----------------

Find  

$bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']);  

Add Below  

$bbcode_tpl['show'] = str_replace('{HTEXTE}', '\\1', $bbcode_tpl['show']);
 

*Before* this text  

/**
 * Does second-pass bbencoding. This should be used before displaying the message in
 * a thread. Assumes the message is already first-pass encoded, and we are given the
 * correct UID as used in first-pass encoding.
 */
 

Add this functions  

function hide_in_quote($text)
{
        $text = preg_replace("#\[hide\](.*?)\[\/hide\]#si","--- phpBB : The Protected Message is not copied in this quote ---", $text);
        return $text;
}

function bbencode_third_pass($text, $uid, $deprotect)
{
        global $bbcode_tpl;

        // pad it with a space so we can distinguish between FALSE and matching the 1st char (index 0).
        // This is important; bbencode_quote(), bbencode_list(), and bbencode_code() all depend on it.
        $text = " " . $text;

        // First: If there isn't a "[" and a "]" in the message, don't bother.
        if (! (strpos($text, "[") && strpos($text, "]")) )
        {
                // Remove padding, return.
                $text = substr($text, 1);
                return $text;
        }
        // Patterns and replacements for URL and email tags..
        $patterns = array();
        $replacements = array();
 
        if ( $deprotect ) {
        $patterns[0] = "#\[hide:$uid\](.*?)\[/hide:$uid\]#si";
        $replacements[0] = $bbcode_tpl['show'];
        }
        else
        {
        $patterns[0] = "#\[hide:$uid\](.*?)\[/hide:$uid\]#si";
        $replacements[0] = $bbcode_tpl['hide'];
        }

        $text = preg_replace($patterns, $replacements, $text);
 
        // Remove our padding from the string..
        $text = substr($text, 1);

        return $text;
}
 

Find in function "bbencode_first_pass"  

// [img]image_url_here[/img] code..
$text = preg_replace("#\[img\](([a-z]+?)://([^ \"\n\r]+?))\[/img\]#si", "[img:$uid]\\1[/img:$uid]", $text);  

Add Below  

//[hide]message[/hide]
$text = preg_replace("#\[hide\](.*?)\[\/hide\]#si","[hide:$uid]\\1[/hide:$uid]", $text);  


-----------------
6 - In bbcode.tpl // in the Templates/{Used template}/ directory
-----------------
 
At the top, add  

<!-- BEGIN show -->
</span>
<table border="0" align="center" width="90%" cellpadding="3" cellspacing="1">
<tr>
          <td><span class="genmed"><b>Protected Message:</b></span></td>
        </tr>
        <tr>
          <td class="quote">
                {HTEXTE}
                </td>
        </tr>
</table>
<span class="postbody">
<!-- END show -->

<!-- BEGIN hide -->
</span>
<table border="0" align="center" width="90%" cellpadding="3" cellspacing="1">
<tr>
          <td><span class="genmed"><b>Protected Message:</b></span></td>
        </tr>
        <tr>
          <td class="quote">
                <center>--- If you are a *registered user* : you need to post in this topic to see the message ---</center>
                </td>
        </tr>
</table>
<span class="postbody">
<!-- END hide -->

-----------------------
7 - In posting_body.tpl // in the Templates/{Used template}/ directory
-----------------------

 This part add a button in the dialog box (newtopic,...).

In the list of "// Helpline messages", add :
 

h_help = "Hide: [hide]message[/hide] (alt+h)";  

Find this line :
bbtags = new Array('[b]','[/b]'...

And add at the end :
'[hide]' and '[/hide]'

You will obtain something like this :
 

bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[hide]','[/hide]');
 

Find  

<td><span class="genmed">
<input type="button" class="button" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onClick="bbstyle(16)" onMouseOver="helpline('w')" />
</span></td>
 

Add Below : (Don't forget to adapt the "addbbcode" numbers if neccesary ! (exemple: addbbcode18 -> addbbcode20, 20 -> 22, etc)  

<td><span class="genmed">
<input type="button" class="button" accesskey="h" name="addbbcode18" value="Hide" style="width: 40px" onClick="bbstyle(18)" onMouseOver="helpline('h')" />
</span></td>
 

Next, you need to modify all the "addbbcodexx" in the rest of the file. (exemple : addbbcode20 -> addbbcode22)

That's all ! :-)
Philippe

IF YOU HAVE A PROBLEM ("undefined" instead of [hide]...) - Go on my website or contact me :
http://membres.lycos.fr/philiweb/download/hide/hackhide.php?ver=rc3&num=7&lang=en
Official page => http://membres.lycos.fr/philiweb/accueil.php?num=15



ESTE TBM NÃO:


Código: [Seleccione]


#################################################################
## Mod Title: Hide Links
## Mod Author: Nome < nome@bk.ru > ICQ #162783614
## Mod Version: 3.0.0
## Mod Description: This mod will prevent links from being shown
##    to unregistered users. Instead they'll be
##    advised to register or login. Registered users
##    may also be not shown links if they don't have
##    a proper amount of posts set by the forum admin.
## Mod Features:
## - hide http links and email from unregistered users
## - hide http links and email from users which do not
##  have the proper amount of posts
## - hide http links and email from moderators of other
##  forums (on/off switch in admin panel)
##
## Installation Level: Easy
## Installation Time: 5 Minutes
##
## Files To Edit: 6
##
##              admin/admin_board.php
##              includes/bbcode.php
##              language/lang_english/lang_admin.php
##              language/lang_english/lang_main.php
##              templates/subSilver/bbcode.tpl
##              templates/subSilver/admin/board_config_body.tpl
##
#################################################################
## Author's notes:
## Code has been mostly rewritten, so you'll have to reinstall
## the mode.
#################################################################
#################################################################
## History
## - 3.0.0 - Completely rewrote the mod adding some new functions
## - 2.1.1 - Updated with latest bugfixes from phpbb groupe
## - 2.1.0 - Updated with latest bugfixes from phpbb groupe
## - 2.0.0 - Fixed a bug with [url] links
## - 1.0.0 - First released
#################################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
#################################################################

#
#-----[ SQL ]-------------------------------------------
# WARNING! Change phpbb_ to whatever database prefix you have

INSERT INTO `phpbb_config` SET `config_name`='necessary_post_number', `config_value`='0';
INSERT INTO `phpbb_config` SET `config_name`='mods_priority', `config_value`='1';

#
#-----[ OPEN ]------------------------------------------
#
admin/admin_board.php

#
#-----[ FIND ]------------------------------------------
#
$board_email_form_yes = ( $new['board_email_form'] ) ? "checked=\"checked\"" : "";
$board_email_form_no = ( !$new['board_email_form'] ) ? "checked=\"checked\"" : "";

#
#-----[ AFTER, ADD ]------------------------------------
#
$mods_priority_yes = ( $new['mods_priority'] ) ? "checked=\"checked\"" : "";
$mods_priority_no = ( !$new['mods_priority'] ) ? "checked=\"checked\"" : "";

#
#-----[ FIND ]------------------------------------------
#
"L_HOT_THRESHOLD" => $lang['Hot_threshold'],

#
#-----[ AFTER, ADD ]------------------------------------
#
"L_NECESSARY_POST_NUMBER" => $lang['Necessary_Post_Number'],
"L_MODS_PRIORITY" => $lang['Mods_Priority'],
"L_MODS_PRIORITY_EXPLAIN" => $lang['Mods_Priority_Explain'],

#
#-----[ FIND ]------------------------------------------
#
"HOT_TOPIC" => $new['hot_threshold'],

#
#-----[ AFTER, ADD ]------------------------------------
#
"NECESSARY_POST_NUMBER" => $new['necessary_post_number'],
"MODS_PRIORITY_YES" => $mods_priority_yes,
"MODS_PRIORITY_NO" => $mods_priority_no,

#
#-----[ OPEN ]------------------------------------------
#
includes/bbcode.php

#
#-----[ FIND ]------------------------------------------
#

function prepare_bbcode_template($bbcode_tpl)
{
global $lang;

#
#-----[ REPLACE WITH ]------------------------------------
#
function prepare_bbcode_template($bbcode_tpl)
{
global $lang, $board_config, $phpEx, $u_login_logout;

#
#-----[ FIND ]------------------------------------------
#
$bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']);

#
#-----[ AFTER, ADD ]------------------------------------
#
$bbcode_tpl['login_request'] = str_replace('{L_WARNING}', $lang['Links_Allowed_For_Registered_Only'], $bbcode_tpl['login_request']);
$bbcode_tpl['login_request'] = str_replace('{GET_REGISTERED}', sprintf($lang['Get_Registered'], "<a href=\"" . append_sid('profile.' . $phpEx . '?mode=register') . "\">", "</a>"), $bbcode_tpl['login_request']);
$bbcode_tpl['login_request'] = str_replace('{ENTER_FORUM}', sprintf($lang['Enter_Forum'], "<a href=\"" . append_sid($u_login_logout) . "\">", "</a>"), $bbcode_tpl['login_request']);

$bbcode_tpl['post_count_request'] = str_replace('{L_WARNING}', sprintf($lang['Post_Limit'], $board_config['necessary_post_number']), $bbcode_tpl['post_count_request']);

#
#-----[ FIND ]------------------------------------------
#
function bbencode_second_pass($text, $uid)
{
global $lang, $bbcode_tpl;

#
#-----[ REPLACE WITH ]------------------------------------
#
function bbencode_second_pass($text, $uid)
{
global $lang, $bbcode_tpl, $userdata, $board_config, $is_auth;

#
#-----[ FIND ]------------------------------------------
#
// matches a [url]xxxx://www.phpbb.com[/url] code..
$patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];

// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];

// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];


// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url4'];

// [email]user@domain.tld[/email] code..
$patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = $bbcode_tpl['email'];

#
#-----[ REPLACE WITH ]------------------------------------
#
$url_replacer = ( !$userdata['session_logged_in'] ) ? $bbcode_tpl['login_request'] : ( ( ( $userdata['user_posts'] >= $board_config['necessary_post_number'] ) || ( $userdata['user_level'] == 1 ) || ( ( $is_auth['auth_mod'] == 1 ) && ( $board_config['mods_priority'] == 1 ) ) ) ? '' : $bbcode_tpl['post_count_request'] );

// matches a [url]xxxx://www.phpbb.com[/url] code..
$patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['url1'];

// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['url2'];

// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['url3'];

// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['url4'];

// [email]user@domain.tld[/email] code..
$patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = ( $url_replacer ) ? $url_replacer : $bbcode_tpl['email'];

#
#-----[ FIND ]------------------------------------------
#
function make_clickable($text)
{

#
#-----[ AFTER, ADD ]------------------------------------
#
global $bbcode_tpl, $userdata, $board_config, $is_auth;

#
#-----[ FIND ]------------------------------------------
#
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);

// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);

// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);

#
#-----[ REPLACE WITH ]------------------------------------
#
$url_replacer = ( !$userdata['session_logged_in'] ) ? $bbcode_tpl['login_request'] : ( ( ( $userdata['user_posts'] >= $board_config['necessary_post_number'] ) || ( $userdata['user_level'] == 1 ) || ( ( $is_auth['auth_mod'] == 1 ) && ( $board_config['mods_priority'] == 1 ) ) ) ? '' : $bbcode_tpl['post_count_request'] );

if ( $url_replacer )
{
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", $url_replacer, $ret);

// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", $url_replacer, $ret);

// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", $url_replacer, $ret);
}
else
{
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);

// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);

// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
}

#*********************************************************************
#      
# NOTE: You will have to apply these changes to all existing
# language packs. I use lang_english as an example      
#      
#*********************************************************************

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_admin.php

#
#-----[ FIND ]------------------------------------------
#
$lang['Login_reset_time_explain'] =

#
#-----[ AFTER, ADD ]------------------------------------
#
//
// Hide links mod
//
$lang['Necessary_Post_Number'] = 'Number of posts without which people can\'t see links';
$lang['Mods_Priority'] = 'Forum moderators post count doesn\'t matter';
$lang['Mods_Priority_Explain'] = 'Forum moderators are allowed to see all links in their forum, even if they don\'t have enough posts';

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
$lang['Please_remove_install_contrib'] =

#
#-----[ AFTER, ADD ]------------------------------------
#

//
// Hide links mod
//
$lang['Links_Allowed_For_Registered_Only'] = 'Only registered users can see links on this board!';
$lang['Get_Registered'] = 'Get %sregistred%s or ';
$lang['Enter_Forum'] = '%senter%s the forums!';
$lang['Post_Limit'] = 'You must have <b>%s</b> posts to see links on this board';

#*********************************************************************
#      
# NOTE: You will have to apply these changes to all existing templates
# I use SubSilver as an example      
#      
#*********************************************************************

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/bbcode.tpl

#
#-----[ FIND ]------------------------------------------
#
<!-- BEGIN email --><a href="mailto:{EMAIL}">{EMAIL}</a><!-- END email -->

#
#-----[ AFTER, ADD ]------------------------------------
#
<!-- BEGIN login_request --></span><table width="40%" cellspacing="1" cellpadding="3" border="0">
<tr>
<td class="quote">{L_WARNING}<br />{GET_REGISTERED}{ENTER_FORUM}</td>
</tr>
</table><span class="postbody"><!-- END login_request -->

<!-- BEGIN post_count_request --> </span><table width="40%" cellspacing="1" cellpadding="3" border="0">
<tr>
<td class="quote">{L_WARNING}</td>
</tr>
</table><span class="postbody"><!-- END post_count_request -->

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/board_config_body.tpl

#
#-----[ FIND ]------------------------------------------
#
<tr>
<td class="row1">{L_HOT_THRESHOLD}</td>
<td class="row2"><input class="post" type="text" name="hot_threshold" size="3" maxlength="4" value="{HOT_TOPIC}" /></td>
</tr>

#
#-----[ AFTER, ADD ]------------------------------------
#
<tr>
<td class="row1">{L_NECESSARY_POST_NUMBER}</td>
<td class="row2"><input class="post" type="text" name="necessary_post_number" size="3" maxlength="4" value="{NECESSARY_POST_NUMBER}" /></td>
</tr>
<tr>
<td class="row1">{L_MODS_PRIORITY}<br /><span class="gensmall">{L_MODS_PRIORITY_EXPLAIN}</span></td>
<td class="row2"><input type="radio" name="mods_priority" value="1" {MODS_PRIORITY_YES} />{L_YES}&nbsp; &nbsp;<input type="radio" name="mods_priority" value="0" {MODS_PRIORITY_NO} />{L_NO}</td>
</tr>

#
#-----[ SAVE/CLOSE ALL FILES ]--------------------------
#
#EoM


Agradeço.