bbPress

Simple, Fast, Elegant

bbPress support forums » Plugins

plugin idea: "report this post"

(12 posts)
  • Started 1 year ago by _ck_
  • Latest reply from _ck_
  • This topic is not resolved
  1. I'm gonna need this one in a hurry so if there's nothing similar in existance, looks like I have a weekend project.

    For now I'm going to keep it simple, add a text link somewhere in the template and that will popup a javascript query for a description why it should be moderated and then an email will be fired off to the admin. What I really want it to do is create a new post in the moderator forum so one of the mods will see it and take action, but that might have to wait until the next version.

    Am I the only one (other than the few documented examples) who's using bbpress for something other than a micro-forum and needs these kinds of tools?

    ps. the examples page needs to be updated, over 200,000 registered members now

    Posted 1 year ago #
  2. It might not be what you are working on, but all the major forums that I use have users tag threads as "modlook" to do this very thing and that is what I want users to do on this forum.

    Trent

    Posted 1 year ago #
  3. Interesting, but I want something more direct.

    Actually, I have a working prototype now and will post a very early beta in an hour or so.

    Posted 1 year ago #
  4. And a report post plugin is born - tested working!
    Needs a few features but gets the job done for now:

    <?php
    /*
    Plugin Name: report post
    Description:  allows members to report a post to admin/moderators
    Plugin URI:  http://CKon.wordpress.com
    Author: _ck_
    Author URI: http://CKon.wordpress.com
    Version: 0.1
    */ 
    
    /*
    instructions:  install, activate and put  <? report_post_link(); ?> in your post.php template where you want the link to be seen
    optional in stylesheet:  a.report_post {color:red;}  
    
    todo:
    1. don't let them report more than once on a post - or more than too many times per minute/hour
    2. auto-delete post if more than x reports from different members
    3. auto-post report into a specified moderator's forum #
    4. maybe ajax xmlhttp call instead of real form post so there's no page movement
    5. it's technically possible to alert a browing mod with a popup directing to the reported post, no email needed
    */
    
    function report_post_link($post_id=0) {
    if (bb_current_user_can('participate') ) :
    $post_id= get_post_id( $post_id );
    if (get_post_author_id($post_id) != bb_get_current_user_info( 'id' )) {
    echo '<a class=report_post title="report post to moderator" href="#post-'.$post_id.'" onClick="report_post('.$post_id.');return false;">Report</a>';
    }
    endif;
    }
    
    function report_post_form() {
    if (bb_current_user_can('participate')) :
    if (isset($_POST['report_post_id']) && isset($_POST['report_post_reason'])) {
    	echo '<scr'.'ipt type="text/javascript">alert("Thank you for the report. A moderator has been notified.");</scr'.'ipt>';
    	$post_id=intval($_POST['report_post_id']);
    	// todo: custom response if invalid id, problem sending email - maybe flush output buffer so member gets alert faster
    	$to = bb_get_option('admin_email');
    	$subject = " reported post by member for moderation";
    	$headers = "From: ".bb_get_option('admin_email');
    	$message ="report by:  ".bb_get_current_user_info( 'name' )." (".bb_get_current_user_info( 'id' ).")  email: ".bb_get_current_user_info( 'email' )."\r\n\r\n";
    	$message.="report: ".wordwrap(strip_tags(substr($_POST['report_post_reason'],0,255)),70)."\r\n\r\n".get_post_link($post_id)."\r\n";
    	$message.="post by: ". get_post_author($post_id)."\r\n";     // add "member since", total posts, blah blah
    	$message.="\r\n\r\nReport Trace:\r\n";
    	$message.="IP:    ".$_SERVER['REMOTE_ADDR']."\r\n";
    	$message.="Host:  ".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\r\n";   // useful but can add a few seconds
     	$message.="Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n";
     	$message.="Refer: ". $_REQUEST['refer']."\r\n";
     	$message.="URL:   http://".$_SERVER['HTTP_HOST'].$GLOBALS["HTTP_SERVER_VARS"]["REQUEST_URI"]."\r\n";
    	mail( $to, $subject, $message,$headers);
    }
    echo '<form method="POST" name="report_post_form" id="report_post_form" style="display:none;visibility:hidden"><input type=hidden name="report_post_id"><input type=hidden name="report_post_reason"></form>';
    echo '<scr'.'ipt type="text/javascript">
    function report_post(post_id) {
    var report_post_reason = prompt("Please enter a short but descriptive reason why a moderator needs to review this post:", "");
    if (report_post_reason && report_post_reason.length>9) {
    document.report_post_form.report_post_id.value=post_id;
    document.report_post_form.action="#post-"+post_id;
    document.report_post_form.report_post_reason.value=report_post_reason;
    document.report_post_form.submit();
    } else {alert("report cancelled, incomplete description"); }
    }
    </scr'.'ipt>';
    endif;
    }
    add_action('bb_foot', 'report_post_form');
    
    ?>
    Posted 1 year ago #
  5. Coming soon:

    don't allow reports on moderators
    don't allow reports from members less than x days old
    security check if user is in the right topic for the post being reported
    Posted 1 year ago #
  6. hum i upload it and active it and insert <? report_post_link(); ?> in post but nothing apeaer .8.2.1
    what is the problem?

    Posted 1 year ago #
  7. Sorry I didn't see your bug report until just now.

    I am working on this tonight and will have a working version posted soon (including translation hooks for you).

    Posted 1 year ago #
  8. I've tested this now up to the bbpress trunk and it seems to work fine.
    Try the latest:
    http://bbpress.org/plugins/download/report-post.zip

    Make sure you are editing post.php in your bb-templates or my-templates?

    Unfortunately there is no hook for me to place it automatically in post.php on that info line. Wish there was.

    Posted 1 year ago #
  9. It's working for me...

    I think the problem mazdakam is having is that moderators won't see the link... you have to login as a regular user.

    Which is the correct behavior, of course.

    Posted 1 year ago #
  10. Moderators do see the link, you just don't see it on your own posts, there's no point in reporting yourself, LOL!

    Posted 1 year ago #
  11. Ohhhhh

    My test site has nothing but posts from me, no wonder I didn't see it =)

    And to answer your question at the very top of this thread, I'm trying to use bbPress for a serious forum... I just opened my forum a little over a week ago. Not as much traffic as I'd like, of course, but decent.

    Posted 1 year ago #
  12. Yeah you should always create a non-moderator test user to see how other things interact compared to mod/admin. It's important to see what's hidden from regular members and sometimes admin can do things we take for granted that regular members cannot (ie. like my admin-can-post-anything plugin)

    Posted 1 year ago #

RSS feed for this topic

Reply

You must log in to post.

Code is Poetry.