Possible further fix for #128
[mailer.git] / inc / libs / register_functions.php
index a80cddd54c168508b66cd4f8661657b28f0bbeff..5ffff9c02f29f97cdae09c60e4d23c6f7aaf7910 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Spezielle Funktion fuer register-Erweiterung     *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $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                           *
  * For more information visit: http://www.mxchange.org                  *
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
        require($INC);
 }
 
 //
-function REGISTER_FILL_MUST_CONSTANTS()
-{
-       $result = SQL_QUERY("SELECT field_name, field_required FROM "._MYSQL_PREFIX."_must_register ORDER BY id", __FILE__, __LINE__);
-       while(list($name, $required) = SQL_FETCHROW($result))
-       {
-               $value = "";
-               if ($required == "Y") $value = "<FONT class=\\\"guest_failed\\\">&nbsp;(*)</FONT>";
-               $eval = "define('MUST_".strtoupper($name)."', \"".$value."\");";
+function registerMustFillout () {
+       $result = SQL_QUERY("SELECT `field_name`, `field_required` FROM `{!_MYSQL_PREFIX!}_must_register` ORDER BY `id` ASC",
+               __FUNCTION__, __LINE__);
+
+       while ($content = SQL_FETCHARRAY($result)) {
+               $value = '';
+               if ($content['field_required'] == 'Y') $value = "<span class=\\\"guest_failed\\\">&nbsp;(*)</span>";
+               // @TODO Rewrite these constants
+               $eval = "define('MUST_".strtoupper($content['field_name'])."', \"".$value."\");";
                eval($eval);
-       }
+       } // END - while
 
        // Free memory
        SQL_FREERESULT($result);
 
        // Also fill other constants
-       define('MUST_GENDER', "<FONT class=\"guest_failed\">&nbsp;(*)</FONT>");
-       define('MUST_ADDY'  , "<FONT class=\"guest_failed\">&nbsp;(*)</FONT>");
-       define('MUST_BIRTH' , "<FONT class=\"guest_failed\">&nbsp;(*)</FONT>");
-       define('MUST_MARKER', "<FONT class=\"guest_failed\">&nbsp;(*)</FONT>");
+       // @TODO Rewrite these constants, too
+       define('MUST_GENDER', "<span class=\"guest_failed\">&nbsp;(*)</span>");
+       define('MUST_ADDY'  , "<span class=\"guest_failed\">&nbsp;(*)</span>");
+       define('MUST_BIRTH' , "<span class=\"guest_failed\">&nbsp;(*)</span>");
+       define('MUST_MARKER', "<span class=\"guest_failed\">&nbsp;(*)</span>");
 }
-//
-function REGISTER_CHECK_REQUIRED_FIELDS(&$array)
-{
-       $ret = false;
-       foreach ($array as $key => $value)
-       {
-               $result = SQL_QUERY("SELECT field_required FROM "._MYSQL_PREFIX."_must_register WHERE field_name='".$key."' LIMIT 1", __FILE__, __LINE__);
-               if (SQL_NUMROWS($result) == 1)
-               {
-                       // "Must-line" found
-                       list($chk) = SQL_FETCHROW($result);
-                       SQL_FREERESULT($result);
 
+//
+function ifRequiredRegisterFieldsAreSet (&$array) {
+       // By default all is fine
+       $ret = true;
+       foreach ($array as $key => $value) {
+               // Check all fields that must register
+               $result = SQL_QUERY("SELECT `id` FROM `{!_MYSQL_PREFIX!}_must_register` WHERE `field_name`='".$key."' AND `field_required`='Y' LIMIT 1",
+                       __FUNCTION__, __LINE__);
+               if (SQL_NUMROWS($result) == 1) {
                        // Check if extension country is not found (you have to enter the 2-chars long country code) or
                        // if extensions is present check if country code was selected
                        //         01              2         21    12             3         32    234     5      54    4               43    34                      4    4      5      5432    2      3                      3210
-                       $country = ((!EXT_IS_ACTIVE("country")) || ((EXT_IS_ACTIVE("country")) && (((empty($value)) && ($key == "cntry")) || (($key == "country_code") && (!empty($value)))) && (!empty($array['country_code']))));
-                       if ((empty($value)) && ($chk == "Y") && (!$country))
-                       {
+                       $country = ((!EXT_IS_ACTIVE('country')) || ((EXT_IS_ACTIVE('country')) && (((empty($value)) && ($key == 'cntry')) || (($key == 'country_code') && (!empty($value)))) && (!empty($array['country_code']))));
+                       if ((empty($value)) && (!$country)) {
                                // Required field not set
-                               $array[$key] = "!";
-                               $ret = true;
-                       }
-               }
-       }
+                               $array[$key] = '!';
+                               $ret = false;
+                       } // END - if
+               } // END - if
+
+               // Free result
+               SQL_FREERESULT($result);
+       } // END - foreach
+
+       // Return result
        return $ret;
 }
-//
-function REGISTER_OUTPUT_REQUIRE_CHECK(&$array)
-{
-       $result = SQL_QUERY("SELECT field_name, field_required FROM "._MYSQL_PREFIX."_must_register ORDER BY id", __FILE__, __LINE__);
-       while(list($name, $required) = SQL_FETCHROW($result))
-       {
-               if (($array[$name] == "!") && ($required == "Y"))
-               {
+
+// @TODO This function is no longer used???
+function REGISTER_OUTPUT_REQUIRE_CHECK (&$array) {
+       // Get all fields for output
+       $result = SQL_QUERY("SELECT `field_name`, `field_required` FROM `{!_MYSQL_PREFIX!}_must_register` ORDER BY `id`", __FUNCTION__, __LINE__);
+
+       // Loop through them
+       while ($content = SQL_FETCHARRAY($result)) {
+               if (($array[$content['field_name']] == '!') && ($content['field_required'] == 'Y')) {
                        // Empty entry found
-                       $array[$name] = "";
-                       $eval = "\$OUT = REGISTER_".strtoupper($name)."_REQUIRED;";
-                       eval($eval);
-                       OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".$OUT."</SPAN></STRONG><br /><br />");
-               }
-       }
+                       $array[$content['field_name']] = '';
+                       $OUT = constant('REGISTER_'.strtoupper($content['field_name']).'_REQUIRED');
+                       registerOutputFailedMessage('', $OUT);
+               } // END - if
+       } // END - while
 
        // Free memory
        SQL_FREERESULT($result);
 }
-//
-function REGISTER_ADD_CATEGORY_TABLE ($MODE, $return=false)
-{
-       global $_POST, $_CONFIG;
-       $OUT = "";
+
+// Generates a 'category table' for the registration form
+function registerGenerateCategoryTable ($mode, $return=false) {
+       $OUT = '';
 
        // Guests are mostly not interested in how many members has
        // choosen an individual category
-       $AND = "WHERE visible='Y' ";
+       $AND = "WHERE `visible`='Y' ";
+
        // Admins are allowed to see every category...
-       if (IS_ADMIN()) $AND = "";
-       $result = SQL_QUERY("SELECT id, cat, visible FROM "._MYSQL_PREFIX."_cats ".$AND." ORDER BY sort", __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) > 0)
-       {
+       if (IS_ADMIN()) $AND = '';
+
+       // Look for categories
+       $result = SQL_QUERY("SELECT `id`, `cat`, `visible` FROM `{!_MYSQL_PREFIX!}_cats` ".$AND." ORDER BY `sort` ASC",
+               __FUNCTION__, __LINE__);
+
+       if (SQL_NUMROWS($result) > 0) {
                // List alle visible modules (or all to the admin)
                $SW = 2;
-               $OUT .= "<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">\n";
-               while (list($id, $cat, $visible) = SQL_FETCHROW($result))
-               {
-                       if (empty($_POST['cat'][$id])) $_POST['cat'][$id] = "";
+               $OUT .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">\n";
+               while ($content = SQL_FETCHARRAY($result)) {
+                       // Is the array element not set?
+                       if (!REQUEST_ISSET_POST('cat', $content['id'])) {
+                               // Then set it
+                               REQUEST_SET_POST('cat', array($content['id'] => ''));
+                       } // END - if
+
                        // Prepare array for the template
                        $content = array(
                                'sw'    => $SW,
-                               'cat'   => $cat,
-                               'def_y' => "",
-                               'def_n' => "",
-                               'id'    => $id,
+                               'cat'   => $content['cat'],
+                               'def_y' => '',
+                               'def_n' => '',
+                               'id'    => $content['id'],
                        );
 
-                       if (($_POST['cat'][$id] == "Y") || (($_CONFIG['register_default'] == "Y") && (empty($_POST['cat'][$id]))))
-                       {
-                               $content['def_y'] = " checked";
-                       }
-                        else
-                       {
-                               $content['def_n'] = " checked";
+                       if ((REQUEST_POST('cat', $content['id']) == 'Y') || ((getConfig('register_default') == 'Y') && (!REQUEST_ISSET_POST('cat', $content['id'])))) {
+                               $content['def_y'] = ' checked="checked"';
+                       } else {
+                               $content['def_n'] = ' checked="checked"';
                        }
 
                        // Load template and switch color
                        $OUT .= LOAD_TEMPLATE("guest_cat_row", true, $content);
                        $SW = 3 - $SW;
                }
-               $OUT .= "</TABLE>\n";
+               $OUT .= "</table>\n";
 
                // Free memory
                SQL_FREERESULT($result);
-       }
-        else
-       {
+       } else {
                // No categories setted up so far...
-               $OUT .= LOAD_TEMPLATE("admin_settings_saved", true, NO_CATEGORIES_VISIBLE);
+               $OUT .= LOAD_TEMPLATE('admin_settings_saved', true, getMessage('NO_CATEGORIES_VISIBLE'));
        }
 
-       if ($return)
-       {
+       if ($return === true) {
                // Return generated HTML code
                return $OUT;
-       }
-        else
-       {
+       } else {
                // Output directly (default)
                OUTPUT_HTML($OUT);
        }
 }
+
+// Outputs a 'failed message'
+function registerOutputFailedMessage ($messageId, $extra='') {
+       if (empty($messageId)) {
+               OUTPUT_HTML('<div class="register_failed">' . $extra . '</div>');
+       } else {
+               OUTPUT_HTML('<div class="register_failed">{--' . $messageId . '--}' . $extra . '</div>');
+       }
+}
+
 //
 ?>