Protected message?

This forum is now closed as part of retiring phpBB2
Forum rules
READ: phpBB.com Board-Wide Rules and Regulations

This forum is now closed due to phpBB2.0 being retired.
Post Reply
gr33n
Registered User
Posts: 20
Joined: Mon Aug 23, 2004 11:13 pm

Protected message?

Post by gr33n » Thu Nov 11, 2004 5:01 am

Is there any mod relised that supports Protected message?

BTW: SEARCH AINT WORKING IN THIS FORUM! (it shows only white page)

sonyboy
Registered User
Posts: 2980
Joined: Thu Oct 07, 2004 2:10 am

Post by sonyboy » Thu Nov 11, 2004 5:51 am

protect message from who? forum guest? if so you can do that by setting permission in ACP.

Zypher
Registered User
Posts: 381
Joined: Fri Mar 12, 2004 7:04 am
Location: Australia
Contact:

Post by Zypher » Thu Nov 11, 2004 8:31 am

i know that is weird, it does that if there is no results shown, like if you search for Help mod, it wont show up because it doesnt exist so a blank page occurs.
- Zypher

~Beware of the Darkness Within!~

Fully Loaded

gr33n
Registered User
Posts: 20
Joined: Mon Aug 23, 2004 11:13 pm

Post by gr33n » Thu Nov 11, 2004 8:41 am

the mod does that if i put [hide] tekst [/hide] then the text will be shown to users afther they post to my thread.

sonyboy
Registered User
Posts: 2980
Joined: Thu Oct 07, 2004 2:10 am

Post by sonyboy » Thu Nov 11, 2004 6:15 pm

before proceed, back up your forum files first.

Code: Select all

############################################################################
## 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]','
','
  • ','
','
  • ','
','[img]','[/img]','','','[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/downlo ... =7&lang=en
Official page => http://membres.lycos.fr/philiweb/accueil.php?num=15[/code]

After install this MOD, besure to visit MOD creator's site, because there are changes need to be make, due to phpBB version.

gr33n
Registered User
Posts: 20
Joined: Mon Aug 23, 2004 11:13 pm

Post by gr33n » Thu Nov 11, 2004 11:48 pm

Thanks man!.. that was what i ment.

Post Reply

Return to “[2.0.x] MOD Requests”