* $Author:: $ *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team *
* For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
if (!defined('__SECURITY')) {
die();
} elseif (isInstallationPhase()) {
- // Use this code if you don't want to run this cache loader on installation phase
- return;
+ // Do not run in installation phase
+ return FALSE;
}
// Next cached table is the extension
// Init extension inc-pool
$EXT_POOL = array();
- // Do we have entries?
+ // Are there entries?
if (count($EXT_DUMMY) > 0) {
// Init arrays
$EXT_NAMES = array();
// Load extension file itself
if (($EXT_DUMMY['ext_active'][$k] == 'Y') || ($EXT_DUMMY['ext_keep'][$k] == 'Y')) {
- $EXT_POOL[] = $ext_name;
+ array_push($EXT_POOL, $ext_name);
} // END - if
// Version number
unset($EXT_DUMMY);
// No database load needed
- $res_ext_crt = false;
+ $res_ext_crt = FALSE;
// Load all extension files in test-mode (we initialize them later)
foreach ($EXT_POOL as $ext) {
// Remove array and mark cache as loaded
unset($EXT_POOL);
-} elseif (isHtmlOutputMode()) {
+} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) {
// Create cache file here
$GLOBALS['cache_instance']->init();
- // Add more if sql_patches is recent enougth
+ // Add more if ext-sql_patches is recent enougth
$add = '';
if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) {
- $add = ',`ext_has_css` AS `ext_css`';
+ // Old naming
+ $add = ', `ext_has_css` AS `ext_css`';
} // END - if
// Query for all extensions
- $result = SQL_QUERY('SELECT `id` AS `ext_id`,`ext_name`,`ext_active`,`ext_version`' . $add . ' FROM `{?_MYSQL_PREFIX?}_extensions` ORDER BY `ext_name` ASC', __FILE__, __LINE__);
+ $result = SQL_QUERY('SELECT
+ `id` AS `ext_id`,
+ `ext_name`,
+ `ext_active`,
+ `ext_version`
+' . $add . '
+FROM
+ `{?_MYSQL_PREFIX?}_extensions`
+ORDER BY
+ `ext_name` ASC', __FILE__, __LINE__);
// Load all entries
while ($content = SQL_FETCHARRAY($result)) {
// Load extension
- loadExtension($content['ext_name'], 'test');
+ if (!loadExtension($content['ext_name'], 'test')) {
+ // Is the name valid?
+ if (!isExtensionNameValid($content['ext_name'])) {
+ // Is not valid name (empty ext-foo.php script)
+ SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1",
+ array($content['ext_name']), __FILE__, __LINE__);
+ } else {
+ // Didn't load so deactivate it
+ doDeactivateExtension($content['ext_name'], TRUE);
+ }
+
+ // ... and skip it
+ continue;
+ } // END - if
// Get menu entry
- $content['ext_menu'] = convertBooleanToYesNo(ifModuleHasMenu($content['ext_name'], true));
+ $content['ext_menu'] = convertBooleanToYesNo(ifModuleHasMenu($content['ext_name'], TRUE));
// Get language entry
$content['ext_lang'] = convertBooleanToYesNo(isLanguageIncludeReadable($content['ext_name']));