diff options
author | robocoder <anthon.pang@gmail.com> | 2010-07-30 08:53:39 +0400 |
---|---|---|
committer | robocoder <anthon.pang@gmail.com> | 2010-07-30 08:53:39 +0400 |
commit | e2a5b4b5e1fda1c09cfffbf999dc1504c8b8c27b (patch) | |
tree | 6c2ef986ca3eb8c56007754d0a0a8e1d10a7b568 | |
parent | 4536608d2dd752d464e9bd3e1be0a694ba0642c5 (diff) |
quick fixes #1529 - recovers more gracefully if glob() is disabled; installer can be run, and it will provide a warning.
Piwik will continue to run albeit in a crippled state:
- can't change language via selection list
- can't list/activate/deactivate plugins
- can't run updates
git-svn-id: http://dev.piwik.org/svn/trunk@2814 59fd770c-687e-43c8-a1e3-f5a4ff64c105
-rw-r--r-- | core/AssetManager.php | 4 | ||||
-rw-r--r-- | core/Piwik.php | 4 | ||||
-rw-r--r-- | core/PluginsManager.php | 4 | ||||
-rw-r--r-- | core/Updater.php | 4 | ||||
-rw-r--r-- | lang/en.php | 1 | ||||
-rw-r--r-- | plugins/CorePluginsAdmin/templates/manage.tpl | 2 | ||||
-rw-r--r-- | plugins/Installation/Controller.php | 2 | ||||
-rw-r--r-- | plugins/LanguagesManager/API.php | 9 |
8 files changed, 18 insertions, 12 deletions
diff --git a/core/AssetManager.php b/core/AssetManager.php index eddf147446..03cf94eed4 100644 --- a/core/AssetManager.php +++ b/core/AssetManager.php @@ -368,9 +368,9 @@ class Piwik_AssetManager { $mergedFileDirectory = self::getMergedFileDirectory(); - $matchingFiles = glob( $mergedFileDirectory . "*." . $type ); + $matchingFiles = @glob( $mergedFileDirectory . "*." . $type ); - if($matchingFiles === false) + if($matchingFiles == false) { return false; } diff --git a/core/Piwik.php b/core/Piwik.php index 64228e0d4a..0fa26b26ba 100644 --- a/core/Piwik.php +++ b/core/Piwik.php @@ -229,11 +229,11 @@ class Piwik */ public static function globr($sDir, $sPattern, $nFlags = NULL) { - if(($aFiles = glob("$sDir/$sPattern", $nFlags)) == false) + if(($aFiles = @glob("$sDir/$sPattern", $nFlags)) == false) { $aFiles = array(); } - if(($aDirs = glob("$sDir/*", GLOB_ONLYDIR)) != false) + if(($aDirs = @glob("$sDir/*", GLOB_ONLYDIR)) != false) { foreach ($aDirs as $sSubDir) { diff --git a/core/PluginsManager.php b/core/PluginsManager.php index ae06ab05c9..a9a5342da5 100644 --- a/core/PluginsManager.php +++ b/core/PluginsManager.php @@ -98,8 +98,8 @@ class Piwik_PluginsManager */ public function readPluginsDirectory() { - $pluginsName = glob( PIWIK_INCLUDE_PATH . '/plugins/*', GLOB_ONLYDIR); - $pluginsName = $pluginsName === false ? array() : array_map('basename', $pluginsName); + $pluginsName = @glob( PIWIK_INCLUDE_PATH . '/plugins/*', GLOB_ONLYDIR); + $pluginsName = $pluginsName == false ? array() : array_map('basename', $pluginsName); return $pluginsName; } diff --git a/core/Updater.php b/core/Updater.php index 69756fa14a..6325cb53e8 100644 --- a/core/Updater.php +++ b/core/Updater.php @@ -194,8 +194,8 @@ class Piwik_Updater $pathToUpdates = sprintf($this->pathUpdateFilePlugins, $name) . '*.php'; } - $files = glob( $pathToUpdates ); - if($files === false) + $files = @glob( $pathToUpdates ); + if($files == false) { $files = array(); } diff --git a/lang/en.php b/lang/en.php index 8ee271e9be..9246a5c615 100644 --- a/lang/en.php +++ b/lang/en.php @@ -546,6 +546,7 @@ $translations = array( 'Installation_SystemCheckTimeLimitHelp' => 'On a high traffic website, executing the archiving process may require more time than currently allowed. If necessary, change the max_execution_time directive in your php.ini file.', 'Installation_SystemCheckMailHelp' => 'Feedback and Lost Password messages will not be sent without mail().', 'Installation_SystemCheckParseIniFileHelp' => 'This built-in function has been disabled on your host. Piwik will attempt to emulate this function but may encounter further security restrictions. Tracker performance will also be impacted.', + 'Installation_SystemCheckGlobHelp' => 'This built-in function has been disabled on your host. Piwik may work without this function but at reduced functionality/capability.' 'Installation_SystemCheckDebugBacktraceHelp' => 'View::factory won\'t be able to create views for the calling module.', 'Installation_SystemCheckCreateFunctionHelp' => 'Piwik uses anonymous functions for callbacks.', 'Installation_SystemCheckEvalHelp' => 'Required by HTML QuickForm and Smarty templating system.', diff --git a/plugins/CorePluginsAdmin/templates/manage.tpl b/plugins/CorePluginsAdmin/templates/manage.tpl index e0116adac3..cececef0de 100644 --- a/plugins/CorePluginsAdmin/templates/manage.tpl +++ b/plugins/CorePluginsAdmin/templates/manage.tpl @@ -18,7 +18,7 @@ </thead> <tbody id="plugins"> {foreach from=$pluginsName key=name item=plugin} - {if !$plugin.alwaysActivated} + {if isset($plugin.alwaysActivated) && !$plugin.alwaysActivated} <tr class={if $plugin.activated}"active"{else}"deactivate"{/if}> <td class="name"> {if isset($plugin.info.homepage)}<a title="{'CorePluginsAdmin_PluginHomepage'|translate}" href="{$plugin.info.homepage}">{/if} diff --git a/plugins/Installation/Controller.php b/plugins/Installation/Controller.php index 98aa0f07f2..cce77e2376 100644 --- a/plugins/Installation/Controller.php +++ b/plugins/Installation/Controller.php @@ -112,6 +112,7 @@ class Piwik_Installation_Controller extends Piwik_Controller 'set_time_limit' => 'Installation_SystemCheckTimeLimitHelp', 'mail' => 'Installation_SystemCheckMailHelp', 'parse_ini_file' => 'Installation_SystemCheckParseIniFileHelp', + 'glob' => 'Installation_SystemCheckGlobHelp', 'debug_backtrace' => 'Installation_SystemCheckDebugBacktraceHelp', 'create_function' => 'Installation_SystemCheckCreateFunctionHelp', 'eval' => 'Installation_SystemCheckEvalHelp', @@ -744,6 +745,7 @@ class Piwik_Installation_Controller extends Piwik_Controller 'set_time_limit', 'mail', 'parse_ini_file', + 'glob', ); $infos['desired_functions'] = $desired_functions; $infos['missing_desired_functions'] = array(); diff --git a/plugins/LanguagesManager/API.php b/plugins/LanguagesManager/API.php index 0e128ceb68..6fbd201eea 100644 --- a/plugins/LanguagesManager/API.php +++ b/plugins/LanguagesManager/API.php @@ -55,12 +55,15 @@ class Piwik_LanguagesManager_API return $this->languageNames; } $path = PIWIK_INCLUDE_PATH . "/lang/"; - $languages = glob($path . "*.php"); + $languages = @glob($path . "*.php"); $pathLength = strlen($path); $languageNames = array(); - foreach($languages as $language) + if($languages) { - $languageNames[] = substr($language, $pathLength, -strlen('.php')); + foreach($languages as $language) + { + $languageNames[] = substr($language, $pathLength, -strlen('.php')); + } } $this->languageNames = $languageNames; return $languageNames; |