A lot has been rewritten, ext-teams added, ext-forced continued:
[mailer.git] / inc / modules / member / what-primera.php
index c5062c243bd410712a6ce894637ac962e72d9c8a..cf4a196098614d7320d30ea384d2e2210405956f 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 09/09/2008 *
- * ================                             Last change: 09/09/2008 *
+ * Mailer v0.2.1-FINAL                                Start: 09/09/2008 *
+ * ===================                          Last change: 09/09/2008 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : what-primera.php                                 *
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Auszahlungsanfragen                              *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $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')) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
-       require($INC);
-} elseif (!IS_MEMBER()) {
+       die();
+} elseif (!isMember()) {
        // User is not logged in
-       LOAD_URL("modules.php?module=index");
-} elseif ((!EXT_IS_ACTIVE("primera")) && (!IS_ADMIN())) {
-       // Extension "primera" is not activated
-       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "primera");
-       return;
+       redirectToIndexMemberOnlyModule();
 }
 
 // Add description as navigation point
-ADD_DESCR("member", basename(__FILE__));
+addYouAreHereLink('member', __FILE__);
+
+if ((!isExtensionActive('primera')) && (!isAdmin())) {
+       // Extension 'primera' is not activated
+       displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=primera%}');
+       return;
+} // END - if
 
 // Check if the admin has entered the data
-if ((empty($_CONFIG['primera_api_name'])) || (empty($_CONFIG['primera_api_md5']))) {
+if ((getConfig('primera_api_name') == '') || (getConfig('primera_api_md5') == '')) {
        // Something important is missing...
-       LOAD_TEMPLATE("admin_settings_saved", false, PRIMERA_MEMBER_API_DATA_MISSING);
+       displayMessage('{--MEMBER_PRIMERA_API_DATA_MISSING--}');
        return;
-}
+} // END - if
 
 // Init the content array and points
-$content = array(); $points = false;
+$content = array();
+$points = false;
 
 // Is the mode set (payout only)
-if (!isset($_GET['mode'])) {
-       // Get referral id
-       $content['refid'] = bigintval($_CONFIG['primera_refid']);
-
-       // Get Primus id
-       $result = SQL_QUERY_ESC("SELECT primera_userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
-               array($GLOBALS['userid']), __FILE__, __LINE__);
-
-       // Are there some entries?
-       if (SQL_NUMROWS($result) == 1) {
-               // Fetch ID
-               list($content['primus_nickname']) = SQL_FETCHROW($result);
-       } // END - if
-
-       // Free result
-       SQL_FREERESULT($result);
-
-       // Is there an ID?
-       if ((!empty($content['primus_nickname'])) && (!isset($_GET['mode']))) {
+if (!isGetRequestParameterSet('mode')) {
+       // Is there an id?
+       if ((!empty($content['primera_nickname'])) && (!isGetRequestParameterSet('mode'))) {
                // Then use an other "mode"
-               $_GET['mode'] = "list";
+               setGetRequestParameter('mode', 'list');
 
                // And load all rows!
-               $result = SQL_QUERY_ESC("SELECT `id`, `primera_account`, `primera_amount`, `primera_timestamp`, `primera_type` FROM "._MYSQL_PREFIX."_user_primera WHERE `userid` = %s ORDER BY `primera_timestamp` DESC",
-                       array($GLOBALS['userid']), __FILE__, __LINE__);
+               $result = SQL_QUERY_ESC("SELECT `id`,`primera_account`,`primera_amount`,`primera_timestamp`,`primera_type` FROM `{?_MYSQL_PREFIX?}_user_primera` WHERE `userid`=%s ORDER BY `primera_timestamp` DESC",
+                       array(getMemberId()), __FILE__, __LINE__);
 
                // Load all rows
-               $content['rows'] = ""; $SW = 2;
+               $content['rows'] = '';
                while ($data = SQL_FETCHARRAY($result)) {
                        // Prepare data for output
-                       $rowContent = array(
-                               'stamp'                 => MAKE_DATETIME($data['primera_timestamp'], "2"),
-                               'points'                => TRANSLATE_COMMA($data['primera_amount']),
-                               'acc'                   => SQL_ESCAPE($data['primera_account']),
-                               'status'                => PRIMERA_TRANSFER_STATUS($data['primera_type']),
-                               'raw_type'              => strtolower($data['primera_type']),
-                               'sw'                    => $SW,
-                       );
+                       $rowContent['primera_timestamp'] = generateDateTime($data['primera_timestamp'], 2);
 
                        // Load row template
-                       $content['rows'] .= LOAD_TEMPLATE("member_primera_mode_list_row", true, $rowContent);
-                       $SW = 3 - $SW;
-               }
+                       $content['rows'] .= loadTemplate('member_primera_mode_list_row', true, $rowContent);
+               } // END - while
 
                // Free result
                SQL_FREERESULT($result);
        } else {
                // Mode pay
-               $_GET['mode'] = "pay";
+               setGetRequestParameter('mode', 'pay');
        }
 } // END - if
-if ($_GET['mode'] == "pay") {
+
+if (getRequestParameter('mode') == 'pay') {
        // Get total points and check if the user can request a payout
-       $points = GET_TOTAL_DATA($GLOBALS['userid'], "user_points", "points") - GET_TOTAL_DATA($GLOBALS['userid'], "user_data", "used_points");
+       $points = getTotalPoints(getMemberId());
 
        // No dots here...
-       $points = explode(".", $points);
+       $points = explode('.', $points);
        $points = bigintval($points[0]);
 
        // Remove the registration fee
-       $points = $points - $_CONFIG['points_register'];
+       $points = $points - getPointsRegister();
 
        // Is this enougth for a payout?
-       if ($points < $_CONFIG['primera_min_payout']) {
+       if ($points < getConfig('primera_min_payout')) {
                // No, then abort here
-               LOAD_TEMPLATE("admin_settings_saved", false, sprintf(PRIMERA_MEMBER_MIN_PAYOUT_PAYOUT, TRANSLATE_COMMA($_CONFIG['primera_min_payout'])));
+               displayMessage('{--MEMBER_PRIMERA_MIN_PAYOUT_PAYOUT--}');
                return;
-       }
+       } // END - if
 
        // Add points to content array
-       $content['points']              = $points;
-       $content['min_points']  = TRANSLATE_COMMA($_CONFIG['primera_min_payout']);
-
-       // Get Primera id
-       $content['primus_nickname'] = "";
-       $result = SQL_QUERY_ESC("SELECT primera_userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
-               array($GLOBALS['userid']), __FILE__, __LINE__);
-
-       // Are there some entries?
-       if (SQL_NUMROWS($result) == 1) {
-               // Fetch ID
-               list($content['primus_nickname']) = SQL_FETCHROW($result);
-       }
-
-       // Free result
-       SQL_FREERESULT($result);
+       $content['points'] = $points;
 } else {
        // Invalid mode!
-       LOAD_TEMPLATE("admin_settings_saved", false, sprintf(PRIMERA_MEMBER_MODE_INVALID, SQL_ESCAPE($_GET['mode'])));
+       displayMessage('{%message,MEMBER_PRIMERA_MODE_INVALID=' . getRequestParameter('mode') . '%}');
        return;
 }
 
 // Is the formular sent?
-if ((isset($_POST['ok'])) && (isset($_GET['mode']))) {
+if ((isFormSent()) && (isGetRequestParameterSet('mode'))) {
        // Check input data depending on the mode and execute the requested mode
-       switch ($_GET['mode']) {
-               case "pay": // Payout this exchange -> Primus
-                       // Is the user ID and password set?
-                       if (empty($_POST['primus_nickname'])) {
+       switch (getRequestParameter('mode')) {
+               case 'pay': // Payout this exchange -> Primus
+                       // Is the user id and password set?
+                       if (!isPostRequestParameterSet('primera_nickname')) {
                                // Nothing entered in Primus nickname
-                               LOAD_TEMPLATE("admin_settings_saved", false, PRIMERA_MEMBER_EMPTY_USERNAME);
-                               OUTPUT_HTML("<br />");
-                       } elseif (empty($_POST['primera_password'])) {
+                               displayMessage('{--MEMBER_PRIMERA_EMPTY_USERNAME--}');
+                       } elseif (!isPostRequestParameterSet('primera_password')) {
                                // Nothing entered in Primera password
-                               LOAD_TEMPLATE("admin_settings_saved", false, PRIMERA_MEMBER_EMPTY_PASSWORD);
-                               OUTPUT_HTML("<br />");
-                       } elseif (empty($_POST['amount'])) {
+                               displayMessage('{--MEMBER_PRIMERA_EMPTY_PASSWORD--}');
+                       } elseif (!isPostRequestParameterSet('amount')) {
                                // Nothing entered in amount
-                               LOAD_TEMPLATE("admin_settings_saved", false, PRIMERA_MEMBER_EMPTY_AMOUNT);
-                               OUTPUT_HTML("<br />");
-                       } elseif ($_POST['amount'] != bigintval($_POST['amount'])) {
+                               displayMessage('{--MEMBER_PRIMERA_EMPTY_AMOUNT--}');
+                       } elseif (postRequestParameter('amount') != bigintval(postRequestParameter('amount'))) {
                                // Only numbers in amount!
-                               LOAD_TEMPLATE("admin_settings_saved", false, PRIMERA_MEMBER_INVALID_AMOUNT);
-                               OUTPUT_HTML("<br />");
-                       } elseif ($_POST['amount'] < $_CONFIG['primera_min_payout']) {
+                               displayMessage('{--MEMBER_PRIMERA_INVALID_AMOUNT--}');
+                       } elseif (postRequestParameter('amount') < getConfig('primera_min_payout')) {
                                // Not enougth entered!
-                               LOAD_TEMPLATE("admin_settings_saved", false, sprintf(PRIMERA_MEMBER_AMOUNT_SMALLER_MIN, bigintval($_CONFIG['primera_min_payout'])));
-                               OUTPUT_HTML("<br />");
-                       } elseif ($_POST['amount'] > $points) {
+                               displayMessage('{--MEMBER_PRIMERA_AMOUNT_SMALLER_MIN--}');
+                       } elseif (postRequestParameter('amount') > $points) {
                                // Not enougth points left!
-                               LOAD_TEMPLATE("admin_settings_saved", false, sprintf(PRIMERA_MEMBER_PAYOUT_POINTS_DEPLETED, bigintval($_POST['amount']), bigintval($points)));
-                               OUTPUT_HTML("<br />");
+                               displayMessage(sprintf(getMessage('MEMBER_PRIMERA_PAYOUT_POINTS_DEPLETED'), bigintval(postRequestParameter('amount')), bigintval($points)));
                        } else {
                                // All is fine here so do the payout
-                               $success = PRIMERA_EXECUTE_PAYOUT($_POST['primus_nickname'], md5($_POST['primera_password']), $_POST['amount']);
+                               $success = executePrimeraPayout(postRequestParameter('primera_nickname'), md5(postRequestParameter('primera_password')), postRequestParameter('amount'));
                                if ($success) {
                                        // Default is locked!
                                        $locked = true;
 
-                                       // Shall I "pay" the referral points imidiately?
-                                       if ($_CONFIG['ref_payout'] == "0") {
-                                               // Yes, "pay" it now
+                                       // Shall I 'pay' the referal points imidiately?
+                                       if (getConfig('ref_payout') == '0') {
+                                               // Yes, 'pay' it now
                                                $locked = false;
                                        } // END - if
 
-                                       // Remove points from account
-                                       SUB_POINTS($GLOBALS['userid'], $_POST['amount']);
+                                       // Subtract points from account and ignore return status
+                                       subtractPoints('primera_payout', getMemberId(), postRequestParameter('amount'));
 
                                        // Update primera nickname
-                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET `primera_userid`=%s WHERE userid=%s LIMIT 1",
-                                               array($_POST['primus_nickname'], $GLOBALS['userid']), __FILE__, __LINE__);
+                                       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `primera_nickname`=%s WHERE `userid`=%s LIMIT 1",
+                                               array(postRequestParameter('primera_nickname'), getMemberId()), __FILE__, __LINE__);
 
                                        // All done!
-                                       LOAD_TEMPLATE("admin_settings_saved", false, PRIMERA_MEMBER_PAYOUT_DONE);
+                                       displayMessage('{--MEMBER_PRIMERA_PAYOUT_DONE--}');
                                        return;
-                               } elseif ((GET_PRIMERA_ERROR_CODE() == "user_failed") || (GET_PRIMERA_ERROR_CODE() == "own_failed") || (GET_PRIMERA_ERROR_CODE() == "amount_failed") || (GET_PRIMERA_ERROR_CODE() == "api_amount_failed")) {
+                               } elseif ((GET_PRIMERA_ERROR_CODE() == 'user_failed') || (GET_PRIMERA_ERROR_CODE() == 'own_failed') || (GET_PRIMERA_ERROR_CODE() == 'amount_failed') || (GET_PRIMERA_ERROR_CODE() == 'api_amount_failed')) {
                                        // Wrong login data
-                                       LOAD_TEMPLATE("admin_settings_saved", false, GET_PRIMERA_ERROR_MESSAGE());
-                                       OUTPUT_HTML("<br />");
+                                       displayMessage(GET_PRIMERA_ERROR_MESSAGE());
                                } else {
                                        // Something went wrong
-                                       LOAD_TEMPLATE("admin_settings_saved", false, sprintf(PRIMERA_MEMBER_PAYOUT_FAILED, GET_PRIMERA_ERROR_MESSAGE()));
-                                       OUTPUT_HTML("<br />");
+                                       displayMessage('{%message,MEMBER_PRIMERA_PAYOUT_FAILED=' . GET_PRIMERA_ERROR_MESSAGE() . '%}');
                                }
                        }
                        break;
 
                default: // Invalid mode!
-                       LOAD_TEMPLATE("admin_settings_saved", false, sprintf(PRIMERA_MEMBER_MODE_INVALID, SQL_ESCAPE($_GET['mode'])));
+                       logDebugMessage(__FILE__, __LINE__, sprintf("Invalid mode %s detected.", getRequestParameter('mode')));
+                       displayMessage('{%message,MEMBER_PRIMERA_MODE_INVALID=' . getRequestParameter('mode') . '%}');
                        return;
        }
-}
+} // END - if
 
 // Prepare mode for template name
-$mode = sprintf("member_primera_mode_%s", SQL_ESCAPE($_GET['mode']));
+$mode = sprintf("member_primera_mode_%s", getRequestParameter('mode'));
 
 // Load the template
-LOAD_TEMPLATE($mode, false, $content);
+loadTemplate($mode, false, $content);
 
 //
 ?>