Hi meine frage kann man im Forum ein Hide button einbauen ?
so das man z.b. einen youtube link erst nach antwort sieht ?
betroffene Homepage: externer Link
Hier kann eine Notiz zum Merk-Eintrag hinzugefügt werden (optional)
Geschlossen |
############################################################################ ## 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]','','
Geschlossen | ||
Zurück zu Fehlersuche und Probleme |