X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fmodules%2Fadmin%2Fwhat-del_email.php;h=b09c9bbcfee3fdb57dc82191b7a035d097fd6477;hp=60079d8830b61c33bd0b5e85c9dd71ddb0e41536;hb=b73179774f08d52b76fe1836ab80f085f05f8e46;hpb=5ef6ed7373ae85e5635e39e2a0adf9496a8add05 diff --git a/inc/modules/admin/what-del_email.php b/inc/modules/admin/what-del_email.php index 60079d8830..b09c9bbcfe 100644 --- a/inc/modules/admin/what-del_email.php +++ b/inc/modules/admin/what-del_email.php @@ -15,7 +15,7 @@ * web : http://mc-p.mcserver.de * * * * -------------------------------------------------------------------- * - * Copyright (c) 2003 - 2008 by Roland Haeder * + * Copyright (c) 2003 - 2009 by Roland Haeder * * For more information visit: http://www.mxchange.org * * * * This program is free software; you can redistribute it and/or modify * @@ -35,116 +35,217 @@ ************************************************************************/ // Some security stuff... -if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) -{ - $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; - require($INC); +if ((!defined('__SECURITY')) || (!isAdmin())) { + die(); } // Add description as navigation point -ADD_DESCR("admin", basename(__FILE__)); -OPEN_TABLE("100%", "admin_content admin_content_align", ""); -if (!empty($_GET['mid'])) -{ +addMenuDescription('admin', __FILE__); + +// Init counter for deleted mails +$cnt = 0; + +if (isGetRequestElementSet('mid')) { // Load email data - $result = SQL_QUERY_ESC("SELECT id, sender, subject, url, timestamp FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1", - array(bigintval($_GET['mid'])), __FILE__, __LINE__); - list ($id, $sender, $subject, $url, $timestamp,) = SQL_FETCHROW($result); - SQL_FREERESULT($result); + $result = SQL_QUERY_ESC("SELECT `id`, `sender`, `subject`, `url`, `timestamp`, `payment_id` FROM `{?_MYSQL_PREFIX?}_pool` WHERE `id`=%s LIMIT 1", + array(bigintval(getRequestElement('mid'))), __FILE__, __LINE__); // Delete mail only once - if ($sender > 0) - { + if (SQL_NUMROWS($result) == 1) { + // Load data + list ($id, $sender, $subject, $url, $timestamp, $payId) = SQL_FETCHROW($result); + SQL_FREERESULT($result); + + // Get points we shall pay back per mail + $price = getPaymentPoints($payId, 'price'); + // Prepare data for the template - define('__ID' , $id); - define('__SENDER' , ADMIN_USER_PROFILE_LINK($sender)); - define('__SUBJECT', $subject); - define('__URL' , DEREFERER($url)); - define('__ORDERED', MAKE_DATETIME($timestamp, "0")); + $content['id'] = $id; + $content['sender'] = generateUserProfileLink($sender); + $content['subject'] = $subject; + $content['url'] = generateDerefererUrl($url); + $content['url_raw'] = $url; + $content['timestamp'] = generateDateTime($timestamp, 0); // Load template - LOAD_TEMPLATE("admin_del_email_normal"); - - // Transfer data to data array - $DATA = array($url, $subject); + loadTemplate('admin_del_email_normal', false, $content); // Load email template and send the email away - $msg_user = LOAD_EMAIL_TEMPLATE("order-deleted", "", $sender); - SEND_EMAIL($sender, MEMBER_ORDER_DELETED, $msg_user); - - // Delete mail from queue - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1", - array(bigintval($_GET['mid'])), __FILE__, __LINE__); + $message_user = loadEmailTemplate('order-deleted', $content, $sender); + sendEmail($sender, getMessage('MEMBER_ORDER_DELETED'), $message_user); // Fetch right stats_id from pool - $result = SQL_QUERY_ESC("SELECT s.id FROM "._MYSQL_PREFIX."_user_stats AS s -LEFT JOIN "._MYSQL_PREFIX."_pool AS p -ON s.pool_id=%d LIMIT 1", - array(bigintval($_GET['mid'])), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 1) - { + $result_pool = SQL_QUERY_ESC("SELECT + s.id +FROM + `{?_MYSQL_PREFIX?}_user_stats` AS s +LEFT JOIN + `{?_MYSQL_PREFIX?}_pool` AS p +ON + s.pool_id=p.id +WHERE + s.`pool_id`=%s +LIMIT 1", + array(bigintval(getRequestElement('mid'))), __FILE__, __LINE__); + if (SQL_NUMROWS($result_pool) == 1) { // Fetch stats id - list($stats_id) = SQL_FETCHROW($result); - SQL_FREERESULT($result); + list($stats_id) = SQL_FETCHROW($result_pool); + + // Get all user links + $links = countSumTotalData($stats_id, 'user_links', 'userid', 'stats_id', true); + + // Reset sent mails for recipient(s) + reduceRecipientReceivedMails('stats_id', getRequestElement('mid'), $links); + + // Calc total points and pay them back + $totalPoints = $links * $price; + + // Shall we pay the points back to the user? + if (getConfig('repay_deleted_mails') != 'SHRED') { + //* DEBUG: */ outputHtml($stats_id.':'.$totalPoints.'/'.$links.'/'.$price."
"); + if ($totalPoints > 0) { + // Shall we payback to user or jackpot? + if (getConfig('repay_deleted_mails') == 'JACKPOT') { + // Set jackpot + $sender = 0; + } // END - if + + // Pay back points + //* DEBUG: */ outputHtml("PAYBACK:".$sender."
"); + addPointsThroughReferalSystem('mail_deleted', $sender, $totalPoints, true, 0, false,'direct'); + + // Output message + if (getConfig('repay_deleted_mails') == 'REPAY') { + // Repayed + loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_POINTS_REPAYED'), + translateComma($totalPoints) + )); + } else { + // To jackpot + loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_POINTS_TO_JACKPOT'), + translateComma($totalPoints) + )); + } + } else { + // No points repayed! + loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NO_POINTS_REPAYED')); + } + } else { + // Points shredded! + loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_POINTS_SHREDDED'), $totalPoints)); + } // Remove links from DB - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d", - array(bigintval($stats_id)), __FILE__, __LINE__); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `stats_id`=%s", + array(bigintval($stats_id)), __FILE__, __LINE__); + $cnt += SQL_AFFECTEDROWS(); - // Output link for manually removing stats entry - LOAD_TEMPLATE("admin_settings_saved", false, "".ADMIN_REMOVE_STATS_ENTRY.""); - } - } - else - { + // Load template for link + loadTemplate('admin_settings_saved', false, "{--ADMIN_REMOVE_STATS_ENTRY--}"); + } // END - if + + // Free the result + SQL_FREERESULT($result_pool); + + // Delete mail from queue + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_pool` WHERE `id`=%s LIMIT 1", + array(bigintval(getRequestElement('mid'))), __FILE__, __LINE__); + $cnt += SQL_AFFECTEDROWS(); + + // Output link for manually removing stats entry + outputHtml(sprintf(getMessage('ADMIN_DELETED_MAILS_COUNT'), $cnt)); + } else { // Mail already deleted! - LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NORMAL_MAIL_ALREADY_DELETED); + loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NORMAL_MAIL_ALREADY_DELETED')); } -} - elseif (!empty($_GET['pid'])) -{ +} elseif (isGetRequestElementSet('pid')) { // Remove stats entries - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d LIMIT 1", - array(bigintval($_GET['pid'])), __FILE__, __LINE__); - LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_USER_STATS_REMOVED); -} - elseif ((!empty($_GET['bid'])) && (EXT_IS_ACTIVE("bonus"))) -{ + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `pool_id`=%s LIMIT 1", + array(bigintval(getRequestElement('pid'))), __FILE__, __LINE__); + + // Output message + loadTemplate('admin_settings_saved', false, getMessage('ADMIN_USER_STATS_REMOVED')); +} elseif ((isGetRequestElementSet('bid')) && (isExtensionActive('bonus'))) { // Load data from bonus mail - $result = SQL_QUERY_ESC("SELECT id, subject, url, timestamp FROM "._MYSQL_PREFIX."_bonus WHERE id=%d", - array(bigintval($_GET['bid'])), __FILE__, __LINE__); - list ($id, $subject, $url, $timestamp) = SQL_FETCHROW($result); - SQL_FREERESULT($result); + $result = SQL_QUERY_ESC("SELECT `id`, `subject`, `url`, `timestamp`, `mails_sent` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s", + array(bigintval(getRequestElement('bid'))), __FILE__, __LINE__); // Delete mail only once - if ($id > 0) - { + if (SQL_NUMROWS($result) == 1) { + // Load data + list($id, $subject, $url, $timestamp, $sent) = SQL_FETCHROW($result); + + // Reset sent mails for recipient(s) + reduceRecipientReceivedMails('bonus_id', getRequestElement('bid'), $sent); + + // Init counter for deleted mails + $cnt = 0; + // Delete bonus mail entirely from database - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1", - array(bigintval($_GET['bid'])), __FILE__, __LINE__); - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%d", - array(bigintval($_GET['bid'])), __FILE__, __LINE__); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1", + array(bigintval(getRequestElement('bid'))), __FILE__, __LINE__); + $cnt += SQL_AFFECTEDROWS(); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `bonus_id`=%s", + array(bigintval(getRequestElement('bid'))), __FILE__, __LINE__); + $cnt += SQL_AFFECTEDROWS(); // Prepare data for the template - define('__ID' , $id); - define('__SUBJECT', $subject); - define('__URL' , DEREFERER($url)); - define('__ORDERED', MAKE_DATETIME($timestamp, "0")); + $content['id'] = $id; + $content['subject'] = $subject; + $content['url'] = generateDerefererUrl($url); + $content['timestamp'] = generateDateTime($timestamp, 0); + $content['cnt'] = $cnt; // Load template - LOAD_TEMPLATE("admin_del_email_bonus"); + loadTemplate('admin_del_email_bonus', false, $content); + } else { + // Mail already deleted! + loadTemplate('admin_settings_saved', false, getMessage('ADMIN_BONUS_MAIL_ALREADY_DELETED')); } - else - { + + // Free result + SQL_FREERESULT($result); +} elseif ((isGetRequestElementSet('nid')) && (getExtensionVersion('bonus') >= '0.8.7')) { + // Load data from bonus mail + $result = SQL_QUERY_ESC("SELECT `id`, `subject`, `url`, `timestamp` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s", + array(bigintval(getRequestElement('nid'))), __FILE__, __LINE__); + + // Delete mail only once + if (SQL_NUMROWS($result) == 1) { + // Load data + list ($id, $subject, $url, $timestamp) = SQL_FETCHROW($result); + + // Init counter for deleted mails + $cnt = 0; + + // Delete bonus mail entirely from database + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1", + array(bigintval(getRequestElement('nid'))), __FILE__, __LINE__); + $cnt += SQL_AFFECTEDROWS(); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `bonus_id`=%s", + array(bigintval(getRequestElement('nid'))), __FILE__, __LINE__); + $cnt += SQL_AFFECTEDROWS(); + + // Prepare data for the template + $content['id'] = $id; + $content['subject'] = $subject; + $content['url'] = generateDerefererUrl($url); + $content['timestamp'] = generateDateTime($timestamp, 0); + $content['cnt'] = $cnt; + + // Load template + loadTemplate('admin_del_email_notify', false, $content); + } else { // Mail already deleted! - LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_MAIL_ALREADY_DELETED); + loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NOTIFY_MAIL_ALREADY_DELETED')); } -} - else -{ + + // Free result + SQL_FREERESULT($result); +} else { // No mail orders fond - LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_WRONG_CALL); + loadTemplate('admin_settings_saved', false, getMessage('ADMIN_WRONG_CALL')); } -CLOSE_TABLE(); + // ?>