getConfigTargets($arrConfigSet); $intConfigId = $arrConfigSet[0]; $myConfigClass->getConfigValues($intConfigId, 'method', $intMethod); $myConfigClass->getConfigValues($intConfigId, 'nagiosbasedir', $strBaseDir); $myConfigClass->getConfigValues($intConfigId, 'conffile', $strConfigfile); $strLocalBackup = $strConfigfile. '_old_' .date('YmdHis'); // // Convert Windows to UNIX // ======================= $chkTaFileText = str_replace("\r\n", "\n", $chkTaFileText); // // Process data // ============ if (($chkTaFileText != '') && ($arrConfigSet[0] != 0)) { if ($intMethod == 1) { if (file_exists($strBaseDir) && (is_writable($strBaseDir) && is_writable($strConfigfile))) { // Backup config file $intReturn = $myConfigClass->moveFile('nagiosbasic', basename($strConfigfile), $intConfigId); if ($intReturn == 1) { $myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage); } // Write configuration $resFile = fopen($strConfigfile, 'wb'); fwrite($resFile, $chkTaFileText); fclose($resFile); $myVisClass->processMessage('' .translate('Configuration file successfully ' . 'written!'). '', $strInfoMessage); $myDataClass->writeLog(translate('Configuration successfully written:'). ' ' .$strConfigfile); } else { $myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the ' . 'permissions)!'), $strErrorMessage); $myDataClass->writeLog(translate('Configuration write failed:'). ' ' .$strConfigfile); } } elseif (($intMethod == 2) || ($intMethod == 3)) { // Backup config file $intReturn1 = $myConfigClass->moveFile('nagiosbasic', basename($strConfigfile), $intConfigId); if ($intReturn1 == 1) { $myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage); } // Write file to temporary $strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_conf'); $resFile = fopen($strFileName, 'wb'); fwrite($resFile, $chkTaFileText); fclose($resFile); // Copy configuration to remoty system $intReturn2 = $myConfigClass->remoteFileCopy($strConfigfile, $intConfigId, $strFileName, 1); if ($intReturn2 == 0) { $myVisClass->processMessage('' .translate('Configuration file successfully ' . 'written!'). '', $strInfoMessage); $myDataClass->writeLog(translate('Configuration successfully written:'). ' ' .$strConfigfile); unlink($strFileName); } else { $myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the permissions ' . 'on remote system)!'), $strErrorMessage); $myDataClass->writeLog(translate('Configuration write failed (remote):'). ' ' .$strConfigfile); unlink($strFileName); } } } elseif ($arrConfigSet[0] == 0) { $myVisClass->processMessage(translate('There are no nagios configuration files in common domain, please select a '. 'valid domain to edit this files!'), $strErrorMessage); } // // Include content // =============== $conttp->setVariable('TITLE', translate('Nagios main configuration file')); $conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING)); $conttp->setVariable('MAINSITE', $_SESSION['SETS']['path']['base_url']. 'admin.php'); foreach ($arrDescription as $elem) { $conttp->setVariable($elem['name'], $elem['string']); } // // Open configuration // ================== if ($intMethod == 1) { if (file_exists($strConfigfile) && is_readable($strConfigfile)) { $resFile = fopen($strConfigfile, 'rb'); if ($resFile) { while (!feof($resFile)) { $strConfig .= fgets($resFile, 1024); } } } else { $myVisClass->processMessage(translate('Cannot open the data file (check the permissions)!'), $strErrorMessage); } } elseif (($intMethod == 2) || ($intMethod == 3)) { // Write file to temporary $strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_conf'); // Copy configuration from remoty system $intReturn = $myConfigClass->remoteFileCopy($strConfigfile, $intConfigId, $strFileName, 0); if ($intReturn == 0) { $resFile = fopen($strFileName, 'rb'); if (is_resource($resFile)) { while (!feof($resFile)) { $strConfig .= fgets($resFile, 1024); } unlink($strFileName); } else { $myVisClass->processMessage(translate('Cannot open the temporary file'), $strErrorMessage); } } else { $myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage); $myDataClass->writeLog(translate('Configuration read failed (remote):'). ' ' .$strErrorMessage); if (file_exists($strFileName)) { unlink($strFileName); } } } $conttp->setVariable('DAT_NAGIOS_CONFIG', $strConfig); if ($strErrorMessage != '') { $conttp->setVariable('ERRORMESSAGE', $strErrorMessage); } $conttp->setVariable('INFOMESSAGE', $strInfoMessage); // Check access rights for adding new objects if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) { $conttp->setVariable('ADD_CONTROL', 'disabled="disabled"'); } $conttp->parse('naginsert'); $conttp->show('naginsert'); // // Process footer // ============== $maintp->setVariable('VERSION_INFO', "NagiosQL $setFileVersion"); $maintp->parse('footer'); $maintp->show('footer');