More fixes, missing js.php added
[mailer.git] / inc / modules / admin / what-del_email.php
index 136b0f947c738457cc69a636afc5275b44972d0d..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__));
-OPEN_TABLE("100%", "admin_content admin_content_align", "");
-if (!empty($_GET['mid']))
-{
+ADD_DESCR("admin", __FILE__);
+
+if (!empty($_GET['mid'])) {
        // Load email data
-       $result = SQL_QUERY_ESC("SELECT id, sender, subject, url, timestamp 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__);
-       list ($id, $sender, $subject, $url, $timestamp,) = SQL_FETCHROW($result);
-       SQL_FREERESULT($result);
 
        // 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 = GET_PAY_POINTS($payId, "price");
+
                // Prepare data for the template
                define('__ID'     , $id);
                define('__SENDER' , ADMIN_USER_PROFILE_LINK($sender));
@@ -66,64 +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=%d LIMIT 1",
+ON s.pool_id=p.id
+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);
-                       SQL_FREERESULT($result);
+                       list($stats_id) = SQL_FETCHROW($result_pool);
+
+                       // Get all user links
+                       $links = GET_TOTAL_DATA($stats_id, "user_links", "userid", "stats_id", true);
+
+                       // Reset sent mails for recipient(s)
+                       REDUCT_RECIPIENT_RECEIVED_MAILS("stats_id", $_GET['mid'], $links);
+
+                       // 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
+                                       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=".$_GET['mid']."\">".ADMIN_REMOVE_STATS_ENTRY."</A>");
+                       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>");
                }
-       }
-        else
-       {
+
+               // 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']))
-{
+} 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")))
-{
+} 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__);
-       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($_GET['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)
+               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);
@@ -133,18 +180,46 @@ ON s.pool_id=%d LIMIT 1",
 
                // Load template
                LOAD_TEMPLATE("admin_del_email_bonus");
-       }
-        else
-       {
+       } else {
                // Mail already deleted!
                LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_MAIL_ALREADY_DELETED);
        }
-}
- else
-{
+
+       // 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);
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_WRONG_CALL);
 }
-CLOSE_TABLE();
+
 //
 ?>