Esempio n. 1
0
/**
 * Send a new forum message for moderation to the moderator(s).
 *
 * @param array $message
 *     An array containing the data for a forum message.
 */
function phorum_api_mail_message_moderate($message)
{
    // Not "global $PHORUM", because we do not want the loading of language
    // files to override our already loaded language file.
    $PHORUM = $GLOBALS['PHORUM'];
    // Retrieve the list of moderators for the current forum.
    $moderators = phorum_api_user_list_moderators($PHORUM['forum_id'], $PHORUM['email_ignore_admin'], TRUE);
    // The list moderators function returns user_id => mail address.
    // We want the full user info, so we can lookup the preferred
    // language for the moderators.
    $moderators = phorum_api_user_get(array_keys($moderators));
    // Sort all moderators by their preferred language.
    $recipients = array();
    foreach ($moderators as $moderator) {
        if (!isset($recipients[$moderator['user_language']])) {
            $recipients[$moderator['user_language']] = array($moderator['email']);
        } else {
            $recipients[$moderator['user_language']][] = $moderator['email'];
        }
    }
    // No moderators (oomph)? Then we are done.
    if (empty($recipients)) {
        return;
    }
    if ($message['status'] > 0) {
        $mailsubjecttpl = 'NewUnModeratedSubject';
        $mailmessagetpl = 'NewUnModeratedMessage';
    } else {
        $mailsubjecttpl = 'NewModeratedSubject';
        $mailmessagetpl = 'NewModeratedMessage';
    }
    $mail_data = array('forumname' => strip_tags($PHORUM['DATA']['NAME']), 'forum_id' => $message['forum_id'], 'message_id' => $message['message_id'], 'author' => phorum_api_user_get_display_name($message['user_id'], $message['author'], PHORUM_FLAG_PLAINTEXT), 'subject' => $message['subject'], 'fully_body' => $message['body'], 'plain_body' => wordwrap(phorum_api_format_strip($message['body']), 72), 'approve_url' => phorum_api_url_no_uri_auth(PHORUM_CONTROLCENTER_URL, 'panel=messages'), 'read_url' => phorum_api_url_no_uri_auth(PHORUM_READ_URL, $message['thread'], $message['message_id']), 'mailmessagetpl' => $mailmessagetpl, 'mailsubjecttpl' => $mailsubjecttpl);
    foreach ($recipients as $language => $addresses) {
        $language = basename($language);
        if (file_exists(PHORUM_PATH . "/include/lang/{$language}.php")) {
            $mail_data['language'] = $language;
            include PHORUM_PATH . "/include/lang/{$language}.php";
        } else {
            $mail_data['language'] = $PHORUM['language'];
            include PHORUM_PATH . "/include/lang/{$PHORUM['language']}.php";
        }
        $mail_data['mailmessage'] = $PHORUM['DATA']['LANG'][$mailmessagetpl];
        $mail_data['mailsubject'] = $PHORUM['DATA']['LANG'][$mailsubjecttpl];
        phorum_api_mail($addresses, $mail_data);
    }
}
Esempio n. 2
0
$report = false;
$template = "report";
$message = array();
// get the message
if (isset($PHORUM["args"][1]) && is_numeric($PHORUM["args"][1])) {
    $message_id = $PHORUM["args"][1];
    $message = phorum_db_get_message($message_id);
}
if (is_array($message) && count($message)) {
    // check for report requests
    if (!empty($_POST["report"])) {
        if ($PHORUM["DATA"]["LOGGEDIN"]) {
            if (empty($_POST["explanation"])) {
                $_POST["explanation"] = "<" . $PHORUM["DATA"]["LANG"]["None"] . ">";
            }
            $mail_users = phorum_api_user_list_moderators($PHORUM['forum_id'], $PHORUM['email_ignore_admin'], TRUE);
            if (count($mail_users)) {
                $mail_data = array("mailmessage" => $PHORUM["DATA"]["LANG"]['ReportPostEmailBody'], "mailsubject" => $PHORUM["DATA"]["LANG"]['ReportPostEmailSubject'], "forumname" => $PHORUM["DATA"]["NAME"], "reportedby" => $PHORUM["user"]["display_name"], "author" => $message["author"], "subject" => $message["subject"], "body" => wordwrap($message["body"], 72), "ip" => $message["ip"], "raw_date" => $message["datestamp"], "date" => phorum_date($PHORUM["short_date_time"], $message["datestamp"]), "explanation" => wordwrap($_POST["explanation"], 72), "url" => phorum_get_url(PHORUM_READ_URL, $message["thread"], $message_id), "delete_url" => phorum_get_url(PHORUM_MODERATION_URL, PHORUM_DELETE_MESSAGE, $message_id), "hide_url" => phorum_get_url(PHORUM_MODERATION_URL, PHORUM_HIDE_POST, $message_id), "edit_url" => phorum_get_url(PHORUM_POSTING_URL, 'moderation', $message_id), "reporter_url" => phorum_get_url(PHORUM_PROFILE_URL, $PHORUM["user"]["user_id"]), "message" => $message);
                if (isset($_POST[PHORUM_SESSION_LONG_TERM])) {
                    // strip any auth info from the created urls
                    $mail_data["url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["url"]);
                    $mail_data["delete_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["delete_url"]);
                    $mail_data["hide_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["hide_url"]);
                    $mail_data["edit_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["edit_url"]);
                    $mail_data["reporter_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["reporter_url"]);
                }
                if (isset($PHORUM["hooks"]["report"])) {
                    $mail_data = phorum_hook("report", $mail_data);
                }
                phorum_email_user($mail_users, $mail_data);
                $PHORUM["DATA"]["URL"]["REDIRECT"] = phorum_get_url(PHORUM_FOREIGN_READ_URL, $message["forum_id"], $message["thread"]);
Esempio n. 3
0
function phorum_email_moderators($message)
{
    $PHORUM = $GLOBALS["PHORUM"];
    $mail_users = phorum_api_user_list_moderators($PHORUM['forum_id'], $PHORUM['email_ignore_admin'], TRUE);
    if (count($mail_users)) {
        include_once "./include/format_functions.php";
        if ($message["status"] > 0) {
            // just notification of a new message
            $mailsubjecttpl = 'NewUnModeratedSubject';
            $mailmessagetpl = 'NewUnModeratedMessage';
            $mailsubject = $PHORUM["DATA"]["LANG"]['NewUnModeratedSubject'];
            $mailmessage = $PHORUM["DATA"]["LANG"]['NewUnModeratedMessage'];
        } else {
            // posts needing approval
            $mailsubjecttpl = 'NewModeratedSubject';
            $mailmessagetpl = 'NewModeratedMessage';
            $mailsubject = $PHORUM["DATA"]["LANG"]['NewModeratedSubject'];
            $mailmessage = $PHORUM["DATA"]["LANG"]['NewModeratedMessage'];
        }
        $mail_data = array("forumname" => strip_tags($PHORUM["DATA"]["NAME"]), "forum_id" => $PHORUM['forum_id'], "message_id" => $message['message_id'], "author" => phorum_api_user_get_display_name($message["user_id"], $message["author"], PHORUM_FLAG_PLAINTEXT), "subject" => $message['subject'], "full_body" => $message['body'], "plain_body" => phorum_strip_body($message['body']), "approve_url" => phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=messages"), "read_url" => phorum_get_url(PHORUM_READ_URL, $message['thread'], $message['message_id']), "mailmessage" => $mailmessage, "mailsubject" => $mailsubject, "mailmessagetpl" => $mailmessagetpl, "mailsubjecttpl" => $mailsubjecttpl, "language" => $PHORUM['language']);
        if (isset($_POST[PHORUM_SESSION_LONG_TERM])) {
            // strip any auth info from the read url
            $mail_data["read_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["read_url"]);
            $mail_data["approve_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["approve_url"]);
        }
        phorum_email_user($mail_users, $mail_data);
    }
}
Esempio n. 4
0
$report = false;
$template = "report";
$message = array();
// get the message
if (isset($PHORUM["args"][1]) && is_numeric($PHORUM["args"][1])) {
    $message_id = $PHORUM["args"][1];
    $message = phorum_db_get_message($message_id);
}
if (is_array($message) && count($message)) {
    // check for report requests
    if (!empty($_POST["report"])) {
        if ($PHORUM["DATA"]["LOGGEDIN"]) {
            if (empty($_POST["explanation"])) {
                $_POST["explanation"] = "<" . $PHORUM["DATA"]["LANG"]["None"] . ">";
            }
            $mail_users = phorum_api_user_list_moderators($PHORUM['forum_id'], FALSE, TRUE);
            if (count($mail_users)) {
                $mail_data = array("mailmessage" => $PHORUM["DATA"]["LANG"]['ReportPostEmailBody'], "mailsubject" => $PHORUM["DATA"]["LANG"]['ReportPostEmailSubject'], "forumname" => $PHORUM["DATA"]["NAME"], "reportedby" => $PHORUM["user"]["display_name"], "author" => $message["author"], "subject" => $message["subject"], "body" => wordwrap($message["body"], 72), "ip" => $message["ip"], "raw_date" => $message["datestamp"], "date" => phorum_date($PHORUM["short_date_time"], $message["datestamp"]), "explanation" => wordwrap($_POST["explanation"], 72), "url" => phorum_get_url(PHORUM_READ_URL, $message["thread"], $message_id), "delete_url" => phorum_get_url(PHORUM_MODERATION_URL, PHORUM_DELETE_MESSAGE, $message_id), "hide_url" => phorum_get_url(PHORUM_MODERATION_URL, PHORUM_HIDE_POST, $message_id), "edit_url" => phorum_get_url(PHORUM_POSTING_URL, 'moderation', $message_id), "reporter_url" => phorum_get_url(PHORUM_PROFILE_URL, $PHORUM["user"]["user_id"]), "message" => $message);
                if (isset($_POST[PHORUM_SESSION_LONG_TERM])) {
                    // strip any auth info from the created urls
                    $mail_data["url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["url"]);
                    $mail_data["delete_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["delete_url"]);
                    $mail_data["hide_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["hide_url"]);
                    $mail_data["edit_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["edit_url"]);
                    $mail_data["reporter_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["reporter_url"]);
                }
                if (isset($PHORUM["hooks"]["report"])) {
                    $mail_data = phorum_hook("report", $mail_data);
                }
                phorum_email_user($mail_users, $mail_data);
                $PHORUM["DATA"]["URL"]["REDIRECT"] = phorum_get_url(PHORUM_FOREIGN_READ_URL, $message["forum_id"], $message["thread"]);