pnp4nagios/share/pnp/application/models/config.php
2017-05-20 15:26:21 +02:00

89 lines
3.9 KiB
PHP

<?php defined('SYSPATH') OR die('No direct access allowed.');
/**
* Retrieves the PNP config files
*/
class Config_Model extends System_Model
{
public $conf = array();
public $views = array();
public $scheme = array();
public function read_config(){
if(getenv('PNP_CONFIG_FILE') != ""){
$config = getenv('PNP_CONFIG_FILE');
}elseif(OMD){
$config = OMD_SITE_ROOT.'/etc/pnp4nagios/config';
}else{
$config = Kohana::config('core.pnp_etc_path')."/config";
}
# Default Values
$conf['doc_language'] = Kohana::config('core.doc_language');
$conf['graph_width'] = Kohana::config('core.graph_width');
$conf['graph_height'] = Kohana::config('core.graph_height');
$conf['zgraph_width'] = Kohana::config('core.zgraph_width');
$conf['zgraph_height'] = Kohana::config('core.zgraph_height');
$conf['pdf_width'] = Kohana::config('core.pdf_width');
$conf['pdf_height'] = Kohana::config('core.pdf_height');
$conf['right_zoom_offset'] = Kohana::config('core.right_zoom_offset');
$conf['mobile_devices'] = Kohana::config('core.mobile_devices');
$conf['pdf_page_size'] = Kohana::config('core.pdf_page_size');
$conf['pdf_margin_left'] = Kohana::config('core.pdf_margin_left');
$conf['pdf_margin_right'] = Kohana::config('core.pdf_margin_right');
$conf['pdf_margin_top'] = Kohana::config('core.pdf_margin_top');
$conf['auth_multisite_enabled'] = Kohana::config('core.auth_multisite_enabled');
$conf['auth_multisite_serials'] = Kohana::config('core.auth_multisite_serials');
$conf['auth_multisite_htpasswd'] = Kohana::config('core.auth_multisite_htpasswd');
$conf['auth_multisite_secret'] = Kohana::config('core.auth_multisite_secret');
$conf['auth_multisite_login_url'] = Kohana::config('core.auth_multisite_login_url');
$scheme['Reds'] = array ('#FEE0D2','#FCBBA1','#FC9272','#FB6A4A','#EF3B2C','#CB181D','#A50F15','#67000D');
$views = Kohana::config('core.views');
if (is_readable($config . ".php")) {
include ($config . ".php");
}else {
throw new Kohana_Exception('error.config-not-found', $config.'.php');
}
// Load optional config files
// a) the _local.php config
// b) all .php files which do not start with a "." in config.d/
$custom_configs = array($config . "_local.php");
if (file_exists($config . ".d") && is_dir($config . ".d")) {
$dh = opendir($config . ".d");
while (($file = readdir($dh)) !== false) {
if ($file[0] != '.' && substr($file, -4) == '.php') {
$custom_configs[] = $config . ".d/" .$file;
}
}
closedir($dh);
}
foreach($custom_configs AS $config_file) {
if (is_readable($config_file)) {
$array_a = $views;
$views = array();
include ($config_file);
$array_b = $views;
if(sizeof($views) == 0 ){
$views = $array_a;
}
}
}
// Use graph_height & graph_width from URL if present
// Hint: In Kohana 3 Input class is removed
$input = Input::instance();
if($input->get('h') != "" ) $conf['graph_height'] = intval($input->get('h'));
if($input->get('w') != "" ) $conf['graph_width'] = intval($input->get('w'));
if($input->get('graph_height') != "" ) $conf['graph_height'] = intval($input->get('graph_height'));
if($input->get('graph_width') != "" ) $conf['graph_width'] = intval($input->get('graph_width'));
$this->conf = $conf;
$this->views = $views;
$this->scheme = $scheme;
}
}