1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Unmaintained [TH] Email Reports 1.1.2

Admins and super moderators receive email notices of reports.

  1. Nudaii

    Nudaii Well-Known Member

  2. ManOnDaMoon

    ManOnDaMoon Well-Known Member

    Hi and thanks for this useful addon.

    I was just wondering where to edit the email's phrases or the email template. Is this possible or planned?
     
  3. ManOnDaMoon

    ManOnDaMoon Well-Known Member

    Solution for future reference : follow the tutorial by RobDog mentioned in the resource description, and customize the email template.
    Sadly, I guess email templates cannot be edited from installation unless in debug mode.
     
  4. Ingenious

    Ingenious Well-Known Member

    I've installed this and all of my accounts which are Admin get the email when something is reported. But my super moderators do not.

    My admin accounts are a mix of primary usergroup = Admin, or, a secondary group = Admin (with primary group being registered in that case) and they get the emails. My super mods are primary group registered with secondary group as super mod.

    Any ideas where I should start to troubleshoot this or any info you need? Would the actions of this plugin be logged anywhere?
     
  5. Ingenious

    Ingenious Well-Known Member

    Both of my super moderators have confirmed they are getting other forum emails (new PMs, watched threads etc) but not the report ones. Can you confirm, these are intended to go to any user who is a super moderator as a secondary usergroup? Or have I not read it right? In report.php does this line of code check for a user belonging to the supermod group?

    Code:
    $users = $this->fetchAllKeyed('SELECT * FROM xf_user WHERE is_admin = 1', 'user_id');
     
  6. ManOnDaMoon

    ManOnDaMoon Well-Known Member

    The line you quote does grab the users which the email will be sent to. However, it will not check group belonging, but admin permissions. It was a shortcut robdog used for its tutorial:
     
  7. robdog

    robdog Well-Known Member

    Nice work! I might have to uninstall my hack version and install this "nicer" version. :)
     
  8. Ingenious

    Ingenious Well-Known Member

    That's what I thought, but the description of this plugin by the author does state:

    Perhaps that needs changing then to state that just admins get an email. Or, if anyone can suggest a change to that line of code to include members in the supermods group (as an additional usergroup) then I can modify it :)
     
  9. Nudaii

    Nudaii Well-Known Member

    At the forum i installed this on both admin and the super/global mods get the reports, uncertain why you aren't getting that

    as for email template yes sadly once installed you do it via the debug mode
     
  10. Ingenious

    Ingenious Well-Known Member

    Richard my super mods definitely do not get emails, and the query I highlighted above would suggest it only looks for users matching admin="1" anyway. Maybe the supermods on your forum are also in the admin usergroup?

    Perhaps if/when more people install this we'll get a better idea of what it's doing.

    Is this something you are going to be looking into, no probs if not, in that case I'll ask for help in changing the query to also pick out those in the supermod group.

    (Edit, another workaround for me would be to have it send the report just to one specified email address which I can hard code into the script, and use forwarders to send that on to mods).
     
  11. Nudaii

    Nudaii Well-Known Member

    Feel free to ask for help with the query, i imagine jake bounce would know it, he is a master at sql queries, currently i'm bogged down with other work and still learning the xenforo system (having been a vb fanboy sicne 2005)
     
    mmoore5553 likes this.
  12. Ingenious

    Ingenious Well-Known Member

    Does anyone know how the code above can be changed so the email contains more information, for example, what post is reported and the report reason? The reason why this is useful is because if someone just reports a duplicate post, we don't all need to rush into the forum. Whereas if it is libel, we need to drop everything and act :) It will help prioritise our response, thanks.
     
  13. ManOnDaMoon

    ManOnDaMoon Well-Known Member

    Here is my custom code, with comments on what information is fetched:
    PHP:
    class MODM_Model_Report extends XenForo_Model_Report
    {
        public function 
    reportContent($contentType, array $content$message, array $viewingUser null)
        {
            
    $reportId parent::reportContent($contentType$content$message$viewingUser);
            if (
    $reportId == 0)
            {
                return 
    false;
            }
            
    $users $this->fetchAllKeyed('SELECT * FROM xf_user WHERE is_admin = 1''user_id');
            
    $report $this->getReportById($reportId);
            
    $userModel $this->getModelFromCache('XenForo_Model_User');
     
            
    // Fetching the owner of reported content
            
    $reportedUser $userModel->getUserById($report['content_user_id']);
     
            foreach (
    $users as $user)
            {
                
    $params = array(
            
    // User whose email will be sent
                    
    'user' => $user['username'],
     
            
    // User who reported the content
                    
    'reportingUser' => $report['last_modified_username'],
                    
    'reportId' => $report['report_id'],
     
            
    // The message of the report - very useful indeed ;)
                    
    'reportMessage' => $message,
     
            
    // Username of the content owner
                    
    'reportedUser' => $reportedUser['username']
                );
             
                
    $mail = new XenForo_Mail('MODM_new_item_reported'$params$user['language_id']);
                
    $mail->send($user['email'], $user['username']);
            }
        }
    }
    With the following email template "MODM_new_item_reported" (I used phrases in my own version, useful if you want multiple languages support) :
    This code is freely usable as a starting point for someone willing to create an advanced addon.
     
    Ingenious likes this.
  14. Ingenious

    Ingenious Well-Known Member

    I don't follow the bit about a new email template. In the original it uses new_item_reported but I can't find any template or phrase with that title - so how can I edit this to change it? I tried creating a new template as you suggest above, but I then don't get any email at all. I must be missing something simple, but I cannot even find where the email template for the original plugin is (new_item_reported)?
     
  15. Ingenious

    Ingenious Well-Known Member

    Don't Panic! I have found using the forum search that email templates can only be accessed in debug mode. Done, and fixed, have cobbled together my own version of this with thanks to ManOnDaMoon's help :) Thank you guys.
     
  16. Nudaii

    Nudaii Well-Known Member

    a new version is in the works which fixes the mods not being included in email aswell as adding a few small changes
     
  17. Nudaii

    Nudaii Well-Known Member

    Richard.r updated Email Notice on Reports with a new update entry:

    Email Notice on Reports 1.1

    Read the rest of this update entry...
     
    nrep likes this.
  18. Ingenious

    Ingenious Well-Known Member

    Richard can I suggest a different way of doing this (and it is how I changed the mod to suit my needs)? Why not have an option where instead of doing this by usergroup, you do it by user id? So the admin will set in the options, which users should get the reports. In that way, you can have total flexibility, you can have the reports sent to any or all of the mods and admins. You can also take mods/admin out of the emails (say, when they are on holiday) without changing their usergroups etc. In my amended add-on I hard coded this into the script which is obviously then not fit for distribution, but if that was a core part of the add-on it would be brilliant.

    If you haven't already done it with this update, having the report reason (what the user filled in when reporting the post) is also really handy - because in the case of simple "Duplicate post, please remove" requests, mods know they don't have to drop everything and go into the forum quickly.

    Just some suggestions, feel free to ignore, as we all have slightly different requirements!
     
    nrep likes this.
  19. ManOnDaMoon

    ManOnDaMoon Well-Known Member

    Upon request of my moderators, I updated the email content with the reported content type, the node title, the thread subject when relevant... Here is my code (I am maintaining my own addon based on this one).
    PHP:
        public function reportContent($contentType, array $content$message, array $viewingUser null)
        {
            
    $reportId parent::reportContent($contentType$content$message$viewingUser);
            if (
    $reportId == 0)
            {
                return 
    false;
            }
            
    $users $this->fetchAllKeyed('SELECT email, username, language_id FROM xf_user WHERE is_admin = 1 OR is_moderator = 1''user_id');
            
    $report $this->getReportById($reportId);
            
    $userModel $this->getModelFromCache('XenForo_Model_USer');
            
    $reportedUser $userModel->getUserById($report['content_user_id']);
     
            
    $reportHandler $this->getReportHandler($contentType);
            list(
    $contentId$contentUserId$contentInfo) = $reportHandler->getReportDetailsFromContent($content);
            switch (
    $contentType)
            {
                case 
    "post":
                    
    $mailTemplate 'MODM_Phidippides_new_post_reported';
                    
    $params = array(
                            
    'user' => "",
                            
    'reportingUser' => $report['last_modified_username'],
                            
    'reportId' => $report['report_id'],
                            
    'reportMessage' => $message,
                            
    'reportedUser' => $contentInfo['username'],
                            
    'reportedThread' => $contentInfo['thread_title'],
                            
    'reportedNode' => $contentInfo['node_title'],
                            
    'reportedContent' => $contentInfo['message']);
                    break;
                case 
    "profile_post":
                case 
    "conversation_message":
                default:
                    
    $mailTemplate 'MODM_Phidippides_new_item_reported';
                
    $params = array(
                            
    'user' => "",
                            
    'reportingUser' => $report['last_modified_username'],
                            
    'reportId' => $report['report_id'],
                            
    'reportMessage' => $message,
                            
    'reportedUser' => $reportedUser['username']);
            }
         
            foreach (
    $users as $user)
            {
                
    XenForo_Error::debug("Mail report sent to " $user['email']);
                
    $params['user'] = $user['username'];
                
    $mail = new XenForo_Mail($mailTemplate$params$user['language_id']);
                
    $mail->send($user['email'], $user['username']);
            }
        }
    This requires new email templates based on content type. This is a copy/paste from my addon XML file. I only used a specific template for thread posts, letting the "Item report" template take care of the rest:
    HTML:
     <email_templates>
        <template title="MODM_Phidippides_new_item_reported">
          <subject><![CDATA[{xen:phrase MODM_Phidippides_content_reported}]]></subject>
          <body_text><![CDATA[{xen:phrase MODM_Phidippides_hi} {$user},
     
    {xen:phrase MODM_Phidippides_a_new_content_has_been_reported_by} {$reportingUser}.
     
    {xen:phrase MODM_Phidippides_more_info}:
    {xen:phrase MODM_Phidippides_reported_user}: {$reportedUser}
    {xen:phrase MODM_Phidippides_report_comment}:
    {$reportMessage}
     
    {xen:phrase MODM_Phidippides_to_view_the_report_click_on_the_following_link}:
    {$xenOptions.boardUrl}/reports/{$reportId}/
     
    {xen:phrase MODM_Phidippides_signature}]]></body_text>
          <body_html><![CDATA[<p>{xen:phrase MODM_Phidippides_hi} {$user},</p>
     
    <p>{xen:phrase MODM_Phidippides_a_new_content_has_been_reported_by} {$reportingUser}.</p>
     
    <p><b>{xen:phrase MODM_Phidippides_more_info}:</b><br/>
    {xen:phrase MODM_Phidippides_reported_user}: {$reportedUser}<br/>
    {xen:phrase MODM_Phidippides_report_comment}:<br/>
    <i>{$reportMessage}</i>
    </p>
     
    <p>{xen:phrase MODM_Phidippides_to_view_the_report_click_on_the_following_link}:<br/>
    {$xenOptions.boardUrl}/reports/{$reportId}/</p>
     
    <p>{xen:phrase MODM_Phidippides_signature}</p>]]></body_html>
        </template>
        <template title="MODM_Phidippides_new_post_reported">
          <subject><![CDATA[{xen:phrase MODM_Phidippides_post_reported}]]></subject>
          <body_text><![CDATA[{xen:phrase MODM_Phidippides_hi} {$user},
     
    {xen:phrase MODM_Phidippides_a_new_post_has_been_reported_by} {$reportingUser}.
     
    {xen:phrase MODM_Phidippides_more_info}:
    {xen:phrase MODM_Phidippides_reported_node}: {$reportedNode}
    {xen:phrase MODM_Phidippides_reported_thread}: {$reportedThread}
    {xen:phrase MODM_Phidippides_reported_user}: {$reportedUser}
    {xen:phrase MODM_Phidippides_report_comment}:
    {$reportMessage}
     
    {xen:phrase MODM_Phidippides_to_view_the_report_click_on_the_following_link}:
    {$xenOptions.boardUrl}/reports/{$reportId}/
     
    {xen:phrase MODM_Phidippides_signature}]]></body_text>
          <body_html><![CDATA[<p>{xen:phrase MODM_Phidippides_hi} {$user},</p>
     
    <p>{xen:phrase MODM_Phidippides_a_new_post_has_been_reported_by} {$reportingUser}.</p>
     
    <p><b>{xen:phrase MODM_Phidippides_more_info}:</b><br/>
    {xen:phrase MODM_Phidippides_reported_node}: {$reportedNode}<br/>
    {xen:phrase MODM_Phidippides_reported_thread}: {$reportedThread}<br/>
    {xen:phrase MODM_Phidippides_reported_user}: {$reportedUser}<br/>
    {xen:phrase MODM_Phidippides_report_comment}:<br/>
    <i>{$reportMessage}</i>
    </p>
     
    <p>{xen:phrase MODM_Phidippides_to_view_the_report_click_on_the_following_link}:<br/>
    {$xenOptions.boardUrl}/reports/{$reportId}/</p>
     
    <p>{xen:phrase MODM_Phidippides_signature}</p>]]></body_html>
        </template>
      </email_templates>
     
  20. giorgino

    giorgino Well-Known Member

Share This Page