Possible further fix for #128
[mailer.git] / inc / libs / register_functions.php
index 91cd13f..5ffff9c 100644 (file)
@@ -44,8 +44,8 @@ if (!defined('__SECURITY')) {
 
 //
 function registerMustFillout () {
-       $result = SQL_QUERY("SELECT field_name, field_required FROM `{!_MYSQL_PREFIX!}_must_register` ORDER BY `id`",
-       __FUNCTION__, __LINE__);
+       $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 = '';
@@ -67,36 +67,39 @@ function registerMustFillout () {
 }
 
 //
-function REGISTER_CHECK_REQUIRED_FIELDS (&$array) {
-       $ret = false;
+function ifRequiredRegisterFieldsAreSet (&$array) {
+       // By default all is fine
+       $ret = true;
        foreach ($array as $key => $value) {
-               $result = SQL_QUERY("SELECT field_required FROM `{!_MYSQL_PREFIX!}_must_register` WHERE field_name='".$key."' LIMIT 1",
-               __FUNCTION__, __LINE__);
+               // 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) {
-                       // "Must-line" found
-                       list($chk) = SQL_FETCHROW($result);
-
                        // 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;
-                       }
-               }
+                               $ret = false;
+                       } // END - if
+               } // END - if
 
                // Free result
                SQL_FREERESULT($result);
-       }
+       } // END - foreach
+
+       // Return result
        return $ret;
 }
 
-//
+// @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