From 0e314e3cac0f46f3ff019947853d5bc28f7a255d Mon Sep 17 00:00:00 2001 From: Rabaa Ridene <rridene@centreon.com> Date: Tue, 23 Aug 2016 14:08:37 +0200 Subject: [PATCH] #MON-816 : replace wikiconf's file by knowledge base backup's conf --- cron/centKnowledgeSynchronizer.php | 1 - .../procedures_Proxy.class.php | 15 ++++++++----- .../configKnowledge/display-hostTemplates.php | 6 ++--- .../configKnowledge/display-hosts.php | 5 +++-- .../display-serviceTemplates.php | 6 +++-- .../configKnowledge/display-services.php | 6 +++-- .../configKnowledge/functions.php | 22 +++++++++++++++++++ .../configuration/configKnowledge/popup.php | 17 +++++++------- .../configKnowledge/popup_form.php | 13 ++++++----- .../configKnowledge/proxy/proxy.php | 19 ++++++++++------ 10 files changed, 75 insertions(+), 35 deletions(-) diff --git a/cron/centKnowledgeSynchronizer.php b/cron/centKnowledgeSynchronizer.php index 25b89152f7..3e7b11be8c 100644 --- a/cron/centKnowledgeSynchronizer.php +++ b/cron/centKnowledgeSynchronizer.php @@ -7,7 +7,6 @@ require_once "/etc/centreon/centreon.conf.php"; $centreon_path = "/usr/share/centreon/"; $module_path = $centreon_path . "www/class/centreon-knowledge/"; -require_once $centreon_path . "config/wiki.conf.php"; require_once $centreon_path . "www/class/centreonDB.class.php"; require_once $module_path . "procedures.class.php"; require_once $module_path . "procedures_DB_Connector.class.php"; diff --git a/www/class/centreon-knowledge/procedures_Proxy.class.php b/www/class/centreon-knowledge/procedures_Proxy.class.php index 788bbc6118..b88d316bf5 100644 --- a/www/class/centreon-knowledge/procedures_Proxy.class.php +++ b/www/class/centreon-knowledge/procedures_Proxy.class.php @@ -27,11 +27,16 @@ class procedures_Proxy { $this->sflag = 0; $centreon_path = realpath(dirname(__FILE__) . '/../../../'); - require_once $centreon_path."/config/wiki.conf.php"; - require_once "$etc_centreon/centreon.conf.php"; + require_once $centreon_path."/config/centreon.config.php"; - $this->wikiURL = $WikiURL; - $this->proc = new procedures(3, $db_name, $db_user, $db_host, $db_password, $this->DB, $db_prefix); + $modules_path = $centreon_path . "/www/include/configuration/configKnowledge/"; + require_once $modules_path . 'functions.php'; + + $conf = getWikiConfig($this->DB); + $WikiURL = $conf['kb_wiki_url']; + + $this->wikiUrl = $WikiURL; + $this->proc = new procedures(3, $conf['kb_db_name'], $conf['kb_db_user'], $conf['kb_db_host'], $conf['kb_db_password'], $this->DB, $conf['kb_db_prefix']); if (isset($host_name)) { if (isset($service_description)) @@ -51,7 +56,7 @@ class procedures_Proxy { * Check if host has a procedure directly on Host */ if (isset($procList["Host:".$host_name])) { - $this->url = $this->wikiURL."/index.php?title=Host:".$host_name; + $this->url = $this->wikiUrl."/index.php?title=Host:".$host_name; return ; } diff --git a/www/include/configuration/configKnowledge/display-hostTemplates.php b/www/include/configuration/configKnowledge/display-hostTemplates.php index 6e07ffeb85..770806474d 100644 --- a/www/include/configuration/configKnowledge/display-hostTemplates.php +++ b/www/include/configuration/configKnowledge/display-hostTemplates.php @@ -80,11 +80,11 @@ require_once "HTML/QuickForm/advmultiselect.php"; require_once "HTML/QuickForm/Renderer/ArraySmarty.php"; - - require_once $centreon_path."/config/wiki.conf.php"; require_once $centreon_path."/www/class/centreon-knowledge/procedures_DB_Connector.class.php"; require_once $centreon_path."/www/class/centreon-knowledge/procedures.class.php"; + $conf = getWikiConfig($pearDB); + $WikiURL = $conf['kb_wiki_url']; /* * Smarty template Init @@ -101,7 +101,7 @@ $status = array(0=>"<font color='orange'> "._("No wiki page defined")." </font>", 1=>"<font color='green'> "._("Wiki page defined")." </font>"); $line = array(0 => "list_one", 1 => "list_two"); - $proc = new procedures(3, $db_name, $db_user, $db_host, $db_password, $pearDB, $db_prefix); + $proc = new procedures(3, $conf['kb_db_name'], $conf['kb_db_user'], $conf['kb_db_host'], $conf['kb_db_password'], $pearDB, $conf['kb_db_prefix']); $proc->setHostInformations(); $proc->setServiceInformations(); diff --git a/www/include/configuration/configKnowledge/display-hosts.php b/www/include/configuration/configKnowledge/display-hosts.php index 53c985eb75..cca4ef0d03 100644 --- a/www/include/configuration/configKnowledge/display-hosts.php +++ b/www/include/configuration/configKnowledge/display-hosts.php @@ -80,10 +80,11 @@ require_once "HTML/QuickForm/advmultiselect.php"; require_once "HTML/QuickForm/Renderer/ArraySmarty.php"; - require_once $centreon_path."/config/wiki.conf.php"; require_once $centreon_path."/www/class/centreon-knowledge/procedures_DB_Connector.class.php"; require_once $centreon_path."/www/class/centreon-knowledge/procedures.class.php"; + $conf = getWikiConfig($pearDB); + $WikiURL = $conf['kb_wiki_url']; /* * Smarty template Init @@ -100,7 +101,7 @@ */ $status = array(0=>"<font color='orange'> "._("No wiki page defined")." </font>", 1=>"<font color='green'> "._("Wiki page defined")." </font>"); $line = array(0 => "list_one", 1 => "list_two"); - $proc = new procedures(3, $db_name, $db_user, $db_host, $db_password, $pearDB, $db_prefix); + $proc = new procedures(3, $conf['kb_db_name'], $conf['kb_db_user'], $conf['kb_db_host'], $conf['kb_db_password'], $pearDB, $conf['kb_db_prefix']); $proc->setHostInformations(); $proc->setServiceInformations(); diff --git a/www/include/configuration/configKnowledge/display-serviceTemplates.php b/www/include/configuration/configKnowledge/display-serviceTemplates.php index 0f7c3159aa..44d70cf30d 100644 --- a/www/include/configuration/configKnowledge/display-serviceTemplates.php +++ b/www/include/configuration/configKnowledge/display-serviceTemplates.php @@ -79,10 +79,12 @@ require_once "HTML/QuickForm/advmultiselect.php"; require_once "HTML/QuickForm/Renderer/ArraySmarty.php"; - require_once $centreon_path."/config/wiki.conf.php"; require_once $centreon_path."/www/class/centreon-knowledge/procedures_DB_Connector.class.php"; require_once $centreon_path."/www/class/centreon-knowledge/procedures.class.php"; + $conf = getWikiConfig($pearDB); + $WikiURL = $conf['kb_wiki_url']; + /* * Smarty template Init */ @@ -98,7 +100,7 @@ $status = array(0=>"<font color='orange'> "._("No wiki page defined")." </font>", 1=>"<font color='green'> "._("Wiki page defined")." </font>"); $line = array(0 => "list_one", 1 => "list_two"); - $proc = new procedures(3, $db_name, $db_user, $db_host, $db_password, $pearDB, $db_prefix); + $proc = new procedures(3, $conf['kb_db_name'], $conf['kb_db_user'], $conf['kb_db_host'], $conf['kb_db_password'], $pearDB, $conf['kb_db_prefix']); $proc->setHostInformations(); $proc->setServiceInformations(); diff --git a/www/include/configuration/configKnowledge/display-services.php b/www/include/configuration/configKnowledge/display-services.php index c40c278407..d804655512 100644 --- a/www/include/configuration/configKnowledge/display-services.php +++ b/www/include/configuration/configKnowledge/display-services.php @@ -86,10 +86,12 @@ require_once "HTML/QuickForm.php"; require_once "HTML/QuickForm/advmultiselect.php"; require_once "HTML/QuickForm/Renderer/ArraySmarty.php"; -require_once $centreon_path."/config/wiki.conf.php"; require_once $centreon_path."/www/class/centreon-knowledge/procedures_DB_Connector.class.php"; require_once $centreon_path."/www/class/centreon-knowledge/procedures.class.php"; +$conf = getWikiConfig($pearDB); +$WikiURL = $conf['kb_wiki_url']; + /* * Smarty template Init */ @@ -108,7 +110,7 @@ $status = array( ); $line = array(0 => "list_one", 1 => "list_two"); -$proc = new procedures(3, $db_name, $db_user, $db_host, $db_password, $pearDB, $db_prefix); +$proc = new procedures(3, $conf['kb_db_name'], $conf['kb_db_user'], $conf['kb_db_host'], $conf['kb_db_password'], $pearDB, $conf['kb_db_prefix']); $proc->setHostInformations(); $proc->setServiceInformations(); diff --git a/www/include/configuration/configKnowledge/functions.php b/www/include/configuration/configKnowledge/functions.php index 6e60014c6a..674046c350 100644 --- a/www/include/configuration/configKnowledge/functions.php +++ b/www/include/configuration/configKnowledge/functions.php @@ -34,6 +34,28 @@ function Mediawikiconfigexist($url) { return true; } +function getWikiConfig($pearDB) { + + if (is_null($pearDB)) { + return; + } + + $res = $pearDB->query("SELECT * FROM `options` WHERE options.key LIKE 'kb_%'"); + while ($opt = $res->fetchRow()) { + $gopt[$opt["key"]] = html_entity_decode($opt["value"], ENT_QUOTES, "UTF-8"); + } + + $pattern = '#^http://|https://#'; + $WikiURL = $gopt['kb_wiki_url']; + $checkWikiUrl = preg_match($pattern, $WikiURL); + + if (! $checkWikiUrl) + $gopt['kb_wiki_url'] = 'http://' . $WikiURL; + + $res->free(); + return $gopt; +} + diff --git a/www/include/configuration/configKnowledge/popup.php b/www/include/configuration/configKnowledge/popup.php index c9566268cc..1f76f1dfb4 100644 --- a/www/include/configuration/configKnowledge/popup.php +++ b/www/include/configuration/configKnowledge/popup.php @@ -45,30 +45,31 @@ */ $centreon_path = realpath(dirname(__FILE__) . '/../../../../'); - require_once $centreon_path."/config/wiki.conf.php"; - require_once "$etc_centreon/centreon.conf.php"; + require_once $centreon_path."/config/centreon.config.php"; set_include_path(get_include_path() . PATH_SEPARATOR . $centreon_path . "config/". PATH_SEPARATOR . $centreon_path."www/class/"); require_once "DB.php"; - require_once "wiki.conf.php"; + //require_once "wiki.conf.php"; require_once "centreon-knowledge/procedures_DB_Connector.class.php"; require_once "centreon-knowledge/procedures.class.php"; require_once "centreonLog.class.php"; require_once "centreonDB.class.php"; - - - + $modules_path = $centreon_path . "/www/include/configuration/configKnowledge/"; + require_once $modules_path . 'functions.php'; /* * Connect to centreon DB */ - $pearDB = new CentreonDB(); + $pearDB = new CentreonDB(); + + $conf = getWikiConfig($pearDB); + $WikiURL = $conf['kb_wiki_url']; - $proc = new procedures(3, $db_name, $db_user, $db_host, $db_password, $pearDB, $db_prefix); +$proc = new procedures(3, $conf['kb_db_name'], $conf['kb_db_user'], $conf['kb_db_host'], $conf['kb_db_password'], $pearDB, $conf['kb_db_prefix']); if (isset($_GET["template"]) && $_GET["template"] != "") $proc->duplicate(htmlentities($_GET["template"], ENT_QUOTES), htmlentities($_GET["object"], ENT_QUOTES), htmlentities($_GET["type"], ENT_QUOTES)); diff --git a/www/include/configuration/configKnowledge/popup_form.php b/www/include/configuration/configKnowledge/popup_form.php index 4fe8c55d62..c30680ddae 100644 --- a/www/include/configuration/configKnowledge/popup_form.php +++ b/www/include/configuration/configKnowledge/popup_form.php @@ -36,8 +36,8 @@ * */ - require_once $centreon_path."/config/wiki.conf.php"; - require_once "$etc_centreon/centreon.conf.php"; + $centreon_path = realpath(dirname(__FILE__) . '/../../../../'); + require_once $centreon_path."/config/centreon.config.php"; set_include_path(get_include_path() . PATH_SEPARATOR . $centreon_path . "www/include/configuration/configKnowledge/".PATH_SEPARATOR . $centreon_path."www/class/".PATH_SEPARATOR . $centreon_path."www/"); @@ -47,17 +47,20 @@ require_once "class/centreonLog.class.php"; require_once "class/centreonDB.class.php"; - $pearDB = new CentreonDB(); + $pearDB = new CentreonDB(); + + $conf = getWikiConfig($pearDB); + if (isset($_GET["session_id"]) && $_GET["session_id"] != "") { $path = "core/display/"; - require_once $centreon_path."/config/wiki.conf.php"; + require_once "centreon-knowledge/procedures_DB_Connector.class.php"; require_once "centreon-knowledge/procedures.class.php"; /* * Init procedures Object */ - $proc = new procedures(3, $db_name, $db_user, $db_host, $db_password, $pearDB); + $proc = new procedures(3, $conf['kb_db_user'], $conf['kb_db_host'], $conf['kb_db_password'], $pearDB, $conf['kb_db_prefix']); $proc->setHostInformations(); $proc->setServiceInformations(); $wikiContent = $proc->getProcedures(); diff --git a/www/include/configuration/configKnowledge/proxy/proxy.php b/www/include/configuration/configKnowledge/proxy/proxy.php index 7f3614da5a..a254da964a 100644 --- a/www/include/configuration/configKnowledge/proxy/proxy.php +++ b/www/include/configuration/configKnowledge/proxy/proxy.php @@ -38,10 +38,9 @@ ini_set("display_errors", "On"); $centreon_path = realpath(dirname(__FILE__) . '/../../../../../'); - require_once $centreon_path."/config/wiki.conf.php"; global $etc_centreon, $db_prefix; - require_once $etc_centreon."/centreon.conf.php"; + require_once $centreon_path."/config/centreon.config.php"; set_include_path(get_include_path() . PATH_SEPARATOR . $centreon_path . "www/class/centreon-knowledge/".PATH_SEPARATOR . $centreon_path."www/"); @@ -53,20 +52,26 @@ require_once "class/centreon-knowledge/procedures_DB_Connector.class.php"; require_once "class/centreon-knowledge/procedures_Proxy.class.php"; + $modules_path = $centreon_path . "www/include/configuration/configKnowledge/"; + require_once $modules_path . 'functions.php'; + /* * DB connexion */ - $pearDB = new CentreonDB(); + $pearDB = new CentreonDB(); + + $conf = getWikiConfig($pearDB); + $WikiURL = $conf['kb_wiki_url']; + /* * Check if user want host or service procedures */ if (isset($_GET["host_name"]) && isset($_GET["service_description"])) { - $proxy = new procedures_Proxy($pearDB, $db_prefix, $_GET["host_name"], $_GET["service_description"]); + $proxy = new procedures_Proxy($pearDB, $conf['kb_db_prefix'], $_GET["host_name"], $_GET["service_description"]); } else if (isset($_GET["host_name"])) { - $proxy = new procedures_Proxy($pearDB, $db_prefix, $_GET["host_name"]); + $proxy = new procedures_Proxy($pearDB, $conf['kb_db_prefix'], $_GET["host_name"]); } - - + if ($proxy->url != "") header ("Location: ".$proxy->url); else -- GitLab