PDA

View Full Version : [RELEASE v2.0] Report post to moderator -> PM or e-mail


JohnM
Sun 27th May '01, 1:34am
This hack allows you to select the method of delivery for the report to moderator message.

Rename the attached script to JohnMinstall.php and run it. It will make the necessary database modification and give you further instructions. Delete the script when you're done.

I hope this helps some people :)

DEMOLiTiON
Sun 27th May '01, 7:10am
But I get this when installing.

Parse error: parse error in /usr/local/etc/httpd/sites/demolition/htdocs/vb/admin/johnminstall.php on line 10

JohnM
Mon 28th May '01, 11:39am
not in admin, just your normal directory

works for me :-(

JohnM
Mon 28th May '01, 11:48am
If you're using PHP3 use the attached script instead and do the following:


Database update complete.

You must now find the following code in <b>report.php</b>:

//check usergroup of user to see if they can use PMs
if ($bbuserinfo[userid]==0) {
show_nopermission();
}

After it add:

//if reporting is disabled, show an error
if ($reporttomoderator == 0) {
eval("standarderror(\"".gettemplate("error_noreportpost")."\");");
}

Find:

$moderators=$DB_site->query("SELECT DISTINCT user.email FROM moderator,user WHERE user.userid=moderator.userid AND moderator.forumid IN ($foruminfo[parentlist])");

Replace with:

$moderators=$DB_site->query("SELECT DISTINCT userid, user.email FROM moderator,user WHERE user.userid=moderator.userid AND moderator.forumid IN ($foruminfo[parentlist])");

Find:

if ($DB_site->num_rows($moderators)==0) {
// get admins if no mods
$moderators=$DB_site->query("SELECT DISTINCT user.userid, user.email FROM user,usergroup WHERE user.usergroupid=usergroup.usergroupid AND usergroup.cancontrolpanel=1");
}

Replace with:

if ($DB_site->num_rows($moderators)==0) {
// get admins if no mods
$moderators=$DB_site->query("SELECT user.userid, user.email FROM user,usergroup WHERE user.usergroupid=usergroup.usergroupid AND usergroup.cancontrolpanel=1");
}

Find:

eval("$message = \"".gettemplate("email_reportbadpost",1,0)."\";");
eval("$subject = \"".gettemplate("emailsubject_reportbadpost",1,0)."\";");

mail ($moderator[email],$subject,$message,"From: \"$bbtitle Mailer\" <$webmasteremail>");

Replace with:

if ($reporttomoderator == 1 || $reporttomoderator == 3) {
eval("\$message = \"".gettemplate("email_reportbadpost",1,0)."\";");
eval("\$subject = \"".gettemplate("emailsubject_reportbadpost",1,0)."\";");
mail ($moderator[email],$subject,$message,"From: \"$bbtitle Mailer\" <$webmasteremail>");
}
if ($reporttomoderator == 2 || $reporttomoderator == 3) {
eval("\$message = \"".gettemplate("pm_reportbadpost",1,0)."\";");
eval("\$subject = \"".gettemplate("pmsubject_reportbadpost",1,0)."\";");
$DB_site->query("INSERT INTO privatemessage (privatemessageid,userid,touserid,fromuserid,title ,message,dateline,showsignature,iconid,messageread ,folderid) VALUES (NULL,$moderator[userid],$moderator[userid],$bbuserinfo[userid],'$subject','$message',".time().",0,0,0,0)");
}

Now, add a new template called 'error_noreportpost':
Sorry, this feature is disabled.

And templates 'pm_reportbadpost' and 'pmsubject_reportbadpost', based on the email_reportbadpost and emailsubject_reportbadpost templates.

Finally, upload the files and go into your control panel and select an option :)

JohnM
Mon 28th May '01, 11:55am
Err, forgot to attach it :O

DEMOLiTiON
Mon 28th May '01, 1:10pm
ok the installing is working now :)
but when reporting a post I get this in my e-mail:

Database error in vBulletin: Invalid SQL: SELECT DISTINCT userid, user.email FROM moderator,user WHERE user.userid=moderator.userid AND moderator.forumid IN (4,3,-1)
mysql error: Column: 'userid' in field list is ambiguous
mysql error number: 1052
Date: Monday 28th of May 2001 07:09:27 PM
Script: /vb/report.php

:(

Psycho
Mon 28th May '01, 6:42pm
ive installed everything just like you laid it out. but when i test it, i get a parse error on the last line on the report.php

the last line is the ?>

any suggestions?

JohnM
Mon 28th May '01, 8:37pm
demolition:

change:
$moderators=$DB_site->query("SELECT DISTINCT userid, user.email FROM moderator,user WHERE user.userid=moderator.userid AND moderator.forumid IN ($foruminfo[parentlist])");

to:
$moderators=$DB_site->query("SELECT DISTINCT user.userid, user.email FROM moderator,user WHERE user.userid=moderator.userid AND moderator.forumid IN ($foruminfo[parentlist])");

Psycho: make sure you didn't overwrite the } for the while() loop

Psycho
Tue 29th May '01, 12:15am
I changed that section of code, but still receive the same error code. the } is still there for the while loop, made sure there were 3 open and closing.

I attached the file for you to look at if you so wish, Maybe I set something wrong in it. Reason I tried to set this hack up is because the report didnt work on its own as an email, now it still isnt working.

<file removed>

DEMOLiTiON
Tue 29th May '01, 9:36am
ok I got this working now :)
but the reports are only send to one moderator.. is there a way to send it to all moderators and admins?
thnx

JohnM
Tue 29th May '01, 1:29pm
First of all, it's against the license to post files. Please remove it.

for your question, your tags were a bit messed up :p

your while() loop part should be:


while ($moderator=$DB_site->fetch_array($moderators)) {
if ($reporttomoderator == 1 || $reporttomoderator == 3) {
eval("\$message = \"".gettemplate("email_reportbadpost",1,0)."\";");
eval("\$subject = \"".gettemplate("emailsubject_reportbadpost",1,0)."\";");
mail ($moderator[email],$subject,$message,"From: \"$bbtitle Mailer\" <$webmasteremail>");
}
if ($reporttomoderator == 2 || $reporttomoderator == 3) {
eval("\$message = \"".gettemplate("pm_reportbadpost",1,0)."\";");
eval("\$subject = \"".gettemplate("pmsubject_reportbadpost",1,0)."\";");
$DB_site->query("INSERT INTO privatemessage (privatemessageid,userid,touserid,fromuserid,title ,message,dateline,showsignature,iconid,messageread ,folderid) VALUES (NULL,$moderator[userid],$moderator[userid],$bbuserinfo[userid],'$subject','$message',".time().",0,0,0,0)");
}
}

JohnM
Tue 29th May '01, 1:32pm
Originally posted by DEMOLiTiON
ok I got this working now :)
but the reports are only send to one moderator.. is there a way to send it to all moderators and admins?
thnx

it should send it to all of them... I don't see why it wouldn't... PM me your while loop part of report.php

Psycho
Tue 29th May '01, 7:16pm
I wasnt thinking on the file, but I appreciate your help. It works great now. Thank you very much :)

Psycho
Thu 31st May '01, 6:10pm
I know your probably getting sick of me. Ive put that code into my file which seemed to have fixed it. However, when I look at the private message it give me this

("INSERT INTO privatemessage (privatemessageid,userid,touserid,fromuserid,title
,message,dateline,showsignature,iconid,messageread
,folderid) VALUES (NULL,1,1,1,',',".time().",0,0,0,0)");

DEMOLiTiON
Fri 1st Jun '01, 2:17am
JohnM, I emailed you my report.php, please look at it :)

JohnM
Fri 1st Jun '01, 7:51pm
"Look at the private message"?

Demolition: it shouldn't be doing that. are you sure you have more than one moderator? ;)

kdog316
Sat 2nd Jun '01, 12:13am
i keep getting parase error and here is what my code looks like

oh and the parase is on line 68 which is ?>





while ($moderator=$DB_site->fetch_array($moderators)) {
if ($reporttomoderator == 1 || $reporttomoderator == 3) {
eval("\ = \"".gettemplate("email_reportbadpost",1,0)."\";");
eval("\ = \"".gettemplate("emailsubject_reportbadpost",1,0)."\";");
mail ($moderator[email],$subject,$message,"From: \"$bbtitle Mailer\" <$webmasteremail>");
}
if ($reporttomoderator == 2 || $reporttomoderator == 3) {
eval("\ = \"".gettemplate("pm_reportbadpost",1,0)."\";");
eval("\ = \"".gettemplate("pmsubject_reportbadpost",1,0)."\";");
$DB_site->query("INSERT INTO privatemessage (privatemessageid,userid,touserid,fromuserid,title ,message,dateline,showsignature,iconid,messageread ,folderid) VALUES (NULL,$moderator[userid],$moderator[userid],$bbuserinfo[userid],'$subject','$message',".time().",0,0,0,0)");
}

$url = str_replace("\"", "", $url);
eval("standardredirect(\"".gettemplate("redirect_reportthanks")."\",\"$url\");");
}
? >


with out the space after the question mark

jojo85
Sat 2nd Jun '01, 1:14am
Good idea,nice hack,
CONGRATS :D

daydreamer
Wed 27th Jun '01, 10:15pm
"go into your control panel and select an option"

You lost me there... select an option where?

dd

daydreamer
Wed 27th Jun '01, 10:51pm
Duh, found it.

Foxtroter
Sun 1st Jul '01, 10:04pm
Originally posted by kdog316
i keep getting parase error and here is what my code looks like

oh and the parase is on line 68 which is ?>





while ($moderator=$DB_site->fetch_array($moderators)) {
if ($reporttomoderator == 1 || $reporttomoderator == 3) {
eval("\ = \"".gettemplate("email_reportbadpost",1,0)."\";");
eval("\ = \"".gettemplate("emailsubject_reportbadpost",1,0)."\";");
mail ($moderator[email],$subject,$message,"From: \"$bbtitle Mailer\" <$webmasteremail>");
}
if ($reporttomoderator == 2 || $reporttomoderator == 3) {
eval("\ = \"".gettemplate("pm_reportbadpost",1,0)."\";");
eval("\ = \"".gettemplate("pmsubject_reportbadpost",1,0)."\";");
$DB_site->query("INSERT INTO privatemessage (privatemessageid,userid,touserid,fromuserid,title ,message,dateline,showsignature,iconid,messageread ,folderid) VALUES (NULL,$moderator[userid],$moderator[userid],$bbuserinfo[userid],'$subject','$message',".time().",0,0,0,0)");
}

$url = str_replace("\"", "", $url);
eval("standardredirect(\"".gettemplate("redirect_reportthanks")."\",\"$url\");");
}
? >


with out the space after the question mark

add another } after this $DB_site->query("INSERT INTO privatemessage (privatemessageid,userid,touserid,fromuserid,title ,message,dateline,showsignature,iconid,messageread ,folderid) VALUES (NULL,$moderator[userid],$moderator[userid],$bbuserinfo[userid],'$subject','$message',".time().",0,0,0,0)"); there should be two.

anyway i believe two other people have answered ur question.

ptegan
Tue 14th Aug '01, 9:48am
Thx !!

Nice hack.

idban
Tue 18th Sep '01, 1:57am
i just modified report.php to make this possible

JJR512
Wed 19th Sep '01, 5:24am
Originally posted by daydreamer
"go into your control panel and select an option"

You lost me there... select an option where?

dd
Originally posted by daydreamer
Duh, found it.

Sorry, I haven't found it yet! What option am I looking for and on which control panel (admin cp, my own user cp, what?) I can't find anything anywhere!

Also...maybe this is related to the option that I haven't set because I don't know what the option is or where it is, but after installing it, I try clicking the Report link in any thread in any forum and I get the new error message "Sorry, this feature is disabled" or whatever.