2017-05-22 11:24:21 +02:00
< ? php
///////////////////////////////////////////////////////////////////////////////
//
// NagiosQL
//
///////////////////////////////////////////////////////////////////////////////
//
2017-10-20 15:00:08 +02:00
// (c) 2005-2017 by Martin Willisegger
2017-05-22 11:24:21 +02:00
//
// Project : NagiosQL
// Component : Settings configuration
// Website : http://www.nagiosql.org
2017-10-20 15:00:08 +02:00
// Date : $LastChangedDate: 2017-06-22 09:29:35 +0200 (Thu, 22 Jun 2017) $
2017-05-22 11:24:21 +02:00
// Author : $LastChangedBy: martin $
2017-10-20 15:00:08 +02:00
// Version : 3.3.0
// Revision : $LastChangedRevision: 2 $
2017-05-22 11:24:21 +02:00
//
///////////////////////////////////////////////////////////////////////////////
//
// Define common variables
// =======================
$prePageId = 38 ;
$preContent = " admin/settings.tpl.htm " ;
$preAccess = 1 ;
$preFieldvars = 1 ;
//
// Include preprocessing files
// ===========================
require ( " ../functions/prepend_adm.php " );
require ( " ../functions/prepend_content.php " );
//
// Process initial values
// ======================
if ( ! isset ( $_POST [ 'tfValue1' ])) $chkTfValue1 = $SETS [ 'path' ][ 'tempdir' ];
if ( ! isset ( $_POST [ 'tfValue2' ])) $chkTfValue2 = $SETS [ 'data' ][ 'encoding' ];
if ( ! isset ( $_POST [ 'tfValue3' ])) $chkTfValue3 = $SETS [ 'db' ][ 'server' ];
if ( ! isset ( $_POST [ 'tfValue4' ])) $chkTfValue4 = $SETS [ 'db' ][ 'port' ];
if ( ! isset ( $_POST [ 'tfValue5' ])) $chkTfValue5 = $SETS [ 'db' ][ 'database' ];
if ( ! isset ( $_POST [ 'tfValue6' ])) $chkTfValue6 = $SETS [ 'db' ][ 'username' ];
if ( ! isset ( $_POST [ 'tfValue7' ])) $chkTfValue7 = $SETS [ 'db' ][ 'password' ];
if ( ! isset ( $_POST [ 'tfValue8' ])) $chkTfValue8 = $SETS [ 'security' ][ 'logofftime' ];
if ( ! isset ( $_POST [ 'tfValue9' ])) $chkTfValue9 = $SETS [ 'common' ][ 'pagelines' ];
if ( ! isset ( $_POST [ 'tfValue10' ])) $chkTfValue10 = $SETS [ 'network' ][ 'proxyserver' ];
if ( ! isset ( $_POST [ 'tfValue11' ])) $chkTfValue11 = $SETS [ 'network' ][ 'proxyuser' ];
if ( ! isset ( $_POST [ 'tfValue12' ])) $chkTfValue12 = $SETS [ 'network' ][ 'proxypasswd' ];
if ( ! isset ( $_POST [ 'selValue3' ])) $chkSelValue3 = $SETS [ 'security' ][ 'wsauth' ];
if ( ! isset ( $_POST [ 'selValue4' ])) $chkSelValue4 = $SETS [ 'common' ][ 'seldisable' ];
if ( ! isset ( $_POST [ 'radValue1' ])) $chkRadValue1 = $SETS [ 'common' ][ 'tplcheck' ];
if ( ! isset ( $_POST [ 'radValue2' ])) $chkRadValue2 = $SETS [ 'common' ][ 'updcheck' ];
if ( ! isset ( $_POST [ 'radValue3' ])) $chkRadValue3 = $SETS [ 'network' ][ 'proxy' ];
//
// Save changes
// ============
if ( isset ( $_POST ) && isset ( $_POST [ 'selValue1' ])) {
//
// Write settings to database
// ==========================
if ( $chkSelValue1 == 2 ) { $strProtocol = " https " ;} else { $strProtocol = " http " ;}
$strLocale = $myDBClass -> getFieldData ( " SELECT `locale` FROM `tbl_language` WHERE `id`=' " . $chkSelValue2 . " ' " );
if ( $strLocale == " " ) $strLocale = " en_GB " ;
// Check Proxy via curl
if ( ! function_exists ( 'curl_init' )) {
$myVisClass -> processMessage ( translate ( 'Curl module not loaded, Proxy will be deactivated!' ), $strErrorMessage );
$chkRadValue3 = 0 ;
}
// Check base paths
$strBaseURL = str_replace ( " admin/settings.php " , " " , $_SERVER [ " PHP_SELF " ]);
$strBasePath = substr ( realpath ( '.' ), 0 , - 5 );
$arrSQL = " " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $strProtocol . " ' WHERE `category` = 'path' AND `name`='protocol' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkTfValue1 . " ' WHERE `category` = 'path' AND `name`='tempdir' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $strBaseURL . " ' WHERE `category` = 'path' AND `name`='base_url' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $strBasePath . " ' WHERE `category` = 'path' AND `name`='base_path' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $strLocale . " ' WHERE `category` = 'data' AND `name`='locale' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkTfValue2 . " ' WHERE `category` = 'data' AND `name`='encoding' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkTfValue8 . " ' WHERE `category` = 'security' AND `name`='logofftime' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkSelValue3 . " ' WHERE `category` = 'security' AND `name`='wsauth' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkTfValue9 . " ' WHERE `category` = 'common' AND `name`='pagelines' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkSelValue4 . " ' WHERE `category` = 'common' AND `name`='seldisable' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkRadValue1 . " ' WHERE `category` = 'common' AND `name`='tplcheck' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkRadValue2 . " ' WHERE `category` = 'common' AND `name`='updcheck' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkRadValue3 . " ' WHERE `category` = 'network' AND `name`='proxy' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkTfValue10 . " ' WHERE `category` = 'network' AND `name`='proxyserver' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkTfValue11 . " ' WHERE `category` = 'network' AND `name`='proxyuser' " ;
$arrSQL [] = " UPDATE `tbl_settings` SET `value` = ' " . $chkTfValue12 . " ' WHERE `category` = 'network' AND `name`='proxypasswd' " ;
foreach ( $arrSQL AS $elem ) {
$booReturn = $myDBClass -> insertData ( $elem );
if ( $booReturn == false ) {
$myVisClass -> processMessage ( translate ( 'An error occured while writing settings to database:' ), $strErrorMessage );
$myVisClass -> processMessage ( $myDBClass -> strErrorMessage , $strErrorMessage );
}
}
// Write db settings to file
if ( is_writable ( $strBasePath . " config/settings.php " )) {
$filSettings = fopen ( $strBasePath . " config/settings.php " , " w " );
if ( $filSettings ) {
fwrite ( $filSettings , " <?php \n " );
fwrite ( $filSettings , " exit; \n " );
fwrite ( $filSettings , " ?> \n " );
fwrite ( $filSettings , " ;/////////////////////////////////////////////////////////////////////////////// \n " );
fwrite ( $filSettings , " ; \n " );
fwrite ( $filSettings , " ; NagiosQL \n " );
fwrite ( $filSettings , " ; \n " );
fwrite ( $filSettings , " ;/////////////////////////////////////////////////////////////////////////////// \n " );
fwrite ( $filSettings , " ; \n " );
fwrite ( $filSettings , " ; Project : NagiosQL \n " );
fwrite ( $filSettings , " ; Component: Database Configuration \n " );
fwrite ( $filSettings , " ; Website : http://www.nagiosql.org \n " );
fwrite ( $filSettings , " ; Date : " . date ( " F j, Y, g:i a " ) . " \n " );
fwrite ( $filSettings , " ; Version : " . $setFileVersion . " \n " );
fwrite ( $filSettings , " ; \n " );
fwrite ( $filSettings , " ;/////////////////////////////////////////////////////////////////////////////// \n " );
fwrite ( $filSettings , " [db] \n " );
fwrite ( $filSettings , " server = " . $chkTfValue3 . " \n " );
fwrite ( $filSettings , " port = " . $chkTfValue4 . " \n " );
fwrite ( $filSettings , " database = " . $chkTfValue5 . " \n " );
fwrite ( $filSettings , " username = " . $chkTfValue6 . " \n " );
fwrite ( $filSettings , " password = " . $chkTfValue7 . " \n " );
fwrite ( $filSettings , " [path] \n " );
fwrite ( $filSettings , " base_url = " . $strBaseURL . " \n " );
fwrite ( $filSettings , " base_path = " . $strBasePath . " \n " );
fclose ( $filSettings );
// Activate new language settings
$arrLocale = explode ( " . " , $strLocale );
$strDomain = $arrLocale [ 0 ];
$loc = setlocale ( LC_ALL , $strLocale , $strLocale . " .utf-8 " , $strLocale . " .utf-8 " , $strLocale . " .utf8 " , " en_GB " , " en_GB.utf-8 " , " en_GB.utf8 " );
if ( ! isset ( $loc )) {
$myVisClass -> processMessage ( translate ( " Error in setting the correct locale, please report this error with the associated output of 'locale -a' " ), $strErrorMessage );
}
putenv ( " LC_ALL= " . $strLocale . " .utf-8 " );
putenv ( " LANG= " . $strLocale . " .utf-8 " );
bindtextdomain ( $strLocale , $strBasePath . " config/locale " );
bind_textdomain_codeset ( $strLocale , $chkTfValue2 );
textdomain ( $strLocale );
$myVisClass -> processMessage ( translate ( " Settings were changed " ), $strInfoMessage );
} else {
$myVisClass -> processMessage ( translate ( " An error occured while writing settings.php, please check permissions! " ), $strErrorMessage );
}
} else {
$myVisClass -> processMessage ( $strBasePath . " config/settings.php " . translate ( " is not writeable, please check permissions! " ), $strErrorMessage );
}
}
//
// Start content
// =============
$conttp -> setVariable ( " TITLE " , translate ( 'Configure Settings' ));
$conttp -> parse ( " header " );
$conttp -> show ( " header " );
foreach ( $arrDescription AS $elem ) {
$conttp -> setVariable ( $elem [ 'name' ], $elem [ 'string' ]);
}
$conttp -> setVariable ( " ACTION_INSERT " , filter_var ( $_SERVER [ 'PHP_SELF' ], FILTER_SANITIZE_STRING ));
$conttp -> setVariable ( " LANG_DESCRIPTION " , translate ( 'Change your current NagiosQL settings (e.g. Database user, Language).' ));
//
// Path settings
// =============
$conttp -> setVariable ( " PATH " , translate ( 'Path' ));
$conttp -> setVariable ( " TEMPDIR_NAME " , translate ( 'Temporary Directory' ));
$conttp -> setVariable ( " TEMPDIR_VALUE " , htmlspecialchars ( $chkTfValue1 , ENT_QUOTES , 'utf-8' ));
$conttp -> setVariable ( " PROTOCOL_NAME " , translate ( 'Server protocol' ));
$conttp -> setVariable ( strtoupper ( $SETS [ 'path' ][ 'protocol' ]) . " _SELECTED " , " selected " );
//
// Data settings
// =============
$conttp -> setVariable ( " DATA " , translate ( 'Language' ));
$conttp -> setVariable ( " LOCALE " , translate ( 'Language' ));
// Process language selection field
$strSQL = " SELECT * FROM `tbl_language` WHERE `active`='1' ORDER BY `id` " ;
$booReturn = $myDBClass -> getDataArray ( $strSQL , $arrData , $intDataCount );
if ( $booReturn && ( $intDataCount != 0 )) {
foreach ( $arrData AS $elem ) {
$conttp -> setVariable ( " LANGUAGE_ID " , $elem [ 'id' ]);
$conttp -> setVariable ( " LANGUAGE_NAME " , translate ( $elem [ 'language' ]));
if ( $elem [ 'locale' ] == $SETS [ 'data' ][ 'locale' ]) $conttp -> setVariable ( " LANGUAGE_SELECTED " , " selected " );
$conttp -> parse ( " language " );
}
} else {
$myVisClass -> processMessage ( translate ( 'Error while selecting data from database:' ), $strErrorMessage );
$myVisClass -> processMessage ( $myDBClass -> strErrorMessage , $strErrorMessage );
}
$conttp -> setVariable ( " ENCODING_NAME " , translate ( 'Encoding' ));
$conttp -> setVariable ( " ENCODING_VALUE " , htmlspecialchars ( $chkTfValue2 , ENT_QUOTES , 'utf-8' ));
//
// Database settings
// =================
$conttp -> setVariable ( " DB " , translate ( 'Database' ));
$conttp -> setVariable ( " SERVER_NAME " , translate ( 'MySQL Server' ));
$conttp -> setVariable ( " SERVER_VALUE " , htmlspecialchars ( $chkTfValue3 , ENT_QUOTES , 'utf-8' ));
$conttp -> setVariable ( " SERVER_PORT " , translate ( 'MySQL Server Port' ));
$conttp -> setVariable ( " PORT_VALUE " , htmlspecialchars ( $chkTfValue4 , ENT_QUOTES , 'utf-8' ));
$conttp -> setVariable ( " DATABASE_NAME " , translate ( 'Database name' ));
$conttp -> setVariable ( " DATABASE_VALUE " , htmlspecialchars ( $chkTfValue5 , ENT_QUOTES , 'utf-8' ));
$conttp -> setVariable ( " USERNAME_NAME " , translate ( 'Database user' ));
$conttp -> setVariable ( " USERNAME_VALUE " , htmlspecialchars ( $chkTfValue6 , ENT_QUOTES , 'utf-8' ));
$conttp -> setVariable ( " PASSWORD_NAME " , translate ( 'Database password' ));
$conttp -> setVariable ( " PASSWORD_VALUE " , htmlspecialchars ( $chkTfValue7 , ENT_QUOTES , 'utf-8' ));
//
// Security settings
// =================
$conttp -> setVariable ( " SECURITY " , translate ( 'Security' ));
$conttp -> setVariable ( " LOGOFFTIME_NAME " , translate ( 'Session auto logoff time' ));
$conttp -> setVariable ( " LOGOFFTIME_VALUE " , htmlspecialchars ( $chkTfValue8 , ENT_QUOTES , 'utf-8' ));
$conttp -> setVariable ( " WSAUTH_NAME " , translate ( 'Authentication type' ));
$conttp -> setVariable ( " WSAUTH_ " . $chkSelValue3 . " _SELECTED " , " selected " );
//
// Common settings
// ===============
$conttp -> setVariable ( " COMMON " , translate ( 'Common' ));
$conttp -> setVariable ( " PAGELINES_NAME " , translate ( 'Data lines per page' ));
$conttp -> setVariable ( " PAGELINES_VALUE " , htmlspecialchars ( $chkTfValue9 , ENT_QUOTES , 'utf-8' ));
$conttp -> setVariable ( " SELDISABLE_NAME " , translate ( 'Selection method' ));
$conttp -> setVariable ( " SELDISABLE_ " . $chkSelValue4 . " _SELECTED " , " selected " );
//
// Template Check
// ==============
$conttp -> setVariable ( " TEMPLATE_CHECK " , translate ( 'Template warn message' ));
$conttp -> setVariable ( " LANG_ENABLE " , translate ( 'Enable' ));
$conttp -> setVariable ( " LANG_DISABLE " , translate ( 'Disable' ));
$conttp -> setVariable ( " TPL_CHECK_ " . $chkRadValue1 . " _CHECKED " , " checked " );
//
// Online version check
// ====================
$conttp -> setVariable ( " CLASS_NAME_1 " , " elementHide " );
$conttp -> setVariable ( " CLASS_NAME_2 " , " elementHide " );
$conttp -> setVariable ( " UPDATE_CHECK " , translate ( 'Online version check' ));
$conttp -> setVariable ( " UPD_CHECK_ " . $chkRadValue2 . " _CHECKED " , " checked " );
if ( $chkRadValue2 == 1 ) $conttp -> setVariable ( " CLASS_NAME_1 " , " elementShow " );
//
// Online update proxy settings
// ============================
$conttp -> setVariable ( " UPD_PROXY_CHECK " , translate ( 'Proxyserver' ));
$conttp -> setVariable ( " UPD_PROXY_ " . $chkRadValue3 . " _CHECKED " , " checked " );
if (( $chkRadValue3 == 1 ) && ( $chkRadValue2 == 1 )) $conttp -> setVariable ( " CLASS_NAME_2 " , " elementShow " );
$conttp -> setVariable ( " UPD_PROXY_SERVER " , translate ( 'Proxy Address' ));
$conttp -> setVariable ( " UPD_PROXY_SERVER_VALUE " , htmlspecialchars ( $chkTfValue10 , ENT_QUOTES , 'utf-8' ));
$conttp -> setVariable ( " UPD_PROXY_USERNAME " , translate ( 'Proxy Username (optional)' ));
$conttp -> setVariable ( " UPD_PROXY_USERNAME_VALUE " , htmlspecialchars ( $chkTfValue11 , ENT_QUOTES , 'utf-8' ));
$conttp -> setVariable ( " UPD_PROXY_PASSWORD " , translate ( 'Proxy Password (optional)' ));
$conttp -> setVariable ( " UPD_PROXY_PASSWORD_VALUE " , htmlspecialchars ( $chkTfValue12 , ENT_QUOTES , 'utf-8' ));
//
// Requirements of form
// ====================
$conttp -> setVariable ( " LANG_SAVE " , translate ( 'Save' ));
$conttp -> setVariable ( " LANG_ABORT " , translate ( 'Abort' ));
$conttp -> setVariable ( " LANG_REQUIRED " , translate ( 'required' ));
$conttp -> setVariable ( " ERRORMESSAGE " , $strErrorMessage );
$conttp -> setVariable ( " INFOMESSAGE " , $strInfoMessage );
//
// Check access rights for adding new objects
// ==========================================
if ( $myVisClass -> checkAccGroup ( $prePageKey , 'write' ) != 0 ) $conttp -> setVariable ( " ADD_CONTROL " , " disabled= \" disabled \" " );
$conttp -> parse ( " settingssite " );
$conttp -> show ( " settingssite " );
//
// Footer ausgeben
// ===============
$maintp -> setVariable ( " VERSION_INFO " , " <a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion " );
$maintp -> parse ( " footer " );
$maintp -> show ( " footer " );
?>