summaryrefslogtreecommitdiff
path: root/db_config/db_config.php
blob: a2275bedff86643d09ac1f27e238ea5e93b73d0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
# 
# This file is part of Roundcube "db_config" plugin.
# 
# Your are not allowed to distribute this file or parts of it.
# 
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# 
# Copyright (c) 2012 - 2015 Roland 'Rosali' Liebl - all rights reserved.
# dev-team [at] myroundcube [dot] net
# http://myroundcube.com
# 
class db_config extends rcube_plugin{var$skip=array('companyaddressbook','dblog','demologin','newuser','load_splitter','register');static private$plugin='db_config';static private$author='myroundcube@mail4us.net';static private$authors_comments='<a href="http://myroundcube.com/myroundcube-plugins/db_config-plugin" target="_blank">Documentation</a>';static private$version='1.1.19';static private$date='30-12-2014';static private$licence='All Rights reserved';static private$requirements=array('Roundcube'=>'1.0','PHP'=>'5.3','required_plugins'=>array('plugin_manager'=>'require_plugin','db_version'=>'require_plugin',),);static private$sqladmin=array('db_dsnw','db_config');static private$prefs=null;static private$tables=array('db_config',);static private$db_version=array('initial','20131110','20141115',);function init(){$rcmail=rcmail::get_instance();if(!in_array('global_config',$rcmail->config->get('plugins'))){$this->load_config();}if(is_dir(INSTALL_PATH.'plugins/db_version')){$this->require_plugin('db_version');if(!$load=db_version::exec(self::$plugin,self::$tables,self::$db_version)){return;}}if(!empty($rcmail->user->ID)){$sql='SELECT * FROM '.get_table_name('users').' WHERE user_id=?';$res=$rcmail->db->limitquery($sql,0,1,$rcmail->user->ID);$user=$rcmail->db->fetch_assoc($res);$user=(array)unserialize($user['preferences']);}else{$user=array();}foreach($this->skip as$key=>$plugin){$this->skip[$key]=$rcmail->db->quote($plugin);}$append=implode(' AND env <> ',$this->skip);$sql='SELECT * FROM '.get_table_name('db_config').' WHERE env <> '.$append;$res=$rcmail->db->query($sql);while($conf=$rcmail->db->fetch_assoc($res)){$config=array();$rcmail_config=array();if(eval($conf['conf'])===null){$config=array_merge($rcmail_config,$config);foreach($config as$key=>$val){if(!isset($user[$key])||in_array($key,$rcmail->config->get('dont_override',array()))){$rcmail->config->set($key,$val);}}}else{write_log('db_config',$conf);}}}static function about($keys=false){$requirements=self::$requirements;foreach(array('required_','recommended_')as$prefix){if(is_array($requirements[$prefix.'plugins'])){foreach($requirements[$prefix.'plugins']as$plugin=>$method){if(class_exists($plugin)&&method_exists($plugin,'about')){$class=new$plugin(false);$requirements[$prefix.'plugins'][$plugin]=array('method'=>$method,'plugin'=>$class->about($keys),);}else{$requirements[$prefix.'plugins'][$plugin]=array('method'=>$method,'plugin'=>$plugin,);}}}}return array('plugin'=>self::$plugin,'version'=>self::$version,'db_version'=>self::$db_version,'date'=>self::$date,'author'=>self::$author,'comments'=>self::$authors_comments,'licence'=>self::$licence,'sqladmin'=>self::$sqladmin,'requirements'=>$requirements);}}