New functions introduced, several rewrites:
[mailer.git] / inc / modules / admin / what-edit_sponsor.php
index fc3d280..c45ffde 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * M-XChange v0.2.1                                   Start: 04/24/2005 *
- * ================                             Last change: 05/12/2005 *
+ * Mailer v0.2.1-FINAL                                Start: 04/24/2005 *
+ * ===================                          Last change: 05/12/2005 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : what-edit_sponsor.php                            *
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Sponsorenaccount aendern                         *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * Needs to be in all Files and every File needs "svn propset           *
+ * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
- * This program is free software. You can redistribute it and/or modify *
+ * This program is free software; you can redistribute it and/or modify *
  * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License.       *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
  *                                                                      *
  * This program is distributed in the hope that it will be useful,      *
  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
  ************************************************************************/
 
 // Some security stuff...
-if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin())) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php";
-       require($INC);
+if ((!defined('__SECURITY')) || (!isAdmin())) {
+       die();
 }
 
 // Add description as navigation point
-ADD_DESCR("admin", basename(__FILE__));
+addMenuDescription('admin', __FILE__);
 
-if ((!empty($_GET['id'])) && (!empty($_GET['mode']))) {
+if ((isGetRequestElementSet('id')) && (isGetRequestElementSet('mode'))) {
        // Check for selected sponsor
-       $result = SQL_QUERY_ESC("SELECT company, position, salut, surname, family, street_nr1, street_nr2, zip, city, country, phone, fax, cell, email, url, tax_ident, receive_warnings, warning_interval FROM "._MYSQL_PREFIX."_sponsor_data WHERE id='%s' LIMIT 1",
-        array(bigintval($_GET['id'])), __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) == 1) {
+       $result_main = SQL_QUERY_ESC("SELECT
+       `company`, `position`, `gender`, `surname`, `family`,
+       `street_nr1`, `street_nr2`, `zip`, `city`, `country`,
+       `phone`, `fax`, `cell`, `email`, `url`, `tax_ident`,
+       `receive_warnings`, `warning_interval`
+FROM
+       `{?_MYSQL_PREFIX?}_sponsor_data`
+WHERE
+       `id`='%s'
+LIMIT 1",
+               array(bigintval(getRequestElement('id'))), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_main) == 1) {
                // Load sponsor details
-               $DATA = SQL_FETCHARRAY($result);
-               SQL_FREERESULT($result);
+               $content = SQL_FETCHARRAY($result_main);
 
                // Prepare all data for the template
-               //  Sponsor's ID
-               define('__SPONSOR_ID' , bigintval($_GET['id']));
-               //  Company's data
-               define('__COMPANY'    , $DATA['company']);
-               define('__POSITION'   , $DATA['position']);
-               define('__TAX_IDENT'  , $DATA['tax_ident']);
-               //  Personal data
-               switch ($DATA['salut'])
-               {
-               case "M":
-                       define('__SALUT_M', " selected");
-                       define('__SALUT_F', "");
-                       define('__SALUT_C', "");
-                       break;
-
-               case "F":
-                       define('__SALUT_M', "");
-                       define('__SALUT_F', " selected");
-                       define('__SALUT_C', "");
-                       break;
-
-               case "C":
-                       define('__SALUT_M', "");
-                       define('__SALUT_F', "");
-                       define('__SALUT_C', " selected");
-                       break;
-               }
-               define('__SURNAME'    , $DATA['surname']);
-               define('__FAMILY'     , $DATA['family']);
-               define('__STREET1'    , $DATA['street_nr1']);
-               define('__STREET2'    , $DATA['street_nr2']);
-               define('__ZIP'        , $DATA['zip']);
-               define('__CITY'       , $DATA['city']);
-               define('__COUNTRY'    , $DATA['country']);
-               //  Contact data
-               define('__PHONE'      , $DATA['phone']);
-               define('__FAX'        , $DATA['fax']);
-               define('__CELL'       , $DATA['cell']);
-               define('__EMAIL'      , $DATA['email']);
-               define('__URL'        , $DATA['url']);
+               //  Sponsor's id
+               $content['id'] = bigintval(getRequestElement('id'));
+
+               // Init gender
+               foreach (array('m', 'f', 'c') as $gender) {
+                       $content['gender_' . $gender] = '';
+               } // END - foreach
+
+               // Check for gender selection
+               $content['gender_' . strtolower($content['gender'])] = ' selected="selected"';
+
                //  Warning because low points
-               define('__REC_WARNING', ADD_SELECTION("yn", $DATA['receive_warnings'], "receive_warning"));
-               define('__INTERVAL'   , CREATE_TIME_SELECTIONS($DATA['warning_interval'], "warning_interval", "MWDh"));
+               $content['receive_warnings'] = addSelectionBox('yn', $content['receive_warnings'], 'receive_warning');
+               $content['interval']         = createTimeSelections($content['warning_interval'], 'warning_interval', 'MWDh');
 
                // Init variables here
-               $TPL = sprintf("admin_edit_sponsor_%s", SQL_ESCAPE($_GET['mode']));
-               $SQLs = array();
+               $TPL = sprintf("admin_edit_sponsor_%s", getRequestElement('mode'));
+               initSqls();
 
                // Sponsor was found
-               if ((isset($_POST['ok'])) || (isset($_POST['edit']))) {
+               if ((isFormSent()) || (isPostRequestElementSet('edit'))) {
                        // Perform action on mode
-                       switch ($_GET['mode'])
-                       {
-                       case "add_points": // Add points
-                               if (strval($_POST['points']) > 0) {
-                                       // Replace german decimal comma with computer's decimal dot
-                                       $POINTS = strval(str_replace(",", ".", $_POST['points']));
-
-                                       // Add points to account
-                                       $result_add = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_sponsor_data SET points_amount=points_amount+%s WHERE id='%s' LIMIT 1",
-                                        array($POINTS, bigintval($_GET['id'])), __FILE__, __LINE__);
-
-                                       // Remember points /reason for the template
-                                       define('__POINTS' , TRANSLATE_COMMA($POINTS));
-                                       define('__REASON' , $_POST['reason']);
-
-                                       // Send email
-                                       $msg = LOAD_EMAIL_TEMPLATE("sponsor_add_points", $_POST['reason'], true);
-                                       SEND_EMAIL(__EMAIL, SPONSOR_ADMIN_ADD_POINTS, $msg);
-                                       $MSG = ADMIN_SPONSOR_POINTS_ADDED;
-                               } else {
-                                       // No points entered to add!
-                                       $MSG = ADMIN_SPONSPOR_NO_POINTS_TO_ADD;
-                               }
-                               break;
-
-                       case "sub_points": // Subtract points
-                               if (strval($_POST['points']) > 0) {
-                                       // Replace german decimal comma with computer's decimal dot
-                                       $POINTS = strval(str_replace(",", ".", $_POST['points']));
-
-                                       // Add points to account
-                                       $result_add = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_sponsor_data SET points_used=points_used+%s WHERE id='%s' LIMIT 1",
-                                        array($POINTS, bigintval($_GET['id'])), __FILE__, __LINE__);
-
-                                       // Remember points /reason for the template
-                                       define('__POINTS' , TRANSLATE_COMMA($POINTS));
-                                       define('__REASON' , $_POST['reason']);
-
-                                       // Send email
-                                       $msg = LOAD_EMAIL_TEMPLATE("sponsor_sub_points", $_POST['reason'], true);
-                                       SEND_EMAIL(__EMAIL, SPONSOR_ADMIN_SUB_POINTS, $msg);
-                                       $MSG = ADMIN_SPONSOR_POINTS_SUBTRACTED;
-                               } else {
-                                       // No points entered to add!
-                                       $MSG = ADMIN_SPONSPOR_NO_POINTS_TO_SUBTRACT;
-                               }
-                               break;
-
-                       case "edit": // Edit sponsor account
-                               $PASS = true;
-                               if (($_POST['pass1'] != $_POST['pass2']) || ((empty($_POST['pass1'])) && (empty($_POST['pass1'])))) {
-                                       // Remove passwords
-                                       unset($_POST['pass1']);
-                                       unset($_POST['pass2']);
-                                       $PASS = false;
-                               }
-                               SPONSOR_HANDLE_SPONSOR($_POST);
-
-                               // Convert some data for the email template
-                               $_POST['salut'] = TRANSLATE_SEX($_POST['salut']);
-                               $_POST['warning_interval'] = CREATE_FANCY_TIME($_POST['warning_interval']);
-                               if (!$PASS) $_POST['pass1'] = SPONSOR_PASS_UNCHANGED;
-
-                               // Load email template and send the mail away
-                               $msg = LOAD_EMAIL_TEMPLATE("admin_sponsor_edit", $_POST, false);
-                               SEND_EMAIL($_POST['email'], SPONSOR_ADMIN_EDIT_SUBJECT, $msg);
-                               break;
-
-                       default: // Unknown mode
-                               $MSG = ADMIN_INVALID_MODE_1.SQL_ESCAPE($_GET['mode']).ADMIN_INVALID_MODE_2;
-                               break;
+                       switch (getRequestElement('mode')) {
+                               case 'add_points': // Add points
+                                       if (bigintval(postRequestElement('points')) > 0) {
+                                               // Replace german decimal comma with computer's decimal dot
+                                               $points = bigintval(convertCommaToDot(postRequestElement('points')));
+
+                                               // Add points to account
+                                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_sponsor_data` SET `points_amount`=`points_amount`+%s WHERE `id`='%s' LIMIT 1",
+                                                       array($points, bigintval(getRequestElement('id'))), __FILE__, __LINE__);
+
+                                               // Remember points /reason for the template
+                                               $content['points'] = translateComma($points);
+                                               $content['reason'] = secureString(postRequestElement('reason'));
+
+                                               // Send email
+                                               $message = loadEmailTemplate('sponsor_add_points', $content);
+                                               sendEmail($content['email'], getMessage('ADMIN_SPONSOR_ADD_POINTS_SUBJ'), $message);
+                                               $message = getMessage('ADMIN_SPONSOR_POINTS_ADDED');
+                                       } else {
+                                               // No points entered to add!
+                                               $message = getMessage('ADMIN_SPONSPOR_NO_POINTS_TO_ADD');
+                                       }
+                                       break;
+
+                               case 'sub_points': // Subtract points
+                                       if (bigintval(postRequestElement('points')) > 0) {
+                                               // Replace german decimal comma with computer's decimal dot
+                                               $points = bigintval(convertCommaToDot(postRequestElement('points')));
+
+                                               // Add points to account
+                                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_sponsor_data` SET `points_used`=`points_used`+%s WHERE `id`='%s' LIMIT 1",
+                                                       array($points, bigintval(getRequestElement('id'))), __FILE__, __LINE__);
+
+                                               // Remember points /reason for the template
+                                               $content['points'] = translateComma($points);
+                                               $content['reason'] = secureString(postRequestElement('reason'));
+
+                                               // Send email
+                                               $message = loadEmailTemplate('sponsor_sub_points', $content);
+                                               sendEmail($content['email'], getMessage('ADMIN_SPONSOR_SUB_POINTS_SUBJ'), $message);
+                                               $message = getMessage('ADMIN_SPONSOR_POINTS_SUBTRACTED');
+                                       } else {
+                                               // No points entered to add!
+                                               $message = getMessage('ADMIN_SPONSPOR_NO_POINTS_TO_SUBTRACT');
+                                       }
+                                       break;
+
+                               case 'edit': // Edit sponsor account
+                                       $PASS = true;
+                                       if ((postRequestElement('pass1') != postRequestElement('pass2')) || ((!isPostRequestElementSet('pass1')) && (!isPostRequestElementSet('pass1')))) {
+                                               // Remove passwords
+                                               unsetPostRequestElement('pass1');
+                                               unsetPostRequestElement('pass2');
+                                               $PASS = false;
+                                       } // END - if
+
+                                       // Convert time selection
+                                       $DATA = array(); $id = 'warning_interval_ye'; $skip = false;
+                                       convertSelectionsToTimestamp(postRequestArray(), $DATA, $id, $skip);
+
+                                       // Save the sponsor
+                                       handlSponsorRequest(postRequestArray());
+
+                                       // Convert some data for the email template
+                                       postRequestElement('gender'          , translateGender(postRequestElement('gender')));
+                                       postRequestElement('warning_interval', createFancyTime(postRequestElement('warning_interval')));
+
+                                       if ($PASS === false) setRequestPostElement('pass1', getMessage('SPONSOR_PASS_UNCHANGED'));
+
+                                       // Load email template and send the mail away
+                                       $message = loadEmailTemplate('admin_sponsor_edit', postRequestArray(), false);
+                                       sendEmail(postRequestElement('email'), getMessage('ADMIN_SPONSOR_EDIT_SUBJECT'), $message);
+                                       break;
+
+                               default: // Unknown mode
+                                       logDebugMessage(__FILE__, __LINE__, sprintf("Unknown mode %s detected.", getRequestElement('mode')));
+                                       $message = getMaskedMessage('ADMIN_SPONSOR_INVALID_MODE', getRequestElement('mode'));
+                                       break;
                        }
 
-                       if (!empty($MSG)) {
+                       if (!empty($message)) {
                                // Output message
-                               LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
-                       }
-               } elseif (file_exists(PATH."templates/".GET_LANGUAGE()."/html/admin/".$TPL.".tpl")) {
+                               loadTemplate('admin_settings_saved', false, $message);
+                       } // END - if
+               } elseif (isFileReadable(sprintf("%stemplates/%s/html/admin/%s.tpl", getConfig('PATH'), getLanguage(), $TPL))) {
                        // Create mailto link
-                       define('__SPONSOR_VALUE', "<A href=\"mailto:".__EMAIL."\">".__SURNAME." ".__FAMILY."</A>");
+                       $content['contact'] = '<a href="' . generateEmailLink($content['email'], 'sponsor_data') . '">' . $content['surname'] . ' ' . $content['family'] . '</a>';
 
                        // Load mode template
-                       LOAD_TEMPLATE($TPL);
+                       loadTemplate($TPL);
                } else {
                        // Template not found!
-                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_TPL_404_1.SQL_ESCAPE($_GET['mode']).ADMIN_TPL_404_2);
+                       loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_SPONSOR_MODUS_TPL_404', getRequestElement('mode')));
                }
        } else {
                // Sponsor not found!
-               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_SPONSOR_404_1.bigintval($_GET['id']).ADMIN_SPONSOR_404_2);
+               loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_SPONSOR_404', bigintval(getRequestElement('id'))));
        }
+
+       // Free result
+       SQL_FREERESULT($result_main);
 } else {
        // Not called by what-list_sponsor.php
-       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_CALL_NOT_DIRECTLY);
+       loadTemplate('admin_settings_saved', false, getMessage('ADMIN_CALL_NOT_DIRECTLY'));
 }
 
-//
+// [EOF]
 ?>