Fix PHP warning when defaults.inc.php is not readable

pull/5168/head
Aleksander Machniak 9 years ago
parent bf91666621
commit 0c9e55b0c9

@ -568,26 +568,30 @@ class rcmail_install
* Return a list with available subfolders of the plugins directory * Return a list with available subfolders of the plugins directory
* (with their associated description in composer.json) * (with their associated description in composer.json)
*/ */
function list_plugins() function list_plugins()
{ {
$plugins = array(); $plugins = array();
$plugin_dir = INSTALL_PATH . 'plugins/'; $plugin_dir = INSTALL_PATH . 'plugins/';
foreach (glob($plugin_dir . '*') as $path) foreach (glob($plugin_dir . '*') as $path) {
{ if (!is_dir($path)) {
continue;
}
if (is_dir($path) && is_readable($path.'/composer.json')) if (is_readable($path.'/composer.json')) {
{ $file_json = json_decode(file_get_contents($path.'/composer.json'));
$file_json = json_decode(file_get_contents($path.'/composer.json'));
$plugin_desc = $file_json->description ?: 'N/A'; $plugin_desc = $file_json->description ?: 'N/A';
} }
else else {
{
$plugin_desc = 'N/A'; $plugin_desc = 'N/A';
} }
$name = substr($path, strlen($plugin_dir)); $name = substr($path, strlen($plugin_dir));
$plugins[] = array('name' => $name, 'desc' => $plugin_desc, 'enabled' => in_array($name, $this->config['plugins'])); $plugins[] = array(
'name' => $name,
'desc' => $plugin_desc,
'enabled' => in_array($name, (array) $this->config['plugins'])
);
} }
return $plugins; return $plugins;

Loading…
Cancel
Save