A lot has been rewritten, ext-teams added, ext-forced continued:
[mailer.git] / inc / modules / admin / what-config_points.php
index 357d122..0c60e88 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 10/12/2003 *
- * ===============                              Last change: 12/12/2004 *
+ * Mailer v0.2.1-FINAL                                Start: 10/12/2003 *
+ * ===================                          Last change: 12/12/2004 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : what-config_points.php                           *
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Einstellen der Willkommensgutschrift usw.        *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  ************************************************************************/
 
 // Some security stuff...
-if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
-       require($INC);
-}
+if ((!defined('__SECURITY')) || (!isAdmin())) {
+       die();
+} // END - if
 
 // Add description as navigation point
-ADD_DESCR("admin", __FILE__);
+addYouAreHereLink('admin', __FILE__);
 
 // Init variables
-$message = "";
+$message = '';
 
 // Is the 'sub' parameter set?
-if (!empty($_GET['sub'])) {
+if (isGetRequestParameterSet('sub')) {
        // Yes, then do some sanity-checks
-       switch ($_GET['sub'])
-       {
-       case "points":
-               if ((empty($_POST['points_register'])) || (empty($_POST['points_ref']))) {
-                       unset($_POST['ok']);
-               }
-               break;
+       switch (getRequestParameter('sub')) {
+               case 'points':
+                       if ((!isPostRequestParameterSet('points_register')) || (!isPostRequestParameterSet('points_ref'))) {
+                               unsetPostRequestParameter('ok');
+                       } // END - if
+                       break;
 
-       case "ref":
-               if (isset($_GET['do'])) {
-                       if (((empty($_POST['lvl'])) || (empty($_POST['perc']))) && ($_GET['do'] == "add")) {
-                               unset($_POST['ok']);
+               case 'ref':
+                       if (isGetRequestParameterSet('do')) {
+                               if (((!isPostRequestParameterSet('level')) || (!isPostRequestParameterSet('percents'))) && (getRequestParameter('do') == 'add')) {
+                                       unsetPostRequestParameter('ok');
+                               }
                        }
-               }
-               break;
-       }
+                       break;
+       } // END - switch
 } else {
        // Display overview
-       $_GET['sub'] = "overview";
+       setGetRequestParameter('sub', 'overview');
 }
 
-if (isset($_POST['ok'])) {
-       $SQLs = array();
-       switch ($_GET['sub'])
-       {
-       case "points":
-               $SQLs[] = "UPDATE `{!MYSQL_PREFIX!}_config` SET points_register='".$_POST['points_register']."', points_ref='".$_POST['points_ref']."' WHERE config=0 LIMIT 1";
-               break;
-
-       case "ref":
-               switch ($_GET['do'])
-               {
-               case "add":
-                       $SQLs[] = "INSERT INTO `{!MYSQL_PREFIX!}_refdepths` (level, percents) VALUES ('".$_POST['lvl']."','".$_POST['perc']."')";
+if (isFormSent()) {
+       initSqls();
+       switch (getRequestParameter('sub')) {
+               case 'points':
+                       adminSaveSettingsFromPostData();
                        break;
 
-               case "edit": // Change entries
-                       foreach ($_POST['lvl'] as $id => $value) {
-                               // Secure ID
-                               $id = bigintval($id);
-
-                               // Revert german commata
-                               $_POST['perc'][$id] = REVERT_COMMA($_POST['perc'][$id]);
-
-                               // Update entry
-                               SQL_QUERY_ESC("UPDATE `{!MYSQL_PREFIX!}_refdepths` SET level='%s', percents='%s' WHERE id=%s LIMIT 1",
-                                       array(bigintval($value), $_POST['perc'][$id], $id), __FILE__, __LINE__);
-                       }
-                       $message = REF_DEPTHS_SAVED;
+               case 'ref':
+                       switch (getRequestParameter('do')) {
+                               case 'add':
+                                       addSql("INSERT INTO `{?_MYSQL_PREFIX?}_refdepths` (`level`,`percents`) VALUES ('".bigintval(postRequestParameter('level'))."','".bigintval(postRequestParameter('percents'))."')");
+                                       break;
+
+                               case 'edit': // Change entries
+                                       foreach (postRequestParameter('level') as $id => $value) {
+                                               // Secure id
+                                               $id = bigintval($id);
+
+                                               // Revert german commata
+                                               setPostRequestParameter('percents', array($id => convertCommaToDot(postRequestParameter('percents', $id))));
+
+                                               // Update entry
+                                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_refdepths` SET `level`=%s, `percents`=%s WHERE `id`=%s LIMIT 1",
+                                                       array(bigintval($value), convertCommaToDot(postRequestParameter('percents', $id)), $id), __FILE__, __LINE__);
+                                       } // END - foreach
+                                       $message = '{--ADMIN_REFERAL_DEPTHS_SAVED--}';
+                                       break;
+
+                               case 'delete':
+                                       foreach (postRequestParameter('id') as $id => $value) {
+                                               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_refdepths` WHERE `id`=%s LIMIT 1",
+                                               array(bigintval($id)), __FILE__, __LINE__);
+                                       } // END - foreach
+                                       $message = '{--ADMIN_REFERAL_DEPTHS_DELETED--}';
+                                       break;
+                       } // END - switch
+
+                       // Update cache file
+                       // @TODO Rewrite this to a filter
+                       if (isExtensionInstalledAndNewer('cache', '0.1.2')) {
+                               if ($GLOBALS['cache_instance']->loadCacheFile('refdepths')) $GLOBALS['cache_instance']->removeCacheFile();
+                       } // END - if
                        break;
 
-               case "del":
-                       foreach ($_POST['id'] as $id => $value) {
-                               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!MYSQL_PREFIX!}_refdepths` WHERE id=%s LIMIT 1",
-                                       array(bigintval($id)), __FILE__, __LINE__);
+               case 'settings':
+                       $REF = bigintval(postRequestParameter('ref_payout'));
+                       updateConfiguration(
+                               array('allow_direct_pay', 'ref_payout'),
+                               array(postRequestParameter('allow_direct_pay'), $REF)
+                       );
+                       if ((getConfig('ref_payout') == '0') && (postRequestParameter('ref_payout') > 0)) {
+                               // Update account's ref_payout for "must-confirm"
+                               addSql(sprintf("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `ref_payout`=(%s - `mails_confirmed`)
+WHERE
+       `mails_confirmed` < %s", $REF, $REF));
+                       } elseif ((getConfig('ref_payout') > 0) && (postRequestParameter('ref_payout') == '0')) {
+                               // Update account's ref_payout for "not-must-confirm"
+                               addSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `ref_payout`=0 WHERE `ref_payout` > 0");
+                               addSql("UPDATE `{?_MYSQL_PREFIX?}_user_points` SET `points`=`points`+`locked_points` WHERE `locked_points` > 0");
+                               addSql("UPDATE `{?_MYSQL_PREFIX?}_user_points` SET `locked_points`=0 WHERE `locked_points` > 0");
                        }
-                       $message = REF_DEPTHS_DELETED;
                        break;
-               }
-
-               // Update cache file
-               if (GET_EXT_VERSION("cache") >= "0.1.2") {
-                       if ($cacheInstance->loadCacheFile("refdepths")) $cacheInstance->destroyCacheFile();
-               }
-               break;
-
-       case "settings":
-               $REF = bigintval($_POST['ref_payout']);
-               $SQLs[] = sprintf("UPDATE `{!MYSQL_PREFIX!}_config` SET
-allow_direct_pay='%s',
-reg_points_mode='%s',
-ref_payout='%s'
-WHERE config=0 LIMIT 1",
-                       $_POST['allow_direct_pay'],
-                       $_POST['reg_points_mode'],
-                       $REF
-               );
-               if ((getConfig('ref_payout') == 0) && ($_POST['ref_payout'] > 0)) {
-                       // Update account's ref_payout for "must-confirm"
-                       $SQLs[] = sprintf("UPDATE `{!MYSQL_PREFIX!}_user_data` SET ref_payout=(%s - mails_confirmed)
-WHERE mails_confirmed < %s", $REF, $REF);
-               } elseif ((getConfig('ref_payout') > 0) && ($_POST['ref_payout'] == 0)) {
-                       // Update account's ref_payout for "not-must-confirm"
-                       $SQLs[] = "UPDATE `{!MYSQL_PREFIX!}_user_data` SET ref_payout=0 WHERE ref_payout > 0";
-                       $SQLs[] = "UPDATE `{!MYSQL_PREFIX!}_user_points` SET points=points+locked_points WHERE locked_points>0";
-                       $SQLs[] = "UPDATE `{!MYSQL_PREFIX!}_user_points` SET locked_points=0 WHERE locked_points>0";
-               }
-               break;
-       }
+       } // END - switch
 
-       if ((isset($SQLs)) && (is_array($SQLs)) && (!empty($SQLs[0]))) {
-               if (strpos($SQLs[0], "INSERT") > -1) {
-                       $result = SQL_QUERY_ESC("SELECT id FROM `{!MYSQL_PREFIX!}_refdepths` WHERE level='%s' LIMIT 1",
-                               array(bigintval($_POST['lvl'])), __FILE__, __LINE__);
+       if ((isSqlsValid()) && (isSqlsValid())) {
+               if (strpos($GLOBALS['sqls'][0], 'INSERT') > -1) {
+                       $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_refdepths` WHERE `level`=%s LIMIT 1",
+                               array(bigintval(postRequestParameter('level'))), __FILE__, __LINE__);
                        SQL_FREERESULT($result);
                } // END - if
 
-               if (count($SQLs) > 0) {
+               if (countSqls() > 0) {
                        // Run all SQL commands
-                       RUN_FILTER('run_sqls', array('dry_run' => false, 'sqls' => $SQLs));
+                       runFilterChain('run_sqls');
 
                        // Entry saved...
-                       $message = SETTINGS_SAVED;
+                       $message = '{--SETTINGS_SAVED--}';
 
                        // Destroy config cache file here...
-                       REBUILD_CACHE("config", "config");
+                       rebuildCache('config', 'config');
                } else {
                        // Prepare failed-message
-                       $message = "<span class=\"admin_failed\">".SETTINGS_NOT_SAVED."</span>";
+                       $message = '<span class="notice">{--SETTINGS_NOT_SAVED--}</span>';
                }
 
                // Remove SQL queries
-               unset($SQLs);
+               unsetSqls();
        }
 
        // Shall we display a message?
        if (!empty($message)) {
                // When do so...
-               LOAD_TEMPLATE("admin_settings_saved", false, $message);
-       }
-} elseif ($_GET['sub'] == "settings") {
+               displayMessage($message);
+       } // END - if
+} elseif (getRequestParameter('sub') == 'settings') {
        // Setup some settings like direct pay and so on
        // Including new add-mode for one-time referal bonus
-       switch (getConfig('allow_direct_pay')) {
-       case "Y":
-               define('__DIRECT_Y', " checked=\"checked\"");
-               define('__DIRECT_N', "");
-               break;
-
-       case "N":
-               define('__DIRECT_Y', "");
-               define('__DIRECT_N', " checked=\"checked\"");
-               break;
-       }
-
-       // One-time referal bonus add-mode
-       switch (getConfig('reg_points_mode')) {
-               case "ref"   : define('__MODE_REF', " checked=\"checked\""); define('__MODE_DIRECT', "");         break;
-               case "direct": define('__MODE_REF', "");         define('__MODE_DIRECT', " checked=\"checked\""); break;
-       }
-
-       // Referal payout value
-       define('__REF_PAYOUT', round(getConfig('ref_payout')));
+       foreach (array('allow_direct_pay') as $entry) {
+               $content[$entry . '_y'] = '';
+               $content[$entry . '_n'] = '';
+               $content[$entry . '_' . strtolower(getConfig($entry))] = ' checked="checked"';
+       } // END - foreach
 
        // Load template
-       LOAD_TEMPLATE("admin_config_point_settings");
-} elseif ($_GET['sub'] == "ref") {
-       if ((isset($_POST['del'])) && (isset($_POST['sel'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0])))) {
+       loadTemplate('admin_config_point_settings', false, $content);
+} elseif (getRequestParameter('sub') == 'ref') {
+       // 12          3     32    2                        3321
+       if ((isFormSent('delete')) && (ifPostContainsSelections())) {
                // Delete entries
-               $SW = 2; $OUT = "";
-               foreach ($_POST['sel'] as $id => $value) {
-                       $result = SQL_QUERY_ESC("SELECT level, percents FROM `{!MYSQL_PREFIX!}_refdepths` WHERE id=%s LIMIT 1",
+               $OUT = '';
+               foreach (postRequestParameter('sel') as $id => $value) {
+                       $result = SQL_QUERY_ESC("SELECT `id`,`level`,`percents` FROM `{?_MYSQL_PREFIX?}_refdepths` WHERE `id`=%s LIMIT 1",
                                array(bigintval($id)), __FILE__, __LINE__);
-                       list($lvl, $perc) = SQL_FETCHROW($result);
+                       $content = SQL_FETCHARRAY($result);
                        SQL_FREERESULT($result);
 
-                       // Prepare data for the row template
-                       $content = array(
-                               'sw'  => $SW,
-                               'id'  => $id,
-                               'lvl' => $lvl,
-                               'per' => TRANSLATE_COMMA($perc),
-                       );
-
                        // Load row template and switch color
-                       $OUT .= LOAD_TEMPLATE("admin_points_del_row", true, $content);
-                       $SW = 3 - $SW;
-               }
-               define('__LEVEL_ROWS', $OUT);
+                       $OUT .= loadTemplate('admin_delete_reflevel_row', true, $content);
+               } // END - foreach
 
                // Load main template
-               LOAD_TEMPLATE("admin_points_del");
-       } elseif ((isset($_POST['edit'])) && (isset($_POST['sel'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0])))) {
+               loadTemplate('admin_delete_reflevel', false, $OUT);
+       } elseif ((isFormSent('edit')) && (ifPostContainsSelections())) {
                // Edit entries
-               $SW = 2; $OUT = "";
-               foreach ($_POST['sel'] as $id => $value) {
-                       $result = SQL_QUERY_ESC("SELECT level, percents FROM `{!MYSQL_PREFIX!}_refdepths` WHERE id=%s LIMIT 1",
-                        array(bigintval($id)), __FILE__, __LINE__);
-                       list($lvl, $perc) = SQL_FETCHROW($result);
+               $OUT = '';
+               foreach (postRequestParameter('sel') as $id => $value) {
+                       $result = SQL_QUERY_ESC("SELECT `id`,`level`,`percents` FROM `{?_MYSQL_PREFIX?}_refdepths` WHERE `id`=%s LIMIT 1",
+                               array(bigintval($id)), __FILE__, __LINE__);
+                       $content = SQL_FETCHARRAY($result);
                        SQL_FREERESULT($result);
 
-                       // Prepare data for the row template
-                       $content = array(
-                               'sw'  => $SW,
-                               'id'  => $id,
-                               'lvl' => $lvl,
-                               'per' => TRANSLATE_COMMA($perc),
-                       );
-
                        // Load row template and switch color
-                       $OUT .= LOAD_TEMPLATE("admin_points_edit_row", true, $content);
-                       $SW = 3 - $SW;
-               }
-               define('__LEVEL_ROWS', $OUT);
+                       $OUT .= loadTemplate('admin_edit_reflevel_row', true, $content);
+               } // END - foreach
 
                // Load main template
-               LOAD_TEMPLATE("admin_points_edit");
+               loadTemplate('admin_edit_reflevel', false, $OUT);
        } else {
                // Referal levels
-               $result = SQL_QUERY("SELECT id, level, percents FROM `{!MYSQL_PREFIX!}_refdepths` ORDER BY level", __FILE__, __LINE__);
-               if (SQL_NUMROWS($result) > 0) {
+               $result = SQL_QUERY("SELECT `id`,`level`,`percents` FROM `{?_MYSQL_PREFIX?}_refdepths` ORDER BY `level` ASC", __FILE__, __LINE__);
+               if (!SQL_HASZERONUMS($result)) {
                        // Make referal levels editable and deletable
-                       $SW = 2; $OUT = "";
+                       $OUT = '';
 
                        // List already existing categories for editing
-                       while (list($id, $lvl, $perc) = SQL_FETCHROW($result)) {
-                               // Prepare data for the row template
-                               $content = array(
-                                       'sw'  => $SW,
-                                       'id'  => $id,
-                                       'lvl' => $lvl,
-                                       'per' => TRANSLATE_COMMA($perc),
-                               );
-
+                       while ($content = SQL_FETCHARRAY($result)) {
                                // Load row template and switch color
-                               $OUT .= LOAD_TEMPLATE("admin_points_row", true, $content);
-                               $SW = 3 - $SW;
-                       }
+                               $OUT .= loadTemplate('admin_list_reflevel_row', true, $content);
+                       } // END - while
 
                        // Free memory
                        SQL_FREERESULT($result);
-                       define('__LEVEL_ROWS', $OUT);
 
                        // Load main template
-                       LOAD_TEMPLATE("admin_points");
+                       loadTemplate('admin_list_reflevel', false, $OUT);
                }
 
                // Form for adding new referal levels
-               LOAD_TEMPLATE("admin_add_reflvl");
+               loadTemplate('admin_add_reflevel');
        }
-} elseif ($_GET['sub'] == "points") {
-       // First points for registration and other fixed points including new add-mode for one-time referal bonus...
-       define('P_REG_VALUE', getConfig('points_register'));
-       define('P_REF_VALUE', getConfig('points_ref'));
-
-       // Load templates
-       LOAD_TEMPLATE("admin_config_sub_points");
+} elseif (getRequestParameter('sub') == 'points') {
+       // Load template
+       loadTemplate('admin_config_sub_points');
 } else {
        // Display selection box
-       LOAD_TEMPLATE("admin_config_points");
+       loadTemplate('admin_config_points');
 }
 
-//
+// [EOF]
 ?>