The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Improved Post Report System Details »» | |||||||||||||||||||||||||
This hack will place post reports into modcp, and enable moderators to give feedback to users via a page that users can see which includes all of their own post reports.
Post reports have three possible statuses: open, pending or closed. When a post report is made, the report is put into a page in modcp called 'outstanding reports', and has a status of 'open'. There is a new option in admincp which governs whether or not the post report emails are sent to moderators; so if this is switched on, the emails are still sent. Moderators can then see who reported the post and the time at which it was reported, and the comment given by the user. There are also links to the post itself, the thread the post is on, the forum the thread is in, the user who posted the post and the user who reported the post. The user page can be linked anywhere you choose; I have included instructions for linking it on the quicklinks menu. This system can be switched on or off from admincp. When off, the behaviour of post reports is as normal. I've also included an optional scheduled task which will remove post reports from the system than are older than an age specified in days in admincp. Moderators can then update the status of the report, and add a comment. The user who reported the post can then see these changes reflected in their page - it will show the name of the moderator dealing with the report, the comment (if any) left by the moderator, and the time at which the report was last updated. When a moderator sets the status of a report to 'closed', it is moved to another page in modcp called 'closed post reports'. Post reports that are in the pending state are still kept in the 'outstanding post reports' page. This hack has been tested on 3.0.3, 3.0.4, 3.0.5 and 3.0.6, and can be seen in action on The Student Room where it has been up and running since 18th January 2005. Screenshots: 1) What the user sees 2) A closed report in modcp 3) The admincp settings 4) An open report and the modcp menu items Updated 26th Feb 2005: installer now calls build_language so there is no need to rebuild the phrase cache manually. Show Your Support
|
Comments |
#22
|
|||
|
|||
hi,
nevermind i figured it out it works ok now i did something wrong while editing report.php up and running [high]* Delphiprogrammi clcks install [/high] i will add this hack to my list |
#23
|
|||
|
|||
any chance u can add it in the admincp as well so i dont have to use the modcp lol on my site and my mods can use it on the modcp. Most appreciated if you can do this for me thanks in advance ,. Awsome hack Thanks again.
|
#24
|
||||
|
||||
Quote:
|
#25
|
|||
|
|||
to add this to AdminCp Do these edits. And Copy postreports.php from modcp over to admincp folder
Find in This: /admincp/index.php Find This Code: construct_nav_group($vbphrase['users']); Below This Add: construct_nav_option($vbphrase['postreports_new'], "postreports.php?do=list"); construct_nav_option($vbphrase['postreports_closed'], "postreports.php?do=closed"); construct_nav_group($vbphrase['postreports'], '<hr />', "$df"); |
#26
|
||||
|
||||
Will this work along with Erwin's vB Report Manager or will there be a future versions where you can have a report note sent to Mod's Forum or PMs? I rather like this mod for letting user's know they're being heard but I like using the other so staff can discuss reported threads if needed! :]
|
#27
|
||||
|
||||
I would like to know this as well.
Quote:
|
#28
|
||||
|
||||
Quote:
|
#29
|
||||
|
||||
Ok, assuming you've first installed the other hack, go about installing this one as normal, except when you come to the part that says:
Code:
find: if ($reason == '') { eval(print_standard_error('error_noreason')); } add afterwards: if ($vboptions['postreports_enabled']) { require_once('./includes/functions.php'); $userid = $bbuserinfo['userid']; $DB_site->query("INSERT INTO " . TABLE_PREFIX . "postreport (postid, userid, reporttext, status, dateline) VALUES ($postid, $userid, '". addslashes(htmlspecialchars_uni($reason)) . "', 0, " . TIMENOW . " )"); } if (!$vboptions['postreports_enabled'] || ($vboptions['postreports_enabled'] && $vboptions['postreports_alsoemail'])) { find: vbmail_end(); add afterwards: } Code:
if ($vboptions['postreports_enabled']) { require_once('./includes/functions.php'); $userid = $bbuserinfo['userid']; $DB_site->query("INSERT INTO " . TABLE_PREFIX . "postreport (postid, userid, reporttext, status, dateline) VALUES ($postid, $userid, '". addslashes(htmlspecialchars_uni($reason)) . "', 0, " . TIMENOW . " )"); } My report.php with both hacks installed if I've not explained it very well: Code:
<?php /*======================================================================*\ || #################################################################### || || # vBulletin 3.0.7 - Licence Number <edited> || # ---------------------------------------------------------------- # || || # Copyright ?2000?2005 Jelsoft Enterprises Ltd. All Rights Reserved. || || # This file may not be redistributed in whole or significant part. # || || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || || #################################################################### || \*======================================================================*/ // ####################### SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE); // #################### DEFINE IMPORTANT CONSTANTS ####################### define('NO_REGISTER_GLOBALS', 1); define('THIS_SCRIPT', 'report'); // ################### PRE-CACHE TEMPLATES AND DATA ###################### // get special phrase groups $phrasegroups = array('messaging'); // get special data templates from the datastore $specialtemplates = array(); // pre-cache templates used by all actions $globaltemplates = array( 'newpost_usernamecode', 'reportbadpost' ); // pre-cache templates used by specific actions $actiontemplates = array(); // ######################### REQUIRE BACK-END ############################ require_once('./global.php'); // Erwin's Report Hack require_once('./includes/functions_bbcodeparse.php'); require_once('./includes/functions_newpost.php'); // Erwin's Report Hack // ####################################################################### // ######################## START MAIN SCRIPT ############################ // ####################################################################### //check usergroup of user to see if they can use this if (!$bbuserinfo['userid']) { print_no_permission(); } /* if (!$vboptions['enableemail']) { eval(print_standard_error('error_emaildisabled')); } */ if (!$vboptions['enableemail'] && ($vboptions['postreports_enabled'] && $vboptions['postreports_alsoemail'])) { eval(print_standard_error('error_emaildisabled')); } if (empty($_REQUEST['do'])) { $_REQUEST['do'] = 'report'; } $forumperms = fetch_permissions($threadinfo['forumid']); if (!($forumperms & CANVIEW)) { print_no_permission(); } if ($threadinfo['isdeleted'] OR $postinfo['isdeleted']) { $idname = $vbphrase['post']; eval(print_standard_error('error_invalidid')); } // check if there is a forum password and if so, ensure the user has it set verify_forum_password($foruminfo['forumid'], $foruminfo['password']); if ($_REQUEST['do'] == 'report') { $postid = verify_id('post', $_REQUEST['postid'] ); /*if ($postinfo['userid'] == $bbuserinfo['userid']) { eval(print_standard_error('error_cantreportself')); }*/ // draw nav bar $navbits = array(); $parentlist = array_reverse(explode(',', $foruminfo['parentlist'])); foreach ($parentlist AS $forumID) { $forumTitle = $forumcache["$forumID"]['title']; $navbits["forumdisplay.php?$session[sessionurl]f=$forumID"] = $forumTitle; } $navbits["showthread.php?$session[sessionurl]p=$postid"] = $threadinfo['title']; $navbits[''] = $vbphrase['report_bad_post']; $navbits = construct_navbits($navbits); require_once('./includes/functions_editor.php'); $textareacols = fetch_textarea_width(); eval('$usernamecode = "' . fetch_template('newpost_usernamecode') . '";'); eval('$navbar = "' . fetch_template('navbar') . '";'); eval('print_output("' . fetch_template('reportbadpost') . '");'); } if ($_POST['do'] == 'sendemail') { $postid = verify_id('post', $_REQUEST['postid'] ); globalize($_POST , array('reason' => STR)); if ($reason == '') { eval(print_standard_error('error_noreason')); } if ($vboptions['postreports_enabled']) { require_once('./includes/functions.php'); $userid = $bbuserinfo['userid']; $DB_site->query("INSERT INTO " . TABLE_PREFIX . "postreport (postid, userid, reporttext, status, dateline) VALUES ($postid, $userid, '". addslashes(htmlspecialchars_uni($reason)) . "', 0, " . TIMENOW . " )"); } /* $moderators = $DB_site->query(" SELECT DISTINCT user.email FROM " . TABLE_PREFIX . "moderator AS moderator," . TABLE_PREFIX . "user AS user WHERE user.userid = moderator.userid AND moderator.forumid IN ($foruminfo[parentlist]) "); */ // Erwin's Report Hack $moderators = $DB_site->query(" SELECT DISTINCT user.email, user.userid FROM " . TABLE_PREFIX . "moderator AS moderator," . TABLE_PREFIX . "user AS user WHERE user.userid = moderator.userid AND moderator.forumid IN ($foruminfo[parentlist]) "); // Erwin's Report Hack $mods = array(); while ($moderator = $DB_site->fetch_array($moderators)) { $mods[] = $moderator; } $threadinfo['title'] = unhtmlspecialchars($threadinfo['title']); $postinfo['title'] = unhtmlspecialchars($postinfo['title']); /* if (empty($mods) OR $foruminfo['options'] & $_FORUMOPTIONS['warnall']) { // get admins if no mods or if this forum notifies all $moderators = $DB_site->query(" SELECT user.email, user.languageid FROM " . TABLE_PREFIX . "user AS user INNER JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING (usergroupid) WHERE usergroup.adminpermissions <> 0 "); while ($moderator = $DB_site->fetch_array($moderators)) { $mods[] = $moderator; } } */ // Erwin's Report Hack if (empty($mods) OR $foruminfo['options'] & $_FORUMOPTIONS['warnall']) { // get admins if no mods or if this forum notifies all $moderators = $DB_site->query(" SELECT user.email, user.languageid, user.userid FROM " . TABLE_PREFIX . "user AS user INNER JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING (usergroupid) WHERE usergroup.adminpermissions <> 0 "); while ($moderator = $DB_site->fetch_array($moderators)) { $mods[] = $moderator; } } // Erwin's Report Hack // Erwin's Report Hack if ($vboptions['vbreportthread'] == '1') { $forumid = $vboptions['vbreportforum']; $today = vbdate('m-d-Y', TIMENOW, false, false); $DB_site->query(" INSERT INTO " . TABLE_PREFIX . "thread(title, lastpost, forumid, open, replycount, postusername, postuserid, lastposter, dateline, iconid, visible, attach) VALUES ('$today REPORT: " . addslashes($foruminfo['title']) . " - " . addslashes($postinfo['username']) . "', " . TIMENOW . ", $forumid, 1, 0, '" . addslashes($bbuserinfo['username']) . "', $bbuserinfo[userid], '" . addslashes($bbuserinfo['username']) . "', " . TIMENOW . ", 0, 1, 0) "); $thread['threadid'] = $DB_site->insert_id(); eval(fetch_email_phrases('reportbadpost')); $message = convert_url_to_bbcode($message); $DB_site->query(" INSERT INTO " . TABLE_PREFIX . "post (threadid, title, username, userid, dateline, pagetext, allowsmilie, showsignature, iconid, visible) VALUES ($thread[threadid], '$today REPORT: " . addslashes($foruminfo['title']) . " - " . addslashes($postinfo['username']) . "', '" . addslashes($bbuserinfo['username']) . "', $bbuserinfo[userid], " . TIMENOW . ", '" . addslashes($message) . "', 1, 1, 0, 1) "); $post['postid'] = $DB_site->insert_id(); $DB_site->query(" UPDATE " . TABLE_PREFIX . "thread SET firstpostid = $post[postid] WHERE threadid = $thread[threadid] "); $DB_site->query(" UPDATE " . TABLE_PREFIX . "forum SET replycount = replycount + 1, threadcount = threadcount + 1, lastpost = " . TIMENOW . ", lastposter = '" . addslashes($bbuserinfo['username']) . " - " . addslashes($postinfo['username']) . "', lastthread = '$today REPORT: " . addslashes($foruminfo['title']) . "', lastthreadid = $thread[threadid] WHERE forumid = $forumid "); } if ($vboptions['vbreportpm'] == '1') { $DB_site->query("INSERT INTO " . TABLE_PREFIX . "pmtext\n\t(fromuserid, fromusername, title, message, touserarray, iconid, dateline, showsignature)\nVALUES\n\t($bbuserinfo[userid], '" . addslashes($bbuserinfo['username']) . "', '$today REPORT: " . addslashes($foruminfo['title']) . " - " . addslashes($postinfo['username']) . "', '".addslashes(htmlspecialchars($message))."', '" . addslashes(serialize($tostring)) . "', 0, " . TIMENOW . ", 1)"); $pmtextid = $DB_site->insert_id(); } // Erwin's Report Hack vbmail_start(); /* foreach ($mods AS $index => $moderator) { if (!empty($moderator['email'])) { eval(fetch_email_phrases('reportbadpost', $moderator['languageid'])); vbmail($moderator['email'], $subject, $message); } } */ // Erwin's Report Hack foreach ($mods AS $index => $moderator) { if (!empty($moderator['email'])) { eval(fetch_email_phrases('reportbadpost', $moderator['languageid'])); if ($vboptions['vbreportemail'] == '1') { vbmail($moderator['email'], $subject, $message); } if ($vboptions['vbreportpm'] == '1') { $DB_site->query("INSERT INTO " . TABLE_PREFIX . "pm (pmtextid, userid, messageread) VALUES ($pmtextid, $moderator[userid], 0)"); $DB_site->shutdown_query("UPDATE " . TABLE_PREFIX . "user SET pmtotal=pmtotal+1, pmunread=pmunread+1 WHERE userid = $moderator[userid]"); } } } // Erwin's Report Hack vbmail_end(); eval(print_standard_redirect('redirect_reportthanks')); } /*======================================================================*\ || #################################################################### || # Downloaded: 08:35, Sun Feb 20th 2005 || # CVS: $RCSfile: report.php,v $ - $Revision: 1.47 $ || #################################################################### \*======================================================================*/ ?> |
#30
|
|||
|
|||
I installed this mod, well i tried. Followed everything correctly but they links arent showing up in modcp, the tables around them are their but no links!
Is it something i've done wrong, can someone help thanks! |
#31
|
||||
|
||||
Quote:
I really should have put a call to build_language in the installer, but I didn't know about it at the time. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|