query('SELECT topic_id FROM '.$db->prefix.'posts WHERE id='.$report) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result))
message($lang_common['Bad request']);
$topic_id = $db->result($result, 0);
// Get the subject and forum ID
$result = $db->query('SELECT subject, forum_id FROM '.$db->prefix.'topics WHERE id='.$topic_id) or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result))
message($lang_common['Bad request']);
list($subject, $forum_id) = $db->fetch_row($result);
// Should we use the internal report handling?
if ($options['report_method'] == 0 || $options['report_method'] == 2)
$db->query('INSERT INTO '.$db->prefix.'reports (post_id, topic_id, forum_id, reported_by, created, message) VALUES('.$report.', '.$topic_id.', '.$forum_id.', '.$cur_user['id'].', '.time().', \''.escape($reason).'\')' ) or error('Unable to create report', __FILE__, __LINE__, $db->error());
// Should we e-mail the report?
if ($options['report_method'] == 1 || $options['report_method'] == 2)
{
// We send it to the complete mailing-list in one swoop
if ($options['mailing_list'] != '')
{
$mail_subject = 'Report('.$forum_id.') - '.$subject;
$mail_message = $cur_user['username'].' has reported the following message:'."\r\n".$options['base_url'].'/viewtopic.php?pid='.$report.'#'.$report."\r\n\r\n".'Reason:'."\r\n".$reason;
$mail_extra = 'From: '.$options['board_title'].' Mailer <'.$options['webmaster_email'].'>';
require 'include/email.php';
pun_mail($options['mailing_list'], $mail_subject, $mail_message, $mail_extra);
}
}
if ($_POST['redirect_url'] != '')
redirect($_POST['redirect_url'], $lang_misc['Report redirect']);
else
redirect('viewtopic.php?id='.$topic_id, $lang_misc['Report redirect']);
}
$page_title = htmlspecialchars($options['board_title']).' / '.$lang_misc['Report post'];
$validate_form = true;
$form_name = 'report';
$focus_element = 'req_reason';
$dimsubmit = true;
require 'header.php';
?>
query('SELECT subscribers FROM '.$db->prefix.'topics WHERE id='.$subscribe) or error('Unable to fetch topic subscribers', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result))
message($lang_common['Bad request']);
$subscribers = $db->result($result, 0);
if ($subscribers == '')
$subscribers = escape($cur_user['email']);
else
{
if (!strstr($subscribers, $cur_user['email']))
$subscribers .= ','.$cur_user['email'];
else
message($lang_misc['Already subscribed']);
}
$db->query('UPDATE '.$db->prefix.'topics SET subscribers=\''.$subscribers.'\' WHERE id='.$subscribe) or error('Unable to update topic subscribers', __FILE__, __LINE__, $db->error());
redirect('viewtopic.php?id='.$subscribe, $lang_misc['Subscribe redirect']);
}
else if (isset($_GET['unsubscribe']))
{
$unsubscribe = intval($_GET['unsubscribe']);
if (empty($unsubscribe))
message($lang_common['Bad request']);
if ($cookie['is_guest'])
message($lang_common['No permission']);
$result = $db->query('SELECT subscribers FROM '.$db->prefix.'topics WHERE id='.$unsubscribe) or error('Unable to fetch topic subscribers', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result))
message($lang_common['Bad request']);
$subscribers = $db->result($result, 0);
if (strstr($subscribers, $cur_user['email']))
{
$addresses = explode(',', $subscribers);
while (list($key, $value) = @each($addresses))
{
if ($value == $cur_user['email'])
unset($addresses[$key]);
}
if (count($addresses))
{
$subscribers = implode(',', $addresses);
$db->query('UPDATE '.$db->prefix.'topics SET subscribers=\''.$subscribers.'\' WHERE id='.$unsubscribe) or error('Unable to update topic subscribers', __FILE__, __LINE__, $db->error());
}
else
$db->query('UPDATE '.$db->prefix.'topics SET subscribers=NULL WHERE id='.$unsubscribe) or error('Unable to update topic subscribers', __FILE__, __LINE__, $db->error());
redirect('viewtopic.php?id='.$unsubscribe, $lang_misc['Unsubscribe redirect']);
}
else
message($lang_misc['Not subscribed']);
}
else
message($lang_common['Bad request']);