Referal levels for surfbar added (unfinished)
[mailer.git] / inc / extensions.php
index 6232456238c12dd25fda975e9615064d0daa98b3..06b5fc827e5bad3847734a2ecff10b81484e4528 100644 (file)
@@ -165,8 +165,14 @@ function EXTENSION_REGISTER ($ext_name, $id, $dry_run=false)
 
                                        // Is there still an SQL query?
                                        if (!empty($sql)) {
-                                               // Run SQL command
-                                               $result = SQL_QUERY($sql, __FILE__, __LINE__, false);
+                                               // Do we have an "ALTER TABLE" command?
+                                               if (substr(strtolower($sql), 0, 11) == "alter table") {
+                                                       // Analyse the alteration command
+                                                       SQL_ALTER_TABLE($sql, __FILE__, __LINE__);
+                                               } else {
+                                                       // Run regular SQL command
+                                                       $result = SQL_QUERY($sql, __FILE__, __LINE__, false);
+                                               }
                                        } // END - if
                                } // END - foreach
 
@@ -255,8 +261,14 @@ function EXTENSION_RUN_SQLS($id, $EXT_LOAD_MODE) {
 
                        // Is there still an SQL query?
                        if (!empty($sql)) {
-                               // Run SQL command
-                               $result = SQL_QUERY($sql, __FILE__, __LINE__, false);
+                               // Do we have an "ALTER TABLE" command?
+                               if (substr(strtolower($sql), 0, 11) == "alter table") {
+                                       // Analyse the alteration command
+                                       SQL_ALTER_TABLE($sql, __FILE__, __LINE__);
+                               } else {
+                                       // Run regular SQL command
+                                       $result = SQL_QUERY($sql, __FILE__, __LINE__, false);
+                               }
                        } // END - if
                } // END - foreach
 
@@ -295,25 +307,23 @@ function EXT_IS_ACTIVE ($ext_name, $ignore_admin = false, $ignore_cache = false)
        // Extension's file name will also be checked
        $file = sprintf("%sinc/extensions/ext-%s.php", PATH, $ext_name);
        if ((!file_exists($file)) && (!is_readable($file))) return false;
-       //* DEBUG: */ echo "*".$ext_name."*<br />";
+       //* DEBUG: */ echo "*".$ext_name."(".count($cacheArray).")<br />";
 
        // Failed is the default
        $ret = false;
-       if ((!empty($cacheArray['extensions']['ext_active'][$ext_name])) && (!$ignore_cache))
-       {
+       if ((!empty($cacheArray['extensions']['ext_active'][$ext_name])) && (!$ignore_cache)) {
                // Load from cache
+               //* DEBUG: */ echo "CACHE!<br />\n";
                $active = $cacheArray['extensions']['ext_active'][$ext_name];
 
                // Count cache hits
                if (isset($_CONFIG['cache_hits'])) $_CONFIG['cache_hits']++;
-       }
-        else
-       {
+       } else {
+               //* DEBUG: */ echo "DB!<br />\n";
                // Load from database
                $result = SQL_QUERY_ESC("SELECT ext_active FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",
                 array($ext_name), __FILE__, __LINE__);
-               if (SQL_NUMROWS($result) == 0)
-               {
+               if (SQL_NUMROWS($result) == 0) {
                        // Extension was not found!
                        return false;
                }
@@ -433,8 +443,14 @@ function EXTENSION_UPDATE($file, $ext, $EXT_VER, $dry_run=false)
                                        $sql = trim($sql);
                                        if (!empty($sql))
                                        {
-                                               // Run SQL command...
-                                               $result = SQL_QUERY($sql, __FILE__, __LINE__, false);
+                                               // Do we have an "ALTER TABLE" command?
+                                               if (substr(strtolower($sql), 0, 11) == "alter table") {
+                                                       // Analyse the alteration command
+                                                       SQL_ALTER_TABLE($sql, __FILE__, __LINE__);
+                                               } else {
+                                                       // Run regular SQL command
+                                                       $result = SQL_QUERY($sql, __FILE__, __LINE__, false);
+                                               }
                                        }
                                }
                        } elseif (GET_EXT_VERSION("sql_patches") == "") {
@@ -484,14 +500,12 @@ function EXTENSION_UPDATE($file, $ext, $EXT_VER, $dry_run=false)
        }
 }
 //
-function EXTENSION_VERBOSE_TABLE($SQLs, $title=ADMIN_SQLS_EXECUTED_ON_REMOVAL, $dashed="", $switch=false, $WIDTH="480")
-{
+function EXTENSION_VERBOSE_TABLE($SQLs, $title = ADMIN_SQLS_EXECUTED_ON_REMOVAL, $dashed = "", $switch = false, $WIDTH = "480") {
        global $_CONFIG;
 
        $S = false; $SW = 2; $i = 1;
        $OUT = "";
-       if ((is_array($SQLs)) && (GET_EXT_VERSION("sql_patches")) && ($_CONFIG['verbose_sql'] == "Y"))
-       {
+       if ((is_array($SQLs)) && (GET_EXT_VERSION("sql_patches")) && ($_CONFIG['verbose_sql'] == "Y")) {
                $OUT  = "<DIV align=\"center\">
 <TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"".$WIDTH."\" align=\"center\"".$dashed.">
 <TR>
@@ -499,11 +513,9 @@ function EXTENSION_VERBOSE_TABLE($SQLs, $title=ADMIN_SQLS_EXECUTED_ON_REMOVAL, $
     <STRONG>".$title.":</STRONG>
   </TD>
 </TR>\n";
-               foreach ($SQLs as $idx=>$sql)
-               {
+               foreach ($SQLs as $idx => $sql) {
                        $sql = trim($sql);
-                       if (!empty($sql))
-                       {
+                       if (!empty($sql)) {
                                $S = true;
                                $OUT .= "<TR>
   <TD class=\"switch_sw".(3 - $SW)." bottom2\" style=\"padding-left: 2px\" width=\"30\">".$i.".</TD>
@@ -517,8 +529,7 @@ function EXTENSION_VERBOSE_TABLE($SQLs, $title=ADMIN_SQLS_EXECUTED_ON_REMOVAL, $
                }
        }
 
-       if ((!$S) && (GET_EXT_VERSION("sql_patches")) && ($_CONFIG['verbose_sql'] == "Y"))
-       {
+       if ((!$S) && (GET_EXT_VERSION("sql_patches")) && ($_CONFIG['verbose_sql'] == "Y")) {
                // No addional SQL commands to run
                $OUT .= "<TR>
   <TD colspan=\"2\" align=\"center\" class=\"switch_sw2 bottom2\" height=\"24\">
@@ -532,6 +543,8 @@ function EXTENSION_VERBOSE_TABLE($SQLs, $title=ADMIN_SQLS_EXECUTED_ON_REMOVAL, $
                $OUT .= "</TABLE>
 </DIV>\n";
        }
+
+       // Return output
        return $OUT;
 }
 //