summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Bruederli <bruederli@kolabsys.com>2014-12-27 14:53:21 +0100
committerThomas Bruederli <bruederli@kolabsys.com>2014-12-27 14:53:21 +0100
commitb737021a905a33c8eb4331692475cca7791e533c (patch)
treef6706f7bcbd1f3467985aa57d79eeec135565b18
parentd1bf0feed4db67adacbec1148d1ac15b9e1a68c2 (diff)
Improve plugin selection in installer; check already selected plugins
-rw-r--r--installer/config.php9
-rw-r--r--program/include/rcmail_install.php7
2 files changed, 9 insertions, 7 deletions
diff --git a/installer/config.php b/installer/config.php
index 82d7f55d6..7e69603fc 100644
--- a/installer/config.php
+++ b/installer/config.php
@@ -680,10 +680,11 @@ echo $select_param_folding->show(strval($RCI->getprop('mime_param_folding')));
$plugins = $RCI->list_plugins();
foreach($plugins as $p)
{
- $p_check = new html_checkbox(array('name' => '_plugins_'.$p['name'], 'id' => 'cfgplugin_'.$p['name']));
- echo '<dt class="propname">'.$p['name'].'</dt><dd>';
- echo $p_check->show(0, array('value' => $p['name']));
- echo '<label for="cfgplugin_'.$p['name'].'">'.$p['desc'].'</label><br/></dd>';
+ $p_check = new html_checkbox(array('name' => '_plugins_'.$p['name'], 'id' => 'cfgplugin_'.$p['name'], 'value' => $p['name']));
+ echo '<dt class="propname"><label>';
+ echo $p_check->show($p['enabled'] ? $p['name'] : 0);
+ echo '&nbsp;' . $p['name'] . '</label></dt><dd>';
+ echo '<label for="cfgplugin_'.$p['name'].'" class="hint">' . $p['desc'] . '</label><br/></dd>';
}
?>
diff --git a/program/include/rcmail_install.php b/program/include/rcmail_install.php
index 26c613a11..2ba90693f 100644
--- a/program/include/rcmail_install.php
+++ b/program/include/rcmail_install.php
@@ -578,17 +578,18 @@ class rcmail_install
foreach (glob($plugin_dir . '*') as $path)
{
- if (is_dir($path) && file_exists($path.'/composer.json'))
+ if (is_dir($path) && is_readable($path.'/composer.json'))
{
$file_json = json_decode(file_get_contents($path.'/composer.json'));
- $plugin_desc = $file_json->description;
+ $plugin_desc = $file_json->description ?: 'N/A';
}
else
{
$plugin_desc = 'N/A';
}
- $plugins[] = array('name' => substr($path, strlen($plugin_dir)), 'desc' => $plugin_desc);
+ $name = substr($path, strlen($plugin_dir));
+ $plugins[] = array('name' => $name, 'desc' => $plugin_desc, 'enabled' => in_array($name, $this->config['plugins']));
}
return $plugins;