]> git.mxchange.org Git - mailer.git/blobdiff - inc/load_extensions.php
More variables renamed to , install/admin_WriteData() is now generic (with open TODO)
[mailer.git] / inc / load_extensions.php
index a1544e6c3c0a31408c4b4f84402165ff6be13cf5..4b832a07d17ba104162a8394924ce67987fead64 100644 (file)
@@ -42,6 +42,11 @@ global $EXT_CSS_FILES;
 $EXT_CSS_FILES = array();
 $ADD = "";
 
+// Init cache instance and array
+global $cacheInstance, $cacheArray;
+$cacheInstance = null;
+$cacheArray = array();
+
 // Skip loading extensions
 if ((!isBooleanConstantAndTrue('mxchange_installed')) || (isBooleanConstantAndTrue('mxchange_installing'))) return;
 
@@ -72,7 +77,7 @@ if (EXT_IS_ACTIVE("cache")) {
                // Init cache file
                $cacheInstance->init("EXTENSIONS");
                $cacheInstance->storeExtensionVersion("sql_patches");
-       } elseif (getConfig('cache_exts') == "N") {
+       } elseif (getConfig('cache_exts') != "Y") {
                // Cache will not be created for extensions
                $cacheMode = "skip";
        }
@@ -95,7 +100,7 @@ if ($cacheMode == "load") {
                $cacheInstance->destroyCacheFile();
 
                // Retry it
-               require(__FILE__);
+               LOAD_INC(__FILE__);
                return;
        } // END -  if
 
@@ -163,7 +168,7 @@ if ($cacheMode == "load") {
        INIT_FILTER_SYSTEM();
 
        // Load more cache files (like admins)
-       require_once(PATH."inc/load_cache.php");
+       LOAD_INC_ONCE("inc/load_cache.php");
 
        // Remove array
        unset($EXT_POOL);
@@ -176,12 +181,12 @@ if ($cacheMode == "load") {
        if (GET_EXT_VERSION("sql_patches") >= "0.0.6") {
                // Query with CSS file from DB
                $res_ext_crt = SQL_QUERY("SELECT id AS ext_id, ext_name, ext_has_css AS ext_css, ext_active, ext_version
-FROM "._MYSQL_PREFIX."_extensions".$ADD."
+FROM `{!_MYSQL_PREFIX!}_extensions`".$ADD."
 ORDER BY ext_name", __FILE__, __LINE__);
        } else {
                // Old obsolete query string
                $res_ext_crt = SQL_QUERY("SELECT id AS ext_id, ext_name, ext_name, ext_active, ext_version
-FROM "._MYSQL_PREFIX."_extensions".$ADD."
+FROM `{!_MYSQL_PREFIX!}_extensions`".$ADD."
 ORDER BY ext_name", __FILE__, __LINE__);
        }
 }
@@ -192,7 +197,7 @@ $DEL = array();
 // At least one found?
 if ((SQL_NUMROWS($res_ext_crt) > 0) && ((($cacheMode == "init") && ($CSS != "1") && ($CSS != "-1")) || ($cacheMode == "no"))) {
        // Load session management
-       require_once(PATH."inc/session.php");
+       LOAD_INC_ONCE("inc/session.php");
 
        // Extensions are registered so we load them
        while ($content = SQL_FETCHARRAY($res_ext_crt)) {
@@ -202,11 +207,11 @@ if ((SQL_NUMROWS($res_ext_crt) > 0) && ((($cacheMode == "init") && ($CSS != "1")
                        $content['ext_menu'] = "Y";
                } // END - if
 
-               // Load extensions
-               $file1 = sprintf("%sinc/extensions/ext-%s.php", PATH, $content['ext_name']);
+               // Generate FQFN for extension
+               $FQFN = sprintf("%sinc/extensions/ext-%s.php", constant('PATH'), $content['ext_name']);
 
                // Does the extension file exists?
-               if (FILE_READABLE($file1)) {
+               if (FILE_READABLE($FQFN)) {
                        // By default no extension is always active, except sql_patches
                        $EXT_ALWAYS_ACTIVE = "N";
 
@@ -225,7 +230,7 @@ if ((SQL_NUMROWS($res_ext_crt) > 0) && ((($cacheMode == "init") && ($CSS != "1")
                        // CSS file handling:
                        if ((!isset($content['ext_css'])) || ($content['ext_css'] == "Y")) {
                                // Create FQFN for the CSS file
-                               $CSS_FILE = sprintf("%stheme/%s/css/%s.css", PATH, GET_CURR_THEME(), $content['ext_name']);
+                               $CSS_FILE = sprintf("%stheme/%s/css/%s.css", constant('PATH'), GET_CURR_THEME(), $content['ext_name']);
 
                                // Is the file there?
                                if (FILE_READABLE($CSS_FILE)) {
@@ -246,7 +251,7 @@ if ((SQL_NUMROWS($res_ext_crt) > 0) && ((($cacheMode == "init") && ($CSS != "1")
                                // Remember this value for later usage
                                $cacheArray['active_extensions'][$content['ext_name']] = $EXT_ALWAYS_ACTIVE;
                        }
-               } elseif (!FILE_READABLE($file1)) {
+               } elseif (!FILE_READABLE($FQFN)) {
                        // Deleted extension file so we mark it for removal from DB
                        $DEL[] = $content['ext_name'];
                }
@@ -260,12 +265,15 @@ if ((SQL_NUMROWS($res_ext_crt) > 0) && ((($cacheMode == "init") && ($CSS != "1")
                $cacheInstance->finalize();
 
                // Load more cache files (like admins)
-               require_once(PATH."inc/load_cache.php");
+               LOAD_INC_ONCE("inc/load_cache.php");
        } // END - if
 
        // Free memory
        SQL_FREERESULT($res_ext_crt);
-} // END - if
+} elseif (!EXT_IS_ACTIVE("cache")) {
+       // Init filter system even when there are no extensions installed. #16
+       INIT_FILTER_SYSTEM();
+}
 
 // Run the filter
 RUN_FILTER('load_includes', $INC_POOL);
@@ -275,11 +283,11 @@ if (!empty($DEL[0])) {
        // Remove extensions from two tables: extension registry and tasks table
        foreach ($DEL as $del_ext) {
                // First remove entry from extensions table
-               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",
+               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_extensions` WHERE ext_name='%s' LIMIT 1",
                        array($del_ext), __FILE__, __LINE__);
 
                // Remove (maybe?) found tasks (main task and possible updates
-               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE subject='[%s:]' AND (task_type='EXTENSION' OR task_type='EXTENSION_UPDATE')",
+               SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_task_system` WHERE subject='[%s:]' AND (task_type='EXTENSION' OR task_type='EXTENSION_UPDATE')",
                        array($del_ext), __FILE__, __LINE__);
        } // END - foreach