############################################################## ## MOD Title: tarb abuse control ## MOD Author: Karlg < karlg@email.net > (Karl Grindley) ## MOD Description: Highly effective abuse control ## over your users. (Tarb stands for Brat, backwards) ## MOD Version: 0.0.4 ## ## Installation Level: (easy) ## Installation Time: 45 Minutes ## Files To Edit: includes/functions_post.php ## admin/admin_users.php ## templates/subSilver/admin/user_edit_body.tpl ## posting.php ## viewforum.php ## viewtopic.php ## Included Files: N/A ############################################################## ## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the ## latest version of this MOD. Downloading this MOD from other sites could cause malicious code ## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered ## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/ ############################################################## ## Author Notes: ## The theory behind this is to discourage cronic abusers, ## spammers and rule breakers from using your forums, ## and make them just go away. The theory behind this mod ## allows you the admin, to flag a user without their ## knowledge, allow them to use the board, but all posts/ ## topics are flagged. Any flagged topic/post is only view ## able to the abusive user, and the administrator, but invisible ## to everyone else. ## ## When you ban or delete an account, the user is immidiately aware ## of this, which usually results in (attempted) retaliation. ## This mod lets you secreatly flag their account and ## lets the abuser waste their time, while leaving your ## community alone. ## ## To flag an abusive account, use the admin panel to edit ## the uesr's account. Set the Tarb flag, and and all posts/ ## topics posted by that user are invisible to all other users, ## but appears completely normal to the abusive user. All ## tarbed posts/topics are visable to the Administarator ## with a note next to the post/topic title. ## ## ToDo: ## - Add PM support ## - Add support for moderators to tarb users ## - Add easy topic/post tarb pruning ## - Add reports from the admin panel so an admin can see ## all tarbed posts/topics ## - Post/Topic tarb toggle (untarb/tarb a post/topic) ## - Add cookie support, so when a user logs out, his/her ## post is still viewable only to themselves ## - Add (seperate Mod?) viral mode (so a tarbed user ## creates/logs into another account, it will auto tarb ## the dupe account based on the browser cookie) ## ## NOTE: BACKUP YOUR DATABASE BEFORE PREFORMING THE BELOW ## SQL STATEMENTS ## ############################################################## ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD ############################################################## # #-----[ SQL ]------------------------------------------ # alter table phpbb_users add user_tarb tinyint(1) default 0 not null; alter table phpbb_posts add post_tarb tinyint(1) default '0' not null after post_username; alter table phpbb_topics add topic_tarb tinyint(1) default '0' not null after topic_poster; # #-----[ OPEN ]------------------------------------------ # admin/admin_users.php # #-----[ FIND ]------------------------------------------ # $user_avatar = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar'] : ''; $user_avatar_type = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar_type'] : ''; # #-----[ AFTER, ADD ]------------------------------------------ # $user_tarb = ( !empty($HTTP_POST_VARS['user_tarb']) ) ? intval( $HTTP_POST_VARS['user_tarb'] ) : 0; # #-----[ IN-LINE FIND ]------------------------------------------ # user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_active = $user_status, # #-----[ IN-LINE AFTER, ADD ]------------------------------------------ # user_tarb = $user_tarb, # #-----[ FIND ]------------------------------------------ # $user_timezone = $this_userdata['user_timezone']; $user_dateformat = $this_userdata['user_dateformat']; # #-----[ AFTER, ADD ]------------------------------------------ # $user_tarb = $this_userdata['user_tarb']; # #-----[ FIND ]------------------------------------------ # $s_hidden_fields .= ''; $s_hidden_fields .= ''; # #-----[ AFTER, ADD ]------------------------------------------ # $s_hidden_fields .= ''; # #-----[ FIND ]------------------------------------------ # 'ALLOW_AVATAR_YES' => ($user_allowavatar) ? 'checked="checked"' : '', 'ALLOW_AVATAR_NO' => (!$user_allowavatar) ? 'checked="checked"' : '', # #-----[ AFTER, ADD ]------------------------------------------ # 'USER_TARB_YES' => ($user_tarb) ? 'checked="checked"' : '', 'USER_TARB_NO' => (!$user_tarb) ? 'checked="checked"' : '', # #-----[ FIND ]------------------------------------------ # 'L_SPECIAL' => $lang['User_special'], 'L_SPECIAL_EXPLAIN' => $lang['User_special_explain'], # #-----[ AFTER, ADD ]------------------------------------------ # 'L_USER_TARB' => $lang['User_tarb'], # #-----[ OPEN ]------------------------------------------ # includes/functions_post.php # #-----[ IN-LINE, FIND ]------------------------------------------ # $sql = ( $mode != "editpost" ) ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id , topic_status, topic_type, topic_vote # #-----[ IN-LINE AFTER, ADD ]------------------------------------------ # , topic_tarb # #-----[ IN-LINE, FIND ]------------------------------------------ # Same line as above... ) VALUES ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote # #-----[ IN-LINE AFTER, ADD ]------------------------------------------ # , " . $userdata['user_tarb'] . " # #-----[ IN-LINE, FIND ]------------------------------------------ # $sql = ( $mode != "editpost" ) ? "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig # #-----[ IN-LINE AFTER, ADD ]------------------------------------------ # , post_tarb # #-----[ IN-LINE, FIND ]------------------------------------------ # ) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '$post_username', $current_time, '$user_ip', $bbcode_on, $html_on, $smilies_on, $attach_sig # #-----[ IN-LINE AFTER, ADD ]------------------------------------------ # , " . $userdata['user_tarb'] . " # #-----[ OPEN ]------------------------------------------ # language/lang_english/lang_admin.php # #-----[ FIND ]------------------------------------------ # $lang['User_status'] = 'User is active'; # #-----[ AFTER, ADD ]------------------------------------------ # $lang['User_tarb'] = 'User is tarbed'; # #-----[ OPEN ]------------------------------------------ # posting.php # #-----[ IN-LINE, FIND ]------------------------------------------ # # After this line: #submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_ #id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", #"''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length); if ( $error_msg == '' # #-----[ IN-LINE AFTER, ADD ]------------------------------------------ # && $userdata['user_tarb'] != "1" # #-----[ OPEN ]------------------------------------------ # viewtopic.php # #-----[ FIND ]------------------------------------------ # // // Go ahead and pull all data for this topic // # #-----[ AFTER, ADD ]------------------------------------------ # if ( $userdata['user_rank'] != "1" ) { $ignore_tarbed = "AND (p.post_tarb = '0' OR (p.poster_id = '" . $userdata['user_id'] . "'))"; } # #-----[ FIND ]------------------------------------------ # AND pt.post_id = p.post_id AND u.user_id = p.poster_id # #-----[ AFTER, ADD ]------------------------------------------ # $ignore_tarbed # #-----[ FIND ]------------------------------------------ # $post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : ''; : ''; # #-----[ AFTER, ADD ]------------------------------------------ # if ( $userdata['user_rank'] == "1" ) { if ( $postrow[$i]['post_tarb'] == 1) { $post_subject .= " (tarbed post)" ; } } # #-----[ OPEN ]------------------------------------------ # viewforum.php # #-----[ FIND ]------------------------------------------ # // Grab all the basic data (all topics except announcements) // for this forum // # #-----[ AFTER, ADD ]------------------------------------------ # if ( $userdata['user_rank'] != "1" ) { $ignore_tarbed = "AND (t.topic_tarb = '0' OR (t.topic_poster = '" . $userdata['user_id'] . "'))"; } # #-----[ FIND ]------------------------------------------ # AND u2.user_id = p2.poster_id AND t.topic_type <> " . POST_ANNOUNCE . " $limit_topics_time # #-----[ AFTER, ADD ]------------------------------------------ # $ignore_tarbed # #-----[ FIND ]------------------------------------------ # ...$topic_rowset[$i]['topic_title']) : $topic_rowset[$i]['topic_title']; # #-----[ AFTER, ADD ]------------------------------------------ # if ( $userdata['user_rank'] == "1" ) { if ( $topic_rowset[$i]['topic_tarb'] == 1) { $topic_title .= " (tarbed topic)" ; } } # #-----[ OPEN ]------------------------------------------ # templates/subSilver/admin/user_edit_body.tpl # #-----[ FIND ]------------------------------------------ #