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'); }