X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Floader%2Fload-extension.php;h=e72c9f4271064afd03c5e259e7cf5ecd01690f62;hb=d1922ab361b5e104b7c14b28c76d1c47651635ef;hp=aad9cd0ab782e5fac67a1cd14bf99c64592449d4;hpb=c6e62b16b4474ead6b180a5b9648906459d846da;p=mailer.git diff --git a/inc/loader/load-extension.php b/inc/loader/load-extension.php index aad9cd0ab7..e72c9f4271 100644 --- a/inc/loader/load-extension.php +++ b/inc/loader/load-extension.php @@ -12,14 +12,9 @@ * -------------------------------------------------------------------- * * @TODO Rewrite this whole file * * -------------------------------------------------------------------- * - * $Revision:: $ * - * $Date:: $ * - * $Tag:: 0.2.1-FINAL $ * - * $Author:: $ * - * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * - * Copyright (c) 2009 - 2011 by Mailer Developer Team * - * For more information visit: http://www.mxchange.org * + * Copyright (c) 2009 - 2016 by Mailer Developer Team * + * For more information visit: http://mxchange.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -40,9 +35,10 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { - // Use this code if you don't want to run this cache loader on installation phase - return; +} elseif (isInstaller()) { + // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); + return FALSE; } // Next cached table is the extension @@ -53,19 +49,21 @@ 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(); // Loop through all foreach ($EXT_DUMMY['ext_name'] as $k => $ext_name) { - // Load CSS file - if ($EXT_DUMMY['ext_css'][$k] == 'Y') addExtensionCssFile($ext_name . '.css'); + // Load CSS file? + if ($EXT_DUMMY['ext_css'][$k] == 'Y') { + addExtensionCssFile($ext_name . '.css'); + } // END - if // 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 @@ -121,7 +119,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) { @@ -130,40 +128,55 @@ if (($GLOBALS['cache_instance']->loadCacheFile('extension')) && ($GLOBALS['cache // Remove array and mark cache as loaded unset($EXT_POOL); -} elseif (isHtmlOutputMode()) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (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"; + if (isExtensionInstalledAndNewer('sql_patches', '0.0.6')) { + // Old naming + $add = ', `ext_has_css` AS `ext_css`'; + } // END - if - // Load all modules and their data - $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__); - while ($content = SQL_FETCHARRAY($result)) { + // Query for all extensions + $result = sqlQuery('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 = sqlFetchArray($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) + sqlQueryEscaped("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'] = 'N'; - if (ifModuleHasMenu($content['ext_name'], true)) { - // Extension is a module and has menu... pew! - $content['ext_menu'] = 'Y'; - } // END - if + $content['ext_menu'] = convertBooleanToYesNo(ifModuleHasMenu($content['ext_name'], TRUE)); // Get language entry - $content['ext_lang'] = 'N'; - if (isLanguageIncludeReadable($content['ext_name'])) { - // Readable - $content['ext_lang'] = 'Y'; - } // END - if + $content['ext_lang'] = convertBooleanToYesNo(isLanguageIncludeReadable($content['ext_name'])); // Get function entry - $content['ext_func'] = 'N'; - if (isExtensionFunctionFileReadable($content['ext_name'])) { - // Readable - $content['ext_func'] = 'Y'; - } // END - if + $content['ext_func'] = convertBooleanToYesNo(isExtensionFunctionFileReadable($content['ext_name'])); // Transfer EXT_ALWAYS_ACTIVE flag $content['ext_keep'] = getThisExtensionAlwaysActive(); @@ -178,7 +191,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('extension')) && ($GLOBALS['cache } // END - while // Free memory - SQL_FREERESULT($result); + sqlFreeResult($result); // Close the cache $GLOBALS['cache_instance']->storeExtensionVersion('sql_patches');