nagiosql/install/step2.php
2025-08-08 11:12:01 +02:00

136 lines
6.9 KiB
PHP

<?php
/* ----------------------------------------------------------------------------
NagiosQL
-------------------------------------------------------------------------------
(c) 2005-2022 by Martin Willisegger
Project : NagiosQL
Component : Installer script - step 2
Website : https://sourceforge.net/projects/nagiosql/
Version : 3.5.0
GIT Repo : https://gitlab.com/wizonet/NagiosQL
-----------------------------------------------------------------------------*/
/**
* Class and variable includes
* @var NagInstallClass $myInstClass
* @var string $preBasePath from install/index.php
*/
/*
Prevent this file from direct access
*/
use install\functions\NagInstallClass;
if (preg_match('#' . basename(__FILE__) . '#', htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'utf-8'))) {
header('Location: install.php');
exit;
}
/*
Define common variables
*/
$preIncludeContent = $preBasePath . 'install/templates/step2.htm.tpl';
$intError = 0;
/*
Build content
*/
$arrTemplate['PASSWD_MESSAGE'] = $myInstClass->translate('The NagiosQL first passwords are not equal!');
$arrTemplate['FIELDS_MESSAGE'] = $myInstClass->translate('Please fill in all fields marked with an *');
$arrTemplate['STEP1_BOX'] = $myInstClass->translate('Requirements');
$arrTemplate['STEP2_BOX'] = $myInstClass->translate('Installation');
$arrTemplate['STEP3_BOX'] = $myInstClass->translate('Finish');
$arrTemplate['STEP2_TITLE'] = 'NagiosQL ' . $myInstClass->translate('Installation') . ': ' .
$myInstClass->translate('Setup');
$arrTemplate['STEP2_TEXT1_1'] = $myInstClass->translate('Please complete the form below. Mandatory fields marked '
. '<em>*</em>');
$arrTemplate['STEP2_TEXT2_1'] = $myInstClass->translate('Database Configuration');
$arrTemplate['STEP2_TEXT2_2'] = $myInstClass->translate('Database Type');
$strSelected = '';
$strDBType = '';
if (is_array($_SESSION['install']['dbtype_available']) && (count($_SESSION['install']['dbtype_available']) !== 0)) {
foreach ((array)$_SESSION['install']['dbtype_available'] as $elem) {
if (isset($_SESSION['install']['dbtype']) && ($_SESSION['install']['dbtype'] === $elem)) {
$strSelected = 'selected="selected"';
}
$strDBType .= '<option value="' . $elem . "\" $strSelected>" . $elem . "</option>\n";
}
} else {
$strDBType .= "<option value=\"mysql\" $strSelected>mysql</option>\n";
}
$arrTemplate['STEP2_VALUE2_2'] = $strDBType;
$arrTemplate['STEP2_TEXT2_3'] = $myInstClass->translate('Database Server');
$arrTemplate['STEP2_VALUE2_3'] = htmlspecialchars($_SESSION['install']['dbserver'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT2_4'] = $myInstClass->translate('Local hostname or IP address');
if (htmlspecialchars($_SESSION['install']['dbserver'], ENT_QUOTES, 'utf-8') === 'localhost') {
$arrTemplate['STEP2_VALUE2_4'] = htmlspecialchars($_SESSION['install']['dbserver'], ENT_QUOTES, 'utf-8');
} else {
$arrTemplate['STEP2_VALUE2_4'] = filter_input(INPUT_SERVER, 'SERVER_ADDR');
}
$arrTemplate['STEP2_TEXT2_5'] = $myInstClass->translate('Database Server Port');
$arrTemplate['STEP2_VALUE2_5'] = htmlspecialchars($_SESSION['install']['dbport'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT2_6'] = $myInstClass->translate('Database name');
$arrTemplate['STEP2_VALUE2_6'] = htmlspecialchars($_SESSION['install']['dbname'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT2_7'] = $myInstClass->translate('NagiosQL DB User');
$arrTemplate['STEP2_VALUE2_7'] = htmlspecialchars($_SESSION['install']['dbuser'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT2_8'] = $myInstClass->translate('NagiosQL DB Password');
$arrTemplate['STEP2_VALUE2_8'] = htmlspecialchars($_SESSION['install']['dbpass'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT2_9'] = $myInstClass->translate('Administrative Database User');
$arrTemplate['STEP2_VALUE2_9'] = htmlspecialchars($_SESSION['install']['admuser'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT2_10'] = $myInstClass->translate('Administrative Database Password');
$arrTemplate['STEP2_TEXT2_11'] = $myInstClass->translate('Drop database if already exists?');
if ($_SESSION['install']['dbdrop'] === 1) {
$arrTemplate['STEP2_VALUE2_11'] = 'checked';
} else {
$arrTemplate['STEP2_VALUE2_11'] = '';
}
$arrTemplate['STEP2_TEXT3_1'] = $myInstClass->translate('NagiosQL User Setup');
$arrTemplate['STEP2_TEXT3_2'] = $myInstClass->translate('Initial NagiosQL User');
$arrTemplate['STEP2_VALUE3_2'] = htmlspecialchars($_SESSION['install']['qluser'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT3_3'] = $myInstClass->translate('Initial NagiosQL Password');
$arrTemplate['STEP2_VALUE3_3'] = htmlspecialchars($_SESSION['install']['qlpass'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT3_4'] = $myInstClass->translate('Please repeat the password');
$arrTemplate['STEP2_TEXT4_1'] = $myInstClass->translate('Nagios Configuration');
$arrTemplate['STEP2_TEXT4_2'] = $myInstClass->translate('Import Nagios sample config?');
if ($_SESSION['install']['sample'] === 1) {
$arrTemplate['STEP2_VALUE4_2'] = 'checked';
} else {
$arrTemplate['STEP2_VALUE4_2'] = '';
}
$arrTemplate['STEP2_FORM_1'] = $myInstClass->translate('Next');
$arrTemplate['STEP2_TEXT5_1'] = $myInstClass->translate('NagiosQL path values');
$arrTemplate['STEP2_TEXT5_2'] = $myInstClass->translate('Create NagiosQL config paths?');
if ($_SESSION['install']['createpath'] === 1) {
$arrTemplate['STEP2_VALUE5_2'] = 'checked';
} else {
$arrTemplate['STEP2_VALUE5_2'] = '';
}
$arrTemplate['STEP2_TEXT5_3'] = $myInstClass->translate('NagiosQL config path');
$arrTemplate['STEP2_VALUE5_3'] = htmlspecialchars($_SESSION['install']['qlpath'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT5_4'] = $myInstClass->translate('Nagios config path');
$arrTemplate['STEP2_VALUE5_4'] = htmlspecialchars($_SESSION['install']['nagpath'], ENT_QUOTES, 'utf-8');
$arrTemplate['STEP2_TEXT5_5'] = $myInstClass->translate('Both path values were stored in your configuration target '
. 'settings for localhost.');
$arrTemplate['STEP2_TEXT5_6'] = $myInstClass->translate('If you select the create path option, be sure that the '
. 'NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the '
. "required subdirectories in your localhost's filesystem (hosts, services, backup etc.)");
$arrTemplate['INSTALL_FIELDS'] = '';
/*
Setting some template values to blank
*/
$arrTemplate['STEP2_TEXT1_2'] = '';
/*
Conditional checks
*/
if ($_SESSION['install']['mode'] === 'Update') {
$arrTemplate['STEP2_TEXT1_2'] = '<p style="color:red;"><b>' . $myInstClass->translate('Please backup your '
. 'database before proceeding!') . "</b></p>\n";
$arrTemplate['INST_VISIBLE'] = 'hidefield';
} else {
$arrTemplate['INSTALL_FIELDS'] = ',tfDBprivUser,tfDBprivPass,tfQLuser,tfQLpass';
$arrTemplate['INST_VISIBLE'] = 'showfield';
}
/*
Write content
*/
$strContent = $myInstClass->parseTemplate($arrTemplate, $preIncludeContent);
echo $strContent;