Several fixes and and improvements:
[mailer.git] / inc / modules / admin / what-config_wernis.php
index ea86768545a0c198b50d8ab36e779058078e88a4..887d56bc17421fcc9616c2f11331a2d466b8bb62 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 (isset($_POST['ok'])) {
-       // Save settings
-       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+       // First merge temporarily the new API data into the current config
+       $_CONFIG = array_merge($_CONFIG, $_POST);
+
+       // Let's test the API first (hold your horses here, cowboy! Thank you. :) )
+       if (WERNIS_TEST_API()) {
+               // Revert german commata
+               foreach (array('payout_factor', 'withdraw_factor', 'payout_fee_percent', 'withdraw_fee_percent') as $revert) {
+                       $_POST['wernis_'.$revert] = REVERT_COMMA($_POST['wernis_'.$revert]);
+               } // END - if
+
+               // Hash the password and remove clear-text
+               $_POST['wernis_pass_md5'] = md5($_POST['wernis_pass']);
+               unset($_POST['wernis_pass']);
+
+               // Save settings
+               ADMIN_SAVE_SETTINGS($_POST);
+       } else {
+               // Failed to test the API!
+               LOAD_TEMPLATE("admin_settings_saved", false, GET_WERNIS_ERROR_MESSAGE());
+       }
 }  else {
        // Prepare data for template output
        $content = array(
-               'min_amount' => $CONFIG['wernis_min_amount'],
-               'api_id'     => $CONFIG['wernis_api_id'],
-               'api_md5'    => $CONFIG['wernis_api_md5']
+               'min_payout'           => bigintval($_CONFIG['wernis_min_payout']),
+               'min_withdraw'         => bigintval($_CONFIG['wernis_min_withdraw']),
+               'api_id'               => bigintval($_CONFIG['wernis_api_id']),
+               'api_md5'              => $_CONFIG['wernis_api_md5'],
+               'api_url'              => $_CONFIG['wernis_api_url'],
+               'refid'                => bigintval($_CONFIG['wernis_refid']),
+               'payout_factor'        => TRANSLATE_COMMA($_CONFIG['wernis_payout_factor']),
+               'withdraw_factor'      => TRANSLATE_COMMA($_CONFIG['wernis_withdraw_factor']),
+               'payout_fee_percent'   => TRANSLATE_COMMA($_CONFIG['wernis_payout_fee_percent']),
+               'withdraw_fee_percent' => TRANSLATE_COMMA($_CONFIG['wernis_withdraw_fee_percent']),
+               'payout_fee_fix'       => bigintval($_CONFIG['wernis_payout_fee_fix']),
+               'withdraw_fee_fix'     => bigintval($_CONFIG['wernis_withdraw_fee_fix'])
        );
 
+       // Prepare payout Y/N selection
+       if ($_CONFIG['wernis_payout_active'] == "Y") {
+               // Payout allowed
+               define('__CFG_WERNIS_PAYOUT_ACTIVE_Y', " checked=\"checked\"");
+               define('__CFG_WERNIS_PAYOUT_ACTIVE_N', "");
+       } else {
+               // Payout disabled
+               define('__CFG_WERNIS_PAYOUT_ACTIVE_Y', "");
+               define('__CFG_WERNIS_PAYOUT_ACTIVE_N', " checked=\"checked\"");
+       }
+
+       // Prepare withdraw Y/N selection
+       if ($_CONFIG['wernis_withdraw_active'] == "Y") {
+               // Payout allowed
+               define('__CFG_WERNIS_WITHDRAW_ACTIVE_Y', " checked=\"checked\"");
+               define('__CFG_WERNIS_WITHDRAW_ACTIVE_N', "");
+       } else {
+               // Payout disabled
+               define('__CFG_WERNIS_WITHDRAW_ACTIVE_Y', "");
+               define('__CFG_WERNIS_WITHDRAW_ACTIVE_N', " checked=\"checked\"");
+       }
+
        // Load template
        LOAD_TEMPLATE("admin_config_wernis", false, $content);
 }