From a3644638aaf0418598196a870204e0b632a4c8ad Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Fri, 17 Apr 2015 06:28:40 -0400
Subject: [PATCH] Allow preference sections to define CSS class names

---
 program/include/rcmail_install.php |   22 +++++++++-------------
 1 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/program/include/rcmail_install.php b/program/include/rcmail_install.php
index a13cbd2..e161779 100644
--- a/program/include/rcmail_install.php
+++ b/program/include/rcmail_install.php
@@ -234,10 +234,9 @@
       else if (is_numeric($value)) {
         $value = intval($value);
       }
-      else if ($prop == 'plugins') {
+      else if ($prop == 'plugins' && !empty($_POST['submit'])) {
         $value = array();
-        foreach(array_keys($_POST) as $key)
-        {
+        foreach (array_keys($_POST) as $key) {
           if (preg_match('/^_plugins_*/', $key))
             array_push($value, $_POST[$key]);
         }
@@ -298,7 +297,7 @@
     $out = $seen = array();
 
     // iterate over the current configuration
-    foreach ($this->config as $prop => $value) {
+    foreach (array_keys($this->config) as $prop) {
       if ($replacement = $this->replaced_config[$prop]) {
         $out['replaced'][] = array('prop' => $prop, 'replacement' => $replacement);
         $seen[$replacement] = true;
@@ -578,17 +577,18 @@
     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;
@@ -773,12 +773,8 @@
    */
   function update_db($version)
   {
-    system(INSTALL_PATH . "bin/updatedb.sh --package=roundcube"
-      . " --version=" . escapeshellarg($version)
-      . " --dir=" . INSTALL_PATH . "SQL"
-      . " 2>&1", $result);
-
-    return !$result;
+    return rcmail_utils::db_update(INSTALL_PATH . 'SQL', 'roundcube', $version,
+        array('quiet' => true));
   }
 
 

--
Gitblit v1.9.1