More fixes, missing js.php added
[mailer.git] / inc / modules / admin / what-del_email.php
index 1c4c7e536c6ade2c1dad3a591f861fec18b08ef7..7ea60fcd4042793f0f224bb76bf38f0c049d7e1c 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
-if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
+if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
 
 // Add description as navigation point
-ADD_DESCR("admin", basename(__FILE__));
+ADD_DESCR("admin", __FILE__);
 
 if (!empty($_GET['mid'])) {
        // Load email data
-       $result = SQL_QUERY_ESC("SELECT id, sender, subject, url, timestamp, payment_id FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+       $result = SQL_QUERY_ESC("SELECT id, sender, subject, url, timestamp, payment_id FROM "._MYSQL_PREFIX."_pool WHERE id=%s LIMIT 1",
         array(bigintval($_GET['mid'])), __FILE__, __LINE__);
 
        // Delete mail only once
@@ -68,97 +68,109 @@ if (!empty($_GET['mid'])) {
                LOAD_TEMPLATE("admin_del_email_normal");
 
                // Transfer data to data array
-               $DATA = array($url, $subject);
+               $DATA = array('url' => $url, 'subject' => $subject);
 
                // Load email template and send the email away
-               $msg_user = LOAD_EMAIL_TEMPLATE("order-deleted", "", $sender);
+               $msg_user = LOAD_EMAIL_TEMPLATE("order-deleted", array(), $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__);
-
                // Fetch right stats_id from pool
-               $result = SQL_QUERY_ESC("SELECT s.id FROM "._MYSQL_PREFIX."_user_stats AS s
+               $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=%d LIMIT 1",
+WHERE s.pool_id=%s LIMIT 1",
  array(bigintval($_GET['mid'])), __FILE__, __LINE__);
-               if (SQL_NUMROWS($result) == 1) {
+               if (SQL_NUMROWS($result_pool) == 1) {
                        // Fetch stats id
-                       list($stats_id) = SQL_FETCHROW($result);
-
-                       // Free the result
-                       SQL_FREERESULT($result);
+                       list($stats_id) = SQL_FETCHROW($result_pool);
 
-                       // Shall we pay the points back to the user?
-                       if ($_CONFIG['repay_deleted_mails'] != "NEVER") {
-                               // Get all user links
-                               $result = SQL_QUERY_ESC("SELECT COUNT(id) AS 'cnt' FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d",
-                                       array(bigintval($stats_id)), __FILE__, __LINE__);
+                       // Get all user links
+                       $links = GET_TOTAL_DATA($stats_id, "user_links", "userid", "stats_id", true);
 
-                               // Get unconfirmed links for calculation of total points
-                               list($links) = SQL_FETCHROW($result);
+                       // Reset sent mails for recipient(s)
+                       REDUCT_RECIPIENT_RECEIVED_MAILS("stats_id", $_GET['mid'], $links);
 
-                               // Free result
-                               SQL_FREERESULT($result);
+                       // Calc total points and pay them back
+                       $totalPoints = $links * $price;
 
-                               // Calc total points and pay them back
-                               $totalPoints = $links * $price;
+                       // Shall we pay the points back to the user?
+                       if ($_CONFIG['repay_deleted_mails'] != 'SHRED') {
                                //* DEBUG: */ echo $stats_id.":".$totalPoints."/".$links."/".$price."<br />\n";
                                if ($totalPoints > 0) {
                                        // Shall we payback to user or jackpot?
                                        if ($_CONFIG['repay_deleted_mails'] == "JACKPOT") {
                                                // Set jackpot
                                                $sender = 0;
-                                       }
+                                       } // END - if
 
                                        // Pay back points
                                        //* DEBUG: */ echo "PAYBACK:".$sender."<br />\n";
                                        ADD_POINTS_REFSYSTEM($sender, $totalPoints, true, "0", false,"direct");
 
                                        // Output message
-                                       LOAD_TEMPLATE("admin_settings_saved", false, sprintf(ADMIN_POINTS_REPAYED,
-                                               number_format($totalPoints, 0, ",", ".")
-                                       ));
+                                       if ($_CONFIG['repay_deleted_mails'] == 'REPAY') {
+                                               // Repayed
+                                               LOAD_TEMPLATE("admin_settings_saved", false, sprintf(ADMIN_POINTS_REPAYED,
+                                                       TRANSLATE_COMMA($totalPoints)
+                                               ));
+                                       } else {
+                                               // To jackpot
+                                               LOAD_TEMPLATE("admin_settings_saved", false, sprintf(ADMIN_POINTS_TO_JACKPOT,
+                                                       TRANSLATE_COMMA($totalPoints)
+                                               ));
+                                       }
                                } else {
                                        // No points repayed!
                                        LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_POINTS_REPAYED);
                                }
+                       } else {
+                               // Points shredded!
+                               LOAD_TEMPLATE("admin_settings_saved", false, sprintf(ADMIN_POINTS_SHREDDED, $totalPoints));
                        }
 
+                       // Delete mail from queue
+                       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_pool WHERE id=%s LIMIT 1",
+                               array(bigintval($_GET['mid'])), __FILE__, __LINE__);
+
                        // 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__);
 
                        // Output link for manually removing stats entry
                        LOAD_TEMPLATE("admin_settings_saved", false, "<A href=\"".URL."/modules.php?module=admin&amp;what=del_email&amp;pid=".bigintval($_GET['mid'])."\">".ADMIN_REMOVE_STATS_ENTRY."</A>");
                }
+
+               // Free the result
+               SQL_FREERESULT($result_pool);
        } else {
                // Mail already deleted!
                LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NORMAL_MAIL_ALREADY_DELETED);
        }
 } elseif (!empty($_GET['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__);
+       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%s LIMIT 1",
+               array(bigintval($_GET['pid'])), __FILE__, __LINE__);
+
+       // Output message
        LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_USER_STATS_REMOVED);
 } elseif ((!empty($_GET['bid'])) && (EXT_IS_ACTIVE("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__);
+       $result = SQL_QUERY_ESC("SELECT id, subject, url, timestamp, mails_sent FROM "._MYSQL_PREFIX."_bonus WHERE id=%s",
+               array(bigintval($_GET['bid'])), __FILE__, __LINE__);
 
        // Delete mail only once
        if (SQL_NUMROWS($result) == 1) {
                // Load data
-               list ($id, $subject, $url, $timestamp) = SQL_FETCHROW($result);
-               SQL_FREERESULT($result);
+               list ($id, $subject, $url, $timestamp, $sent) = SQL_FETCHROW($result);
+
+               // Reset sent mails for recipient(s)
+               REDUCT_RECIPIENT_RECEIVED_MAILS ("bonus_id", $_GET['bid'], $sent);
 
                // 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($_GET['bid'])), __FILE__, __LINE__);
+               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%s",
+                       array(bigintval($_GET['bid'])), __FILE__, __LINE__);
 
                // Prepare data for the template
                define('__ID'     , $id);
@@ -172,6 +184,38 @@ WHERE s.pool_id=%d LIMIT 1",
                // Mail already deleted!
                LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_MAIL_ALREADY_DELETED);
        }
+
+       // Free result
+       SQL_FREERESULT($result);
+} elseif ((!empty($_GET['nid'])) && (GET_EXT_VERSION("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($_GET['nid'])), __FILE__, __LINE__);
+
+       // Delete mail only once
+       if (SQL_NUMROWS($result) == 1) {
+               // Load data
+               list ($id, $subject, $url, $timestamp) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Delete bonus mail entirely from database
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_bonus WHERE id=%s LIMIT 1",
+                array(bigintval($_GET['nid'])), __FILE__, __LINE__);
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%s",
+                array(bigintval($_GET['nid'])), __FILE__, __LINE__);
+
+               // Prepare data for the template
+               define('__ID'     , $id);
+               define('__SUBJECT', $subject);
+               define('__URL'    , DEREFERER($url));
+               define('__ORDERED', MAKE_DATETIME($timestamp, "0"));
+
+               // Load template
+               LOAD_TEMPLATE("admin_del_email_notify");
+       } else {
+               // Mail already deleted!
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NOTIFY_MAIL_ALREADY_DELETED);
+       }
 } else {
        // No mail orders fond
        LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_WRONG_CALL);