Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobocoder <anthon.pang@gmail.com>2010-07-30 08:53:39 +0400
committerrobocoder <anthon.pang@gmail.com>2010-07-30 08:53:39 +0400
commite2a5b4b5e1fda1c09cfffbf999dc1504c8b8c27b (patch)
tree6c2ef986ca3eb8c56007754d0a0a8e1d10a7b568
parent4536608d2dd752d464e9bd3e1be0a694ba0642c5 (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.php4
-rw-r--r--core/Piwik.php4
-rw-r--r--core/PluginsManager.php4
-rw-r--r--core/Updater.php4
-rw-r--r--lang/en.php1
-rw-r--r--plugins/CorePluginsAdmin/templates/manage.tpl2
-rw-r--r--plugins/Installation/Controller.php2
-rw-r--r--plugins/LanguagesManager/API.php9
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;