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/lib/Roundcube/rcube_db_mysql.php | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 46 insertions(+), 7 deletions(-) diff --git a/program/lib/Roundcube/rcube_db_mysql.php b/program/lib/Roundcube/rcube_db_mysql.php index 0e85b0f..616d175 100644 --- a/program/lib/Roundcube/rcube_db_mysql.php +++ b/program/lib/Roundcube/rcube_db_mysql.php @@ -150,6 +150,30 @@ } /** + * Returns list of tables in a database + * + * @return array List of all tables of the current database + */ + public function list_tables() + { + // get tables if not cached + if ($this->tables === null) { + // first fetch current database name + $d = $this->query("SELECT database()"); + $d = $this->fetch_array($d); + + // get list of tables in current database + $q = $this->query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES" + . " WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'" + . " ORDER BY TABLE_NAME", $d ? $d[0] : ''); + + $this->tables = $q ? $q->fetchAll(PDO::FETCH_COLUMN, 0) : array(); + } + + return $this->tables; + } + + /** * Get database runtime variables * * @param string $varname Variable name @@ -161,15 +185,30 @@ { if (!isset($this->variables)) { $this->variables = array(); - - $result = $this->query('SHOW VARIABLES'); - - while ($row = $this->fetch_array($result)) { - $this->variables[$row[0]] = $row[1]; - } } - return isset($this->variables[$varname]) ? $this->variables[$varname] : $default; + if (array_key_exists($varname, $this->variables)) { + return $this->variables[$varname]; + } + + // configured value has higher prio + $conf_value = rcube::get_instance()->config->get('db_' . $varname); + if ($conf_value !== null) { + return $this->variables[$varname] = $conf_value; + } + + $result = $this->query('SHOW VARIABLES LIKE ?', $varname); + + while ($row = $this->fetch_array($result)) { + $this->variables[$row[0]] = $row[1]; + } + + // not found, use default + if (!isset($this->variables[$varname])) { + $this->variables[$varname] = $default; + } + + return $this->variables[$varname]; } /** -- Gitblit v1.9.1