Exemple #1
0
 public function reported()
 {
     $app = JFactory::getApplication();
     $db = $this->getDbo();
     $user = JFactory::getUser();
     $config = JFactory::getConfig();
     $report['comments'] = $_POST['jform']['comments'];
     $report['reporter'] = $_POST['jform']['reporter'];
     $report['reporter_name'] = $_POST['jform']['reporter_name'];
     $report['fid'] = $_POST['jform']['fid'];
     $report['report_type'] = $_POST['report_type'];
     // Insert the thank you into the table
     $query = $db->getQuery(true);
     $query->insert('#__tracker_reported_torrents');
     $query->set('fid = ' . $db->quote((int) $_POST['jform']['fid']));
     $query->set('reporter = ' . $db->quote((int) $_POST['jform']['reporter']));
     $query->set('report_type = ' . $db->quote($_POST['report_type']));
     $query->set('comments = ' . $db->quote($_POST['jform']['comments']));
     $query->set('created_time = ' . $db->quote(date("Y-m-d H:i:s")));
     $query->set('ordering = ' . TrackerHelper::getLastOrder('tracker_reported_torrents'));
     $query->set('state = 1');
     $db->setQuery($query);
     if (!$db->query()) {
         $app->redirect(JRoute::_('index.php?option=com_tracker&view=torrent&id=' . $torrent_id), JText::_('COM_TRACKER_REPORT_TORRENT_NOK'), 'error');
     }
     // all is good. we've inserted the report on the db. let's send an email to the administrator
     $query->clear();
     $query->select('tt.fid, tt.name, u.name as uploader');
     $query->from('#__tracker_torrents as tt');
     $query->join('LEFT', '#__users as u on u.id = tt.uploader');
     $query->where('tt.fid = ' . (int) $_POST['jform']['fid']);
     $db->setQuery($query);
     $torrent = $db->loadObject();
     $emailSubject = JText::sprintf('COM_TRACKER_REPORT_TORRENT_EMAIL_SUBJECT', $torrent->name, $report['report_type']);
     // get all admin users
     $query = 'SELECT name, email, sendEmail, id FROM #__users WHERE sendEmail=1';
     $db->setQuery($query);
     $rows = $db->loadObjectList();
     foreach ($rows as $row) {
         $emailBody = JText::sprintf('COM_TRACKER_REPORT_TORRENT_EMAIL_BODY', $row->name, $report['reporter_name'], $torrent->name, $report['report_type'], $report['comments'], JUri::base() . 'index.php?option=com_tracker&view=torrent&id=' . $report['fid'], $config->get('fromname'), $config->get('sitename'));
         $email = JFactory::getMailer()->sendMail($config->get('mailfrom'), $config->get('fromname'), $row->email, $emailSubject, $emailBody);
         // Check for an error.
         if ($email !== true) {
             $this->setError(JText::_('COM_TRACKER_TORRENT_REPORT_NOTIFY_SEND_MAIL_FAILED'));
             return false;
         }
     }
     $app->redirect(JRoute::_('index.php?option=com_tracker&view=torrent&id=' . $report['fid']), JText::_('COM_TRACKER_TORRENT_REPORT_OK'), 'message');
 }