X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Floader%2Fload-extension.php;h=8452a87aa2dae03c2af5fa091267e10045009372;hb=6bd47661d7ec406cd276f0835364b1e3f933d6c8;hp=f68a0abfcbe59442b7cbd12bb1d31eca73bb376d;hpb=a18efdcd57ba91893f0958a457b5c58639b135c3;p=mailer.git diff --git a/inc/loader/load-extension.php b/inc/loader/load-extension.php index f68a0abfcb..8452a87aa2 100644 --- a/inc/loader/load-extension.php +++ b/inc/loader/load-extension.php @@ -18,7 +18,7 @@ * $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 * @@ -53,7 +53,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('extension')) && ($GLOBALS['cache // Init extension inc-pool $EXT_POOL = array(); - // Do we have entries? + // Are there entries? if (count($EXT_DUMMY) > 0) { // Init arrays $EXT_NAMES = array(); @@ -67,7 +67,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('extension')) && ($GLOBALS['cache // 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 @@ -123,7 +123,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('extension')) && ($GLOBALS['cache 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) { @@ -136,22 +136,44 @@ if (($GLOBALS['cache_instance']->loadCacheFile('extension')) && ($GLOBALS['cache // 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`'; } // 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']));