PDA

View Full Version : Report System Mod - PM instead of email


rossco_2005
07-29-2005, 10:00 PM
THIS MOD IS NOT SUPPORTED ANYMORE

This hack is a rerelease of Sebastian's report system mod found here: https://vborg.vbsupport.ru/showthread.php?t=59927

But it's been changed a bit.
There is no warning system in my mod, I added a "report fulfilled" system to it, and i removed the emailing mods so all it does is PM them.


What is it?

This mod replaces the vbulletin report system with a new system featuring the folowing features:

The report post form has been redone to have user selectable "reason" for reporting, as well as an "other" box where they can type the reason
Reports are then PMed instead of emailed to mods and/or admins
vBulletin keeps the status of the report through the database...when a mod fulfills the report's request they can then change the report's status to "true"
The status of the report is show in the private message


Installation

File Edits

Open report.php.

Find:

$forumperms = fetch_permissions($threadinfo['forumid']);
if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR !($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads']))
{
print_no_permission();
}


if (!$threadinfo['threadid'] OR !$postinfo['visible'] OR !$threadinfo['visible'] OR !$postinfo['postid'] OR $threadinfo['isdeleted'] OR $postinfo['isdeleted'])
{
eval(standard_error(fetch_error('invalidid', $vbphrase['post'], $vbulletin->options['contactuslink'])));
}

Replace with:

if ($_GET['do'] != 'fulfilled' and $_GET['do'] != 'notfulfilled' and $_GET['do'] != 'img')
{

$forumperms = fetch_permissions($threadinfo['forumid']);
if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR !($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads']))
{
print_no_permission();
}


if (!$threadinfo['threadid'] OR !$postinfo['visible'] OR !$threadinfo['visible'] OR !$postinfo['postid'] OR $threadinfo['isdeleted'] OR $postinfo['isdeleted'])
{
eval(standard_error(fetch_error('invalidid', $vbphrase['post'], $vbulletin->options['contactuslink'])));
}

}

Find:

// draw nav bar

Above it add:

// Report System Mod
$sendto = array();
$tostring = array();
// / Report System Mod

Find:

'reason' => TYPE_STR,

Replace with:

// Report System Mod
'other' => TYPE_STR,
// / Report System Mod

Find:

if ($vbulletin->GPC['reason'] == '')
{
eval(standard_error(fetch_error('noreason')));

}

Replace with:

if ($reason == '' and $other != '')
{
$reason = $other;
}
elseif ($reason == '' and $other == '')
{
eval(standard_error(fetch_error('noreason')));
}

In 2 places Find:

$moderators = $db->query_read("
SELECT DISTINCT user.email, user.languageid

Replace with:

$moderators = $db->query_read("
SELECT DISTINCT user.email, user.languageid, user.userid, user.username

In 2 places Find:

while ($moderator = $db->fetch_array($moderators))
{
$mods[] = $moderator;

Replace with:

while ($moderator = $db->fetch_array($moderators))
{
$mods[] = $moderator;
// Report System Mod
$tostring["$moderator[userid]"] = $moderator['username'];
$sendto["$moderator[userid]"] = $moderator['userid'];
// / Report System Mod

Find:

foreach ($mods AS $index => $moderator)
{
if (!empty($moderator['email']))
{
$email_langid = ($moderator['languageid'] > 0 ? $moderator['languageid'] : $vbulletin->options['languageid']);

($hook = vBulletinHook::fetch_hook('report_send_email')) ? eval($hook) : false;

eval(fetch_email_phrases('reportbadpost', $email_langid));
vbmail($moderator['email'], $subject, $message, true);
}
}

Replace with:

// Report System Mod
$db->query("
INSERT INTO " . TABLE_PREFIX . "`reportfulfilled`
(status) VALUES ('false')
");
$id = $db->insert_id();

eval('$message = "' . fetch_template('report_msg') . '";');

$db->query("
INSERT INTO " . TABLE_PREFIX . " `pmtext`
(fromuserid, fromusername, title, message, touserarray, iconid, dateline, showsignature, allowsmilie)
VALUES
($vbphrase[fromuserid], '$vbphrase[fromusername]', 'Reported Post by " . $vbulletin->userinfo['username'] . "', '" . addslashes($message) . "', '" . addslashes(serialize($tostring)) . "', 0, " . time() . ", 0, 1)");

$pmtextid = $db->insert_id();

foreach ($mods AS $index => $moderator)
{
$db -> query("
INSERT INTO " . TABLE_PREFIX . "`pm`
(pmtextid, userid)
VALUES
($pmtextid, $moderator[userid])
");

$db -> query("
UPDATE " . TABLE_PREFIX . "`user` SET
pmtotal=pmtotal+1,
pmunread=pmunread+1
WHERE userid=$moderator[userid]
");
}

// / Report System Mod


Templates

Replace the template Reportbadpost with this code:


$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions - $vbphrase[report_bad_post]</title>
$headinclude
</head>
<body>
$header
$navbar


<form action="report.php" method="post">
<input type="hidden" name="s" value="$session[sessionhash]" />
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%"

align="center">
<tr>
<td class="tcat" align="$stylevar[right]">
<span style="float:$stylevar[left]">$vbphrase[report_bad_post]</span>
<span class="smallfont"><strong>$vbphrase[forum]</strong>: <a href="forumdisplay.php?$session[sessionurl]f=$foruminfo[forumid]">$foruminfo[title]</a></span>
</td>
</tr>
<tr>
<td class="panelsurround" align="center">
<div class="panel">$usernamecode
<div style="width:640px" align="left">

<fieldset class="fieldset">
<legend>Reason</legend>
<table cellpadding="0" cellspacing="3" border="0">
<tr>
<td><input type="radio" name="reason" value="offensive language" /></td>
<td width="96%"><b>offensive language</b></td>
</tr>
<tr>
<td><input type="radio" name="reason" value="blatant trolling" /></td>
<td width="96%"><b>blatant trolling</b></td>
</tr>
<tr>
<td><input type="radio" name="reason" value="harassing another user" /></td>
<td width="96%"><b>harassing another user</b></td>
</tr>
<tr>
<td><input type="radio" name="reason" value="illegal warez / crack sites" /></td>
<td width="96%"><b>illegal warez / crack sites</b></td>
</tr>
<tr>
<td><input type="radio" name="reason" value="repeating and or advertising" /></td>
<td width="96%"><b>repeating and or advertising</b></td>
</tr>
<tr>
<td><input type="radio" name="reason" value="pornographic material" /></td>
<td width="96%"><b>pornographic material</b></td>
</tr>
</table>
</fieldset>

<fieldset class="fieldset">
<legend>Other?</legend>
<div style="padding:3px">

<textarea name="other" rows="6" cols="$textareacols" wrap="virtual"></textarea>
</fieldset>

</div>
</div>

<div style="margin-top:6px">
<input type="hidden" name="p" value="$postid" />
<input type="hidden" name="do" value="sendemail" />
<input type="hidden" name="url" value="$url" />
<input type="submit" class="button" value="$vbphrase[send_report]" accesskey="s" />
</div>
</td>
</tr>
</table>

</form>

$footer

</body>
</html>


Then create a new template called report_msg with the following code:

/member.php?u=$bbuserinfo[userid]]$bbuserinfo[username] ($vboptionspost:

? /showpost.php?p=$postinfo[postid]&postcount=$postinfo[postid]]$threadinfo[title] ($vboptionsThread:

? /showthread.php?p=$postinfo[postid]]$threadinfo[title] ($vboptions $reason

Fulfilled Status: $vboptions[bburl]/report.php?id=$id&do=img
Change Status to: /report.php?do=fulfilled&id=$id]true ($vboptionsDB Query

Run this query from either PHPmyadmin or in vbulletin to add the reportfulfilled table:

CREATE TABLE `reportfulfilled` (
`id` int(10) NOT NULL auto_increment,
`status` varchar(10) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;


Other

Create a new bbcode called PHP Images, where the tag is "phpimg" and description can be whatever you want, with this code:

<img src="{param}" alt="" border="" />


Create a new member on your forum called "Reporter" or whatever you'd like. He does not have to have any special privileges or anything.

Now just import the included file "Report System Mod.xml" in the product manager to add the phrases and plugins automatically.

[b]Configuration

Edit the phrases "fromuserid" and "fromusername" to the username and userid of the reporter member you created in the installation.

You can change what images are used to 'report fulfilled' and 'report not fulfilled' in the plugin added.

If you want a "false" link for the fulfill status.. (set it back to not fulfilled) replace this in report_msg:

/report.php?do=fulfilled&id=$id]true ($vboptions[bburl)

with this:

/report.php?do=fulfilled&id=$id]true ($vboptions[bburl) | /report.php?do=notfulfilled&id=$id]false ($vboptions[bburl)


That should be all, enjoy!

rossco_2005
07-30-2005, 12:40 AM
I realize that the big long report.php file edit is going to be a turnoff for this mod, but I will be making 'premodded' report.php files based off of every version of vbulletin 3.5 that is released, for please using an unhacked report.php. :)

Paul M
07-30-2005, 12:47 AM
but I will be making 'premodded' report.php files based off of every version of vbulletin 3.5 that is releasedI'm not sure you are actually allowed to do that.

rossco_2005
07-30-2005, 01:13 AM
I'm not sure you are actually allowed to do that.
Alright, then I won't. :ermm:

Boofo
07-30-2005, 09:02 AM
Please put the instructions in a text file for those that want to download and have it in case of a future re-install or upgrade of vBulletin.

Sai01
08-02-2005, 09:46 PM
is there an esier way to do this without doing all the editing?...i mean that's alot of editing to do.

rossco_2005
08-05-2005, 10:38 PM
is there an esier way to do this without doing all the editing?...i mean that's alot of editing to do.
I know, and I think that is the biggest putoff about this hack. I will try and think of a better way to include the code tho, maybe just have a plugin with all the code then comment out teh original code. :ermm:

john1744
08-07-2005, 05:45 AM
Wow this thing would be so awesome if I didn't have to edit all that.

*tries to decide whether to install or not.*

mtha
09-19-2005, 05:51 PM
way too complicated. You can learn from this one:

https://vborg.vbsupport.ru/showthread.php?t=83074&highlight=report

murrtex
09-24-2005, 09:37 AM
there is no

eval('$message = "' . fetch_template('report_msg') . '";');

in report.php

sorry..what we'll do?

rossco_2005
09-24-2005, 12:36 PM
Sorry, that wasn't suppsoed to be there.

Jinovich
10-02-2005, 08:17 PM
When I try and send a report I get prompted with "Please enter a reason for reporting this post" and I can seem to figure out why :S As I have a reason stated

*fixed*

but now it sends the post report but still via email could this be possible of previously installed hacks on the 3.0.7 which still exist such as Erwins Post Report hack? Boozehounds Modcp post reports which still exists in our MySQL database?

rossco_2005
10-10-2005, 09:34 PM
I'm not sure if that might be the problem, sounds more like you missed a step when installing. :unsure:

itisonlyatest
10-22-2005, 07:32 PM
The mySQL query isn't working for me!

This is what I get:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin1 AUTO_INCREMENT=1' at line 5

rossco_2005
10-23-2005, 03:33 PM
I don't know if it will work but try this:
CREATE TABLE `reportfulfilled` (
`id` int(10) NOT NULL auto_increment,
`status` varchar(10) NOT NULL default '',
PRIMARY KEY (`id`)
)
Shouldn't have any problem with that, let me know.

itisonlyatest
10-24-2005, 08:55 PM
Your SQL query has been executed successfully (Query took 0.0086 sec)
SQL query:
CREATE TABLE `reportfulfilled` (
`id` int( 10 ) NOT NULL AUTO_INCREMENT ,
`status` varchar( 10 ) NOT NULL default '',
PRIMARY KEY ( `id` )
)


Thanks, it worked!

rossco_2005
10-24-2005, 09:14 PM
Thanks, it worked!
:D neat.


I'm thikning of stopping trying to support this mod as im not going to be using it on my forums anymore so i'm not gonna be able to work out the bugs in it. :ermm:
I definately wont be converting it to a plugin.

Snake
10-26-2005, 09:18 PM
Will this works on 3.5.0 Gold?

itisonlyatest
10-30-2005, 02:12 AM
Parse error: parse error, unexpected $ in /home/hilaryd/public_html/report.php on line 185

I get that error!

itisonlyatest
10-30-2005, 02:13 AM
What do I do?

Snake
01-23-2006, 08:49 PM
Is this going to work on v3.5.3?

Snake
01-27-2006, 10:35 AM
Is this gonna work on 3.5.3? And could you please turn this hack into a product? :)

Smiry Kin's
02-08-2006, 08:16 AM
edit - wrong post report thread

70age
08-23-2006, 03:31 PM
can this hack work on v3.6.0?

Snake
08-23-2006, 06:43 PM
Nope it will never work on 3.6. :( Hope it see it converted though.

Carlos2
11-21-2007, 08:48 AM
Can anybody making work for 3.6?

Carlos2
12-04-2007, 05:48 PM
Is any similar plugin for do this?

mgurain
04-28-2010, 06:29 AM
Hope to see this in 3.8.x ?
PM moderators of the reported post forum IS A MUST.

heartsglad
01-16-2012, 08:25 AM
This matter (receiving PM instead of E-Mail) is still important to many V-Bulletin Forumerz. Since years people looking for such mode. Is it possible to develop this function and add to VB 4.X.X, that Admins could via option choose receive Email or PM?.

PS:me is Annoyed of getting everymonth useless updates for VB4X. Updates that have some changes improvements in functions of VB (inststead styles) would be more usefull!