if (!defined('__SECURITY')) {
$INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
require($INC);
-}
+} // END - if
// Init variables
EXT_INIT_CSS_FILES();
// Skip loading extensions
if ((!isInstalled()) || (isInstalling())) {
// Init filter system here
- INIT_FILTER_SYSTEM();
+ initFilterSystem();
// Skip loading
return;
switch (($GLOBALS['cache_instance']->loadCacheFile('extensions', true)) && ($GLOBALS['cache_instance']->extensionVersionMatches('sql_patches'))) {
case true : $GLOBALS['cache_mode'] = 'load'; break;
case false: $GLOBALS['cache_mode'] = 'init'; break;
- }
+ } // END - switch
- // Do we need to init the cache?
- if (($GLOBALS['cache_mode'] == 'init') && (getConfig('cache_exts') == 'Y')) {
+ // Do we need to init the cache? But not in "CSS mode".
+ if (($GLOBALS['cache_mode'] == 'init') && (getConfig('cache_exts') == 'Y') && (getOutputMode() == '0')) {
// Init cache file
$GLOBALS['cache_instance']->init('EXTENSIONS');
$GLOBALS['cache_instance']->storeExtensionVersion('sql_patches');
$EXT_DUMMY['ext_deprecated'][$name] = 'N';
// Mark it as active extension
- $GLOBALS['cache_array']['active_extensions']['$name'] = $EXT_DUMMY['ext_keep'][$k];
+ $GLOBALS['cache_array']['active_extensions'][$name] = $EXT_DUMMY['ext_keep'][$k];
unset($EXT_DUMMY['ext_keep'][$k]);
// Remove unneccessary data from memory
LOAD_EXTENSION($ext);
} // END - foreach
- // Init filter system
- INIT_FILTER_SYSTEM();
-
// Load more cache files (like admins)
- LOAD_INC_ONCE('inc/load_cache.php');
+ loadIncludeOnce('inc/load_cache.php');
// Remove array
unset($EXT_POOL);
// If current user is not admin load only activated extensions. But load
// them all if we are going to init the cache files. The admin shall use
// every available extension for testing purposes.
- if ((!IS_ADMIN()) && ($GLOBALS['cache_mode'] != 'init')) $add = " WHERE ext_active='Y'";
+ if ((!IS_ADMIN()) && ($GLOBALS['cache_mode'] != 'init')) $add = " WHERE `ext_active`='Y'";
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 . '
-ORDER BY ext_name', __FILE__, __LINE__);
+ $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 . "
+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 . '
-ORDER BY ext_name', __FILE__, __LINE__);
+ $res_ext_crt = SQL_QUERY("SELECT id AS ext_id, ext_name, ext_name, ext_active, ext_version
+FROM `{!_MYSQL_PREFIX!}_extensions`" . $add . "
+ORDER BY ext_name", __FILE__, __LINE__);
}
}
$DEL = array();
// At least one found?
-if ((SQL_NUMROWS($res_ext_crt) > 0) && ((($GLOBALS['cache_mode'] == 'init') && ($GLOBALS['output_mode'] != '1') && ($GLOBALS['output_mode'] != '-1')) || ($GLOBALS['cache_mode'] == 'no'))) {
+if ((SQL_NUMROWS($res_ext_crt) > 0) && ((($GLOBALS['cache_mode'] == 'init') && (getOutputMode() != '1') && (getOutputMode() != '-1')) || ($GLOBALS['cache_mode'] == 'no'))) {
// Extensions are registered so we load them
while ($content = SQL_FETCHARRAY($res_ext_crt)) {
// Get menu entry
$FQFN = sprintf("%sinc/extensions/ext-%s.php", constant('PATH'), $content['ext_name']);
// Does the extension file exists?
- if (FILE_READABLE($FQFN)) {
+ if (isFileReadable($FQFN)) {
// By default no extension is always active, except sql_patches
EXT_SET_ALWAYS_ACTIVE('N');
// CSS file handling:
if ((!isset($content['ext_css'])) || ($content['ext_css'] == 'Y')) {
// Create FQFN for the CSS file
- $FQFN = sprintf("%stheme/%s/css/%s.css", constant('PATH'), GET_CURR_THEME(), $content['ext_name']);
+ $FQFN = sprintf("%stheme/%s/css/%s.css", constant('PATH'), getCurrentTheme(), $content['ext_name']);
// Is the file there?
- if (FILE_READABLE($FQFN)) {
+ if (isFileReadable($FQFN)) {
// CSS file for extension was found (use only relative path for now!)
EXT_ADD_CSS_FILE($content['ext_name'] . '.css');
$content['ext_css'] = 'Y';
// Remember this value for later usage
$GLOBALS['cache_array']['active_extensions'][$content['ext_name']] = EXT_GET_ALWAYS_ACTIVE();
}
- } elseif (!FILE_READABLE($FQFN)) {
+ } elseif (!isFileReadable($FQFN)) {
// Deleted extension file so we mark it for removal from DB
$DEL[] = $content['ext_name'];
}
} // END - while
- // Init filter system
- INIT_FILTER_SYSTEM();
-
if ($GLOBALS['cache_mode'] == 'init') {
// Close cache file
$GLOBALS['cache_instance']->finalize();
// Load more cache files (like admins)
- LOAD_INC_ONCE('inc/load_cache.php');
- } // END - if
+ loadIncludeOnce('inc/load_cache.php');
+ } else {
+ // Init filter system for non-init mode
+ initFilterSystem();
+ }
// Free memory
SQL_FREERESULT($res_ext_crt);
-} elseif (!EXT_IS_ACTIVE('cache')) {
+} elseif ((!EXT_IS_ACTIVE('cache')) || (($GLOBALS['cache_mode'] == 'init') && (getOutputMode() != 0))) {
// Init filter system even when there are no extensions installed. #16
- INIT_FILTER_SYSTEM();
+ initFilterSystem();
+} elseif ($GLOBALS['cache_mode'] != 'load') {
+ // Something unexpected!
+ debug_report_bug('Unexpected state in '.basename(__FILE__).': cache_mode='.$GLOBALS['cache_mode'].', numRows='.SQL_NUMROWS($res_ext_crt));
}
// Run the filter
// 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