New function introduced, missing function getPointsWord() added:
authorRoland Häder <roland@mxchange.org>
Sun, 6 Feb 2011 23:00:44 +0000 (23:00 +0000)
committerRoland Häder <roland@mxchange.org>
Sun, 6 Feb 2011 23:00:44 +0000 (23:00 +0000)
- New function isSqlTableColumnFound() introduced to handle adding/dropping columns
- Missing wrapper function getPointsWord() now included (it was added but I commited only its usage)
- Some code cleanups

inc/db/lib-mysql3.php
inc/extensions/ext-removeip.php
inc/filters.php
inc/wrapper-functions.php

index ccf777eb426e302cf4bd49168928ea2e649dbc2b..f8c429e42655bda9889c5415c8682d1de2abec4f 100644 (file)
@@ -392,41 +392,37 @@ function SQL_ALTER_TABLE ($sql, $F, $L, $enableCodes = true) {
                        } // END - if
 
                        // And column name as well
-                       $columnName = str_replace('`', '', $tableArray[$idx]);
-
-                       // Get column information
-                       $result = SQL_QUERY_ESC("SHOW COLUMNS FROM `%s` LIKE '%s'",
-                               array($tableName, $columnName), __FUNCTION__, __LINE__);
+                       $columnName = $tableArray[$idx];
 
                        // Debug log
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'columnName=' . $columnName . ',idx=' . $idx . ',sql=' . $sql . ',hasZeroNums=' . intval(SQL_HASZERONUMS($result)));
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'columnName=' . $columnName . ',idx=' . $idx . ',sql=' . $sql . ',hasZeroNums=' . intval(isSqlTableColumnFound($tableName, $columnName)));
 
                        // Do we have no entry on ADD or an entry on DROP/CHANGE?
-                       // 123               4       43    3      4           4          32    23           4       4     3    3      4            4          32    23                4       43    3      4              4          3    3         321
-                       if (((SQL_HASZERONUMS($result)) && (strpos($sql, 'ADD') !== false)) || ((!SQL_HASZERONUMS($result)) && (strpos($sql, 'DROP') !== false)) || ((!SQL_HASZERONUMS($result)) && (strpos($sql, 'CHANGE') !== false) && ($idx == 4))) {
+                       // 123                      4                       43    3      4           4          32    23                     4                       43    3      4            4          32    23                     4                       43    3      4              4          3    3         3    3                      4                          4321
+                       if (((!isSqlTableColumnFound($tableName, $columnName)) && (strpos($sql, 'ADD') !== false)) || ((isSqlTableColumnFound($tableName, $columnName)) && (strpos($sql, 'DROP') !== false)) || ((isSqlTableColumnFound($tableName, $columnName)) && (strpos($sql, 'CHANGE') !== false) && ($idx == 4) && (!isSqlTableColumnFound($tableName, $tableArray[5])))) {
                                // Do the query
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Executing: ' . $sql);
                                $result = SQL_QUERY($sql, $F, $L, false);
 
                                // Skip further attempt(s)
                                break;
-                       //       1234                5       54    4      5           5          43    34                5       54    4      5            5          43    3      4              4          32    2                    21
-                       } elseif ((((!SQL_HASZERONUMS($result)) && (strpos($sql, 'ADD') !== false)) || ((!SQL_HASZERONUMS($result)) && (strpos($sql, 'DROP') !== false)) || (strpos($sql, 'CHANGE') !== false)) && ($columnName != 'KEY')) {
+                       //       1234                     5                       54    4      5           5          43    34                     5                       54    4      5            5          43    3      4              4          32    2                    21
+                       } elseif ((((isSqlTableColumnFound($tableName, $columnName)) && (strpos($sql, 'ADD') !== false)) || ((isSqlTableColumnFound($tableName, $columnName)) && (strpos($sql, 'DROP') !== false)) || (strpos($sql, 'CHANGE') !== false)) && ($columnName != 'KEY')) {
                                // Abort here because it is alreay there
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Skipped: sql=' . $sql . ',columnName=' . $columnName . ',idx=' . $idx);
                                break;
-                       } elseif ((SQL_HASZERONUMS($result)) && (strpos($sql, 'DROP') !== false)) {
+                       } elseif ((!isSqlTableColumnFound($tableName, $columnName)) && (strpos($sql, 'DROP') !== false)) {
                                // Abort here because we tried to drop a column which is not there (never created maybe)
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'No drop: ' . $sql);
                                break;
                        } elseif ($columnName != 'KEY') {
                                // Something didn't fit, we better log it
-                               logDebugMessage(__FUNCTION__, __LINE__, 'Possible problem: ' . $sql . ',hasZeroNums=' . intval(SQL_HASZERONUMS($result)) . '');
+                               logDebugMessage(__FUNCTION__, __LINE__, 'Possible problem: ' . $sql . ',hasZeroNums=' . intval(isSqlTableColumnFound($tableName, $columnName)) . '');
                        }
                } // END - foreach
        } elseif ((getTableType() == 'InnoDB') && (strpos($sql, 'FULLTEXT') !== false)) {
-               // Skip this query silently
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Skipped FULLTEXT: sql=%s,tableName=%s,hasZeroNums=%d,file=%s,line=%s", $sql, $tableName, intval((is_bool($result)) ? 0 : SQL_HASZERONUMS($result)), $F, $L));
+               // Skip this query silently because InnoDB does not understand fulltext indexes
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Skipped FULLTEXT: sql=%s,tableName=%s,hasZeroNums=%d,file=%s,line=%s", $sql, $tableName, intval((is_bool($result)) ? 0 : isSqlTableColumnFound($columnName)), $F, $L));
        } elseif ($noIndex === false) {
                // And column name as well
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableArray=<pre>' . print_r($tableArray, true) . '</pre>');
@@ -561,13 +557,36 @@ function isSqlTableCreated ($tableName) {
 
                // Is there an entry?
                $GLOBALS[__FUNCTION__][$tableName] = (SQL_NUMROWS($result) == 1);
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',numRows=' . intval($GLOBALS[__FUNCTION__][$tableName]));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',numRows=' . intval($GLOBALS[__FUNCTION__][$tableName]));
        } // END - if
 
        // Return cache
        return $GLOBALS[__FUNCTION__][$tableName];
 }
 
+// Is a table column there?
+function isSqlTableColumnFound ($tableName, $columnName) {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$tableName][$columnName])) {
+               // And column name as well
+               $columnName = str_replace('`', '', $columnName);
+
+               // Get column information
+               $result = SQL_QUERY_ESC("SHOW COLUMNS FROM `%s` LIKE '%s'",
+                       array($tableName, $columnName), __FUNCTION__, __LINE__);
+
+               // Determine it
+               $GLOBALS[__FUNCTION__][$tableName][$columnName] = (!SQL_HASZERONUMS($result));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',columnName=' . $columnName . ',hasZeroNums=' . intval(SQL_HASZERONUMS($result)) . ',numRows=' . intval($GLOBALS[__FUNCTION__][$tableName][$columnName]));
+
+               // Free result
+               SQL_FREERESULT($result);
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__][$tableName][$columnName];
+}
+
 // Checks depending on the mode if the table is there
 function isSqlTableIndexAdded ($tableName, $mode, $keyName) {
        // Do we have cache?
index 06a62eee4a646e2d0385fd95d158d17d639ba532..f24cfb3089feb8df84edf0d95bad461c10575d6c 100644 (file)
@@ -46,8 +46,7 @@ setThisExtensionVersion('0.0.1');
 // Version history array (add more with , '0.1.0' and so on)
 setExtensionVersionHistory(array('0.0', '0.0.1'));
 
-switch (getExtensionMode())
-{
+switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
                // SQL commands to run
                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `removeip_anon_ip` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
index 9985adf03d5852c2f38047a633125a2484a8a48c..9a42401776dee630449587843b186aacdfdc7966 100644 (file)
@@ -258,7 +258,9 @@ function FILTER_RUN_SQLS ($data) {
                                $sql = trim($sql);
 
                                // Is 'enable_codes' not set? Then set it to true
-                               if (!isset($data['enable_codes'])) $data['enable_codes'] = true;
+                               if (!isset($data['enable_codes'])) {
+                                       $data['enable_codes'] = true;
+                               } // END - if
 
                                // Is there still a query left?
                                if (!empty($sql)) {
@@ -284,10 +286,14 @@ function FILTER_RUN_SQLS ($data) {
 // Filter for updating/validating login data
 function FILTER_UPDATE_LOGIN_DATA () {
        // Add missing array
-       if ((!isset($GLOBALS['last_online'])) || (!is_array($GLOBALS['last_online']))) $GLOBALS['last_online'] = array();
+       if ((!isset($GLOBALS['last_online'])) || (!is_array($GLOBALS['last_online']))) {
+               $GLOBALS['last_online'] = array();
+       } // END - if
 
        // Recheck if logged in
-       if (!isMember()) return false;
+       if (!isMember()) {
+               return false;
+       } // END - if
 
        // Secure user id
        setMemberId(getSession('userid'));
@@ -324,7 +330,9 @@ function FILTER_UPDATE_LOGIN_DATA () {
 // Filter for initializing randomizer
 function FILTER_INIT_RANDOMIZER () {
        // Only execute this filter if installed
-       if ((!isInstalled()) || (!isExtensionInstalledAndNewer('other', '0.2.5'))) return;
+       if ((!isInstalled()) || (!isExtensionInstalledAndNewer('other', '0.2.5'))) {
+               return;
+       } // END - if
 
        // Take a prime number which is long (if you know a longer one please try it out!)
        setConfigEntry('_PRIME', 591623);
index 5c9e3f405c0cfd162abc2d0e892a1f6a810592b2..d2ff5ffdd6d5b623f7e484b4c4c73ed3429d3c8b 100644 (file)
@@ -2209,7 +2209,7 @@ function getSmtpUser () {
 }
 
 // "Getter" for SMTP_PASSWORD
-function getSmtpPassword() {
+function getSmtpPassword () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Determine it
@@ -2220,6 +2220,18 @@ function getSmtpPassword() {
        return $GLOBALS[__FUNCTION__];
 }
 
+// "Getter" for POINTS_WORD
+function getPointsWord () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('points_word');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
 // Checks wether proxy configuration is used
 function isProxyUsed () {
        // Do we have cache?