* * This file is part of Easy-WI. * * Easy-WI is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Easy-WI is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Easy-WI. If not, see . * * Diese Datei ist Teil von Easy-WI. * * Easy-WI ist Freie Software: Sie koennen es unter den Bedingungen * der GNU General Public License, wie von der Free Software Foundation, * Version 3 der Lizenz oder (nach Ihrer Wahl) jeder spaeteren * veroeffentlichten Version, weiterverbreiten und/oder modifizieren. * * Easy-WI wird in der Hoffnung, dass es nuetzlich sein wird, aber * OHNE JEDE GEWAEHELEISTUNG, bereitgestellt; sogar ohne die implizite * Gewaehrleistung der MARKTFAEHIGKEIT oder EIGNUNG FUER EINEN BESTIMMTEN ZWECK. * Siehe die GNU General Public License fuer weitere Details. * * Sie sollten eine Kopie der GNU General Public License zusammen mit diesem * Programm erhalten haben. Wenn nicht, siehe . */ ini_set('display_errors', 1); error_reporting(E_ALL|E_STRICT); define('EASYWIDIR', dirname(dirname(__FILE__))); class UpdateResponse { public $response = ''; function __construct() { $this->response = ''; } function add ($newtext) { $this->response .= $newtext; } function __destruct() { unset($this->response); } } require_once(EASYWIDIR . '/stuff/methods/functions.php'); require_once(EASYWIDIR . '/stuff/methods/vorlage.php'); $currentStep = (isset($_GET['step']) and $_GET['step'] > 0 and $_GET['step'] < 10) ? (int) $_GET['step'] : 0; $developer = (isset($_GET['developer']) and $_GET['developer'] == 'Y') ? 'Y' : 'N'; $developerGetParameter = '&developer=' . $developer; $progressPercent = (100 / 9) * $currentStep ; $acceptLanguage = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0 , 2)); $fallbackLanguage = (file_exists(EASYWIDIR . '/install/languages/' . $acceptLanguage . '.xml')) ? $acceptLanguage : 'en'; $menuLanguage = (isset($_GET['language']) and strlen($_GET['language']) == 2 and file_exists(EASYWIDIR . '/install/languages/' . $_GET['language'] . '.xml')) ? $_GET['language'] : $fallbackLanguage; $languageGetParameter = '&language=' . $menuLanguage; $languageObject = simplexml_load_file(EASYWIDIR . '/install/languages/' . $menuLanguage . '.xml'); $displayToUser = ''; $systemCheckOk = array(); $systemCheckError = array(); $easyWiVersion = ($developer == 'Y') ? '6.2.2' : '6.2.2'; if ($currentStep == 0) { $selectedDeveloper = ($developer == 'Y') ? "selected='selected'" : ''; $apiResponse = webhostRequest('api.github.com', $_SERVER['HTTP_HOST'], '/repos/easy-wi/developer/' . (($developer == 'Y') ? 'tags' : 'releases/latest'), null, 443); $json = @json_decode($apiResponse); $displayToUser = "
"; if (!$json or ($developer == 'N' and !is_object($json)) or ($developer == 'Y' and !is_array($json)) or ($developer == 'N' and property_exists($json, 'tag_name') and $easyWiVersion == $json->tag_name) or ($developer == 'Y' and is_object($json[0]) and property_exists($json[0], 'name') and $easyWiVersion == $json[0]->name )) { $displayToUser .= "

{$languageObject->welcome_header}

{$languageObject->welcome_text}

"; } else { $apiVersion = ($developer == 'Y') ? $json[0]->name : $json->tag_name; $displayToUser .= "
{$languageObject->welcome_old_version}{$apiVersion}

{$languageObject->welcome_header}

{$languageObject->welcome_text}

"; } } else { if (version_compare(PHP_VERSION, '7.4.0') >= 0) { $systemCheckOk['php'] = $languageObject->system_ok_php_version . PHP_VERSION; } else { $systemCheckError['php'] = $languageObject->error_system_php_version . PHP_VERSION; } $modules = array('openssl', 'json', 'hash', 'ftp', 'SimpleXML', 'curl', 'gd', 'PDO', 'pdo_mysql', 'zip'); foreach ($modules as $module) { if (extension_loaded($module)) { $okField = "system_ok_$module"; $systemCheckOk[$module] = $languageObject->$okField; } else { $errorField = "error_system_$module"; $systemCheckError[$module] = $languageObject->$errorField; } } $functions = array('fopen'); foreach ($functions as $function) { if (function_exists($function)) { $okField = "system_ok_$function"; $systemCheckOk[$function] = $languageObject->$okField; } else { $errorField = "error_system_$function"; $systemCheckError[$function] = $languageObject->$errorField; } } $folderArray = array( 'css/', 'css/default/', 'images/', 'images/flags', 'images/games/', 'images/games/icons/', 'js/', 'js/default/', 'keys/', 'languages/', 'languages/default/', 'languages/default/de/', 'languages/default/dk/', 'languages/default/uk', 'languages/default/it', 'languages/default/pt', 'languages/default/ru', 'stuff/', 'stuff/admin/', 'stuff/api/', 'stuff/cms/', 'stuff/custom_modules/', 'stuff/jobs/', 'stuff/methods/', 'stuff/user/', 'template/', 'template/default/', 'third_party/', 'tmp/' ); foreach ($folderArray as $folder) { if (is_dir(EASYWIDIR . "/{$folder}")) { $handle = @fopen(EASYWIDIR . "/{$folder}test.txt", "w+"); if ($handle) { fclose($handle); unlink(EASYWIDIR . "/{$folder}test.txt"); $systemCheckOk['folders'][] = "{$languageObject->system_check_ok_folder_1} {$folder} {$languageObject->system_check_ok_folder_2}"; } else { $systemCheckError['folders'][] = "{$languageObject->system_check_error_folder_not_writable_1} {$folder} {$languageObject->system_check_error_folder_not_writable_2}"; } } else { $systemCheckError['folders'][] = "{$languageObject->system_check_error_folder_not_exist_1} {$folder} {$languageObject->system_check_error_folder_not_exist_2}"; } } } if ($currentStep == 1) { if (count($systemCheckError) == 0) { $displayToUser .= ""; } foreach ($systemCheckError as $v) { if (is_array($v)) { foreach ($v as $v2) { $displayToUser .= "
{$v2}
"; } } else { $displayToUser .= "
{$v}
"; } } foreach ($systemCheckOk as $v) { if (is_array($v)) { foreach ($v as $v2) { $displayToUser .= "
{$v2}
"; } } else { $displayToUser .= "
{$v}
"; } } if (count($systemCheckError) == 0) { $displayToUser .= ""; } } if ($currentStep == 2 and count($systemCheckError) == 0) { $host = 'localhost'; $db = ''; $user = ''; $pwd = ''; $aeskey = passwordgenerate(20); if (file_exists(EASYWIDIR . '/stuff/config.php')) { require_once(EASYWIDIR . '/stuff/config.php'); } if (file_exists(EASYWIDIR . '/stuff/keyphrasefile.php')) { require_once(EASYWIDIR . '/stuff/keyphrasefile.php'); } $displayToUser = "

{$languageObject->aeskey2}

{$languageObject->aeskey3}

"; } else if ($currentStep > 2 and count($systemCheckError) == 0) { if ($currentStep == 3 and isset($_POST['db'])) { try { $sql = new PDO("mysql:host={$_POST['host']};dbname={$_POST['db']}", $_POST['user'], $_POST['pwd'], array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $sql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $configFp = @fopen(EASYWIDIR . '/stuff/config.php', "w+"); if ($configFp) { $configdata = "{$languageObject->error_config_php_data}"; } $keyFp = @fopen(EASYWIDIR . '/stuff/keyphrasefile.php', "w+"); if ($keyFp) { $configdata='{$languageObject->error_keyphrase_php_create}"; } } catch(PDOException $error) { $systemCheckError['db_connect'] = "
{$error->getMessage()}
"; } } if (!isset($sql) ) { if (file_exists(EASYWIDIR . '/stuff/config.php') and file_exists(EASYWIDIR . '/stuff/keyphrasefile.php')) { if ($currentStep == 3 and isset($_POST['db'])) { $displayToUser .= "
{$languageObject->ok_files_created}
"; } require_once(EASYWIDIR . '/stuff/config.php'); require_once(EASYWIDIR . '/stuff/keyphrasefile.php'); if (isset($host) and isset($db) and isset($user) and isset($pwd)) { try { $sql = new PDO("mysql:host={$host};dbname={$db}", $user, $pwd, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $sql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $error) { $systemCheckError['db_connect'] = "
{$error->getMessage()}
"; } } else { $systemCheckError['config.php'] = "
{$languageObject->error_config_php_data}
"; } } else { if (isset($_POST['db'])) { $systemCheckError['keyphrasefile.php'] = "
{$languageObject->error_keyphrase_php_create}
"; } else { $systemCheckError['config.php'] = "
{$languageObject->error_config_keyphrase_php_missing}
"; } } } } if ($currentStep == 3 and count($systemCheckError) == 0) { $displayToUser .= "
{$languageObject->ok_files_created}
"; $displayToUser .= "
{$languageObject->ok_db_connect}
"; $displayToUser .= ""; } if ($currentStep == 4 and count($systemCheckError) == 0) { try { $response = new UpdateResponse(); require_once(EASYWIDIR . '/stuff/methods/class_tables.php'); $tables = new Tables($db); $tables->createMissingTables(); foreach($tables->getExecutedSql() as $change){ if ($change) { $response->add($change . '
'); } } if (strlen($response->response) > 0) { $displayToUser .= "
{$languageObject->ok_db_tables_create}
"; $displayToUser .= "
{$response->response}
"; } else { $displayToUser .= "
{$languageObject->ok_db_tables_create}
"; } $displayToUser .= ""; } catch(PDOException $error) { $systemCheckError['tables_add.php'] = "
{$error->getMessage()}" . implode("\r\n", $tables->getExecutedSql()) . "
"; } } if ($currentStep == 5 and count($systemCheckError) == 0) { try { $response = new UpdateResponse(); require_once(EASYWIDIR . '/stuff/methods/class_tables.php'); $tables = new Tables($db); $response->add('Repairing tables if needed.
'); $tables->correctTablesStatus(); $tables->correctExistingTables(); foreach($tables->getExecutedSql() as $change){ $response->add($change . '
'); } if (strpos($response->response, 'Error: no such table:') !== false) { $systemCheckError['tables_repair.php'] = "
{$response->response}
"; } else { if (strlen($response->response) > 0) { $displayToUser .= "
{$languageObject->ok_db_tables_check_repair}
"; $displayToUser .= "
{$response->response}
"; } else { $displayToUser .= "
{$languageObject->ok_db_tables_check}
"; } $displayToUser .= ""; } } catch(PDOException $error) { $systemCheckError['tables_repair.php'] = "
{$error->getMessage()}
"; } } if ($currentStep == 6 and count($systemCheckError) == 0) { $cname = ''; $email = ''; $query = $sql->prepare("SELECT `cname`,`mail` FROM `userdata` WHERE `id`=1"); $query->execute(); while ($row = $query->fetch(PDO::FETCH_ASSOC)) { $cname = $row['cname']; $email = $row['mail']; } if (isset($_POST['passw1'])) { if ($_POST['passw1'] != $_POST['passw2']) { $displayToUser .= "
{$languageObject->error_password}
"; } if (!preg_match('/^[\w\S]{6,120}$/', $_POST['passw1'])) { $displayToUser .= "
{$languageObject->passwords_not_meet_req}
"; } if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $email = $_POST['email']; } else { $displayToUser .= "
{$languageObject->error_email}
"; } if (strlen($_POST['cname']) == 0) { $displayToUser .= "
{$languageObject->error_cname}
"; } else { $cname = $_POST['cname']; } } if (!isset($_POST['passw1']) or strlen($displayToUser) > 0) { $displayToUser .= "
"; } else { try { $query = $sql->prepare("INSERT INTO `userdata` (`id`,`cname`,`mail`,`security`,`accounttype`,`creationTime`,`updateTime`) VALUES (1,?,?,?,'a',NOW(),NOW()) ON DUPLICATE KEY UPDATE `cname`=VALUES(`cname`),`mail`=VALUES(`mail`)"); $query->execute(array($cname, $email, md5($_POST['passw1']))); $query = $sql->prepare("INSERT INTO `usergroups` (`id`,`defaultgroup`,`name`,`grouptype`,`root`,`miniroot`) VALUES (1,'Y','Admin Default','a','Y','N') ON DUPLICATE KEY UPDATE `id`=VALUES(`id`)"); $query->execute(); $query = $sql->prepare("INSERT INTO `usergroups` (`id`,`defaultgroup`,`name`,`grouptype`,`root`,`miniroot`) VALUES (2,'Y','Reseller Default','r','Y','N') ON DUPLICATE KEY UPDATE `id`=VALUES(`id`)"); $query->execute(); $query = $sql->prepare("INSERT INTO `usergroups` (`id`,`defaultgroup`,`name`,`grouptype`,`root`,`miniroot`) VALUES (3,'Y','User Default','u','N','Y') ON DUPLICATE KEY UPDATE `id`=VALUES(`id`)"); $query->execute(); $query = $sql->prepare("INSERT INTO `userdata_groups` (`userID`,`groupID`) VALUES (1,1) ON DUPLICATE KEY UPDATE `userID`=VALUES(`userID`)"); $query->execute(); $displayToUser .= "
{$languageObject->ok_admin_user}
"; $displayToUser .= ""; } catch(PDOException $error) { $systemCheckError['tables_repair.php'] = "
{$error->getMessage()}
"; } } } if ($currentStep == 7 and count($systemCheckError) == 0) { $languages = array(); $language = ''; $prefix1 = "Y"; $prefix2 = "user"; $faillogins = 5; $brandname = "by myhost.com"; $selectedCaptcha = ''; $selectedPrefix = ''; $query = $sql->prepare("SELECT `pageurl` FROM `page_settings` WHERE `resellerid`=0"); $query->execute(); $installUrl = (string) $query->fetchColumn(); if (strlen($installUrl) == 0) { $installUrl = 'http://' . $_SERVER['SERVER_NAME'] . '/'; } if (strlen($_SERVER['SERVER_NAME']) == 0 and isset($_SERVER['HTTP_REFERER'])) { $installUrl = str_replace(array('&language=de', '&language=en', '&language=dk'), '', str_replace('install/install.php?step=6', '', $_SERVER['HTTP_REFERER'])); } while (substr($installUrl, -2) == '//') { $installUrl = substr($installUrl, 0, strlen($installUrl) -1 ); } $defaultTimeZone = (@ini_get('date.timezone') != "") ? ini_get('date.timezone') : 'Europe/Berlin'; $query = $sql->prepare("SELECT `mail` FROM `userdata` WHERE `id`=1"); $query->execute(); $email = $query->fetchColumn(); $query = $sql->prepare("SELECT `language`,`prefix1`,`prefix2`,`faillogins`,`brandname` FROM `settings` WHERE `resellerid`=0 LIMIT 1"); $query->execute(); while ($row = $query->fetch(PDO::FETCH_ASSOC)) { $language = $row['language']; $prefix1 = $row['prefix1']; $prefix2 = $row['prefix2']; $faillogins = $row['faillogins']; $brandname = $row['brandname']; } $query = $sql->prepare("SELECT `email_setting_value` FROM `settings_email` WHERE `reseller_id`=0 AND `email_setting_name`='email' LIMIT 1"); $query->execute(); while ($row = $query->fetch(PDO::FETCH_ASSOC)) { $email = $row['email_setting_value']; } if (isset($_POST['email'])) { if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $email = $_POST['email']; } else { $displayToUser .= "
{$languageObject->error_email}
"; } } if ($captcha == 1) { $selectedCaptcha = 'selected="selected"'; } if ($prefix1 == 'Y') { $selectedPrefix = 'selected="selected"'; } if (is_dir(EASYWIDIR . "/languages/default/")){ $dirs = scandir(EASYWIDIR . "/languages/default/"); foreach ($dirs as $row) { if (preg_match("/^[a-z]{2}+$/", $row)) { $languages[] = ($row == $menuLanguage) ? "" : ""; } } } $languages = implode('', $languages); if (!isset($_POST['email']) or strlen($displayToUser) > 0) { $displayToUser .= "

{$languageObject->email2}

{$languageObject->captcha_2}

{$languageObject->faillogins2}

{$languageObject->brandname2}

{$languageObject->prefix2}

"; } else { try { $query = $sql->prepare("INSERT INTO `easywi_statistics_current` (`userID`) VALUES (0) ON DUPLICATE KEY UPDATE `userID`=`userID`"); $query->execute(); $query = $sql->prepare("INSERT INTO `page_settings` (`id`,`pageurl`,`resellerid`) VALUES (1,?,0) ON DUPLICATE KEY UPDATE `pageurl`=VALUES(`pageurl`)"); $query->execute(array($_POST['installUrl'])); $query = $sql->prepare("INSERT INTO `settings` (`id`,`template`,`language`,`prefix1`,`prefix2`,`faillogins`,`brandname`,`developer`,`cronjob_ips`,`imageserver`,`resellerid`) VALUES (1,'default',?,?,?,?,?,?,'','images.easy-wi.com::easy-wi',0) ON DUPLICATE KEY UPDATE `language`=VALUES(`language`),`prefix1`=VALUES(`prefix1`),`prefix2`=VALUES(`prefix2`),`faillogins`=VALUES(`faillogins`),`brandname`=VALUES(`brandname`),`developer`=VALUES(`developer`),`imageserver`=VALUES(`imageserver`)"); $query->execute(array($_POST['language'], $_POST['prefix1'], $_POST['prefix2'], $_POST['faillogins'], $_POST['brandname'], $developer)); $query = $sql->prepare("INSERT INTO `settings_email` (`reseller_id`,`email_setting_name`,`email_setting_value`) VALUES (0,'email',?) ON DUPLICATE KEY UPDATE `email_setting_value`=VALUES(`email_setting_value`)"); $query->execute(array($_POST['email'])); $query = $sql->prepare("INSERT INTO `eac` (`id`,`resellerid`) VALUES (1,0) ON DUPLICATE KEY UPDATE `resellerid`=`resellerid`"); $query->execute(); $query = $sql->prepare("INSERT INTO `lendsettings` (`id`,`resellerid`) VALUES (1,0) ON DUPLICATE KEY UPDATE `resellerid`=`resellerid`"); $query->execute(); $query = $sql->prepare("INSERT INTO `traffic_settings` (`id`,`type`) VALUES (1,'mysql') ON DUPLICATE KEY UPDATE `type`=`type`"); $query->execute(); $query = $sql->prepare("INSERT INTO `easywi_version` (`id`,`version`,`de`,`en`) VALUES (1,'{$easyWiVersion}','','') ON DUPLICATE KEY UPDATE `id`=`id`"); $query->execute(); $query = $sql->prepare("INSERT INTO `page_pages` (`id`,`authorid`,`type`) VALUES (1,0,'about') ON DUPLICATE KEY UPDATE `id`=`id`"); $query->execute(); $query = $sql->prepare("INSERT INTO `feeds_settings` (`settingsID`,`resellerID`) VALUES (1,0) ON DUPLICATE KEY UPDATE `settingsID`=`settingsID`"); $query->execute(); $query = $sql->prepare("INSERT INTO `settings_email_category` (`id`, `name`, `reseller_id`) VALUES (1, 'vServer', 0), (2, 'Server', 0), (3, 'Ticket', 0), (4, 'General', 0), (5, 'VoiceServer', 0), (6, 'GameServer', 0) ON DUPLICATE KEY UPDATE `id`=`id`"); $query->execute(); //Install E-Mail template include(EASYWIDIR . '/stuff/data/email_templates.php'); foreach ($emailTemplates as $template) { $query = $sql->prepare($template['query']); $query->execute(array(0)); } $query = $sql->prepare("INSERT INTO `resellerimages` (`id`, `distro`, `description`, `bitversion`, `pxelinux`) VALUES (1, 'other', 'Rescue 32bit', 32, 'DISPLAY boot.txt\r\nDEFAULT rescue\r\nTIMEOUT 10\r\n\r\nLABEL default\r\n kernel /rescue/vmlinuz-rescue\r\n append initrd=/rescue/initram.igz setkmap=de dodhcp rootpass=%rescuepass% scandelay=5 boothttp=http://1.1.1.1/rescue/32/sysrcd.dat') ON DUPLICATE KEY UPDATE `id`=`id`"); $query->execute(); $query = $sql->prepare("INSERT INTO `resellerimages` (`id`, `distro`, `description`, `bitversion`, `pxelinux`) VALUES (2, 'other', 'Rescue 64bit', 64, 'DISPLAY boot.txt\r\nDEFAULT rescue\r\nTIMEOUT 10\r\n\r\nLABEL default\r\n kernel /rescue/vmlinuz-rescue\r\n append initrd=/rescue/initram.igz setkmap=de dodhcp rootpass=%rescuepass% scandelay=5 boothttp=http://1.1.1.1/rescue/64/sysrcd.dat') ON DUPLICATE KEY UPDATE `id`=`id`"); $query->execute(); $configFp = @fopen(EASYWIDIR . '/stuff/config.php', "w+"); if ($configFp) { $configdata = "{$languageObject->ok_configuration}"; $displayToUser .= ""; } catch(PDOException $error) { $displayToUser = "
{$error->getMessage()}
"; } } } if ($currentStep == 8 and count($systemCheckError) == 0) { if (!isset($_POST['submit'])) { $displayToUser .= "
{$languageObject->games_insert}
"; $displayToUser .= "
"; } else { try { include(EASYWIDIR . '/stuff/data/gameslist.php'); $displayToUser .= ""; $displayToUser .= "
{$languageObject->ok_gameserver_data}
"; $query = $sql->prepare("SELECT COUNT(`id`) AS `amount` FROM `servertypes` WHERE `shorten`=? AND `resellerid`=0 LIMIT 1"); $query2 = $sql->prepare("INSERT INTO `servertypes` (`type`,`steamgame`,`appID`,`serverID`,`updates`,`shorten`,`description`,`gamebinary`,`gamebinaryWin`,`binarydir`,`modfolder`,`fps`,`slots`,`map`,`cmd`,`modcmds`,`tic`,`gameq`,`gamemod`,`gamemod2`,`configs`,`configedit`,`portStep`,`portMax`,`portOne`,`portTwo`,`portThree`,`portFour`,`portFive`,`useQueryPort`,`mapGroup`,`protected`,`protectedSaveCFGs`,`ramLimited`,`os`,`copyStartBinary`,`steamGameserverToken`) VALUES ('',:steamgame,:appID,:serverID,:updates,:shorten,:description,:gamebinary,:gamebinaryWin,:binarydir,:modfolder,:fps,:slots,:map,:cmd,:modcmds,:tic,:gameq,:gamemod,:gamemod2,:configs,:configedit,:portStep,:portMax,:portOne,:portTwo,:portThree,:portFour,:portFive,:useQueryPort,:mapGroup,:protected,:protectedSaveCFGs,:ramLimited,:os,:copyStartBinary,:steamGameserverToken)"); $query3 = $sql->prepare("UPDATE `servertypes` SET `steamgame`=:steamgame,`appID`=:appID,`serverID`=:serverID,`updates`=:updates,`shorten`=:shorten,`description`=:description,`gamebinary`=:gamebinary,`gamebinaryWin`=:gamebinaryWin,`binarydir`=:binarydir,`modfolder`=:modfolder,`fps`=:fps,`slots`=:slots,`map`=:map,`cmd`=:cmd,`modcmds`=:modcmds,`tic`=:tic,`gameq`=:gameq,`gamemod`=:gamemod,`gamemod2`=:gamemod2,`configs`=:configs,`configedit`=:configedit,`portStep`=:portStep,`portMax`=:portMax,`portOne`=:portOne,`portTwo`=:portTwo,`portThree`=:portThree,`portFour`=:portFour,`portFive`=:portFive,`useQueryPort`=:useQueryPort,`mapGroup`=:mapGroup,`protected`=:protected,`protectedSaveCFGs`=:protectedSaveCFGs,`ramLimited`=:ramLimited,`os`=:os,`copyStartBinary`=:copyStartBinary,`steamGameserverToken`=:steamGameserverToken WHERE `shorten`=:shorten AND `resellerid`=0 LIMIT 1"); foreach ($gameImages as $image) { if (count($image) == 36) { $query->execute(array($image[':shorten'])); $imageExists = (int) $query->fetchColumn(); if ($imageExists == 0) { $query2->execute($image); $affectedRows = $query2->rowCount(); } else { $query3->execute($image); $affectedRows = $query3->rowCount(); } if ($affectedRows == 1) { $displayToUser .= "
{$image[':description']}
"; } } else { $displayToUser .= "
{$languageObject->error_game_insert} " . count($image) . " {$image[':description']}
"; } } require_once(EASYWIDIR . '/stuff/data/addonslist.php'); $query = $sql->prepare("SELECT `id` FROM `addons` WHERE `addon`=? AND `resellerid`=0 LIMIT 1"); $query2 = $sql->prepare("INSERT INTO `addons` (`active`,`depending`,`paddon`,`addon`,`type`,`folder`,`menudescription`,`configs`,`cmd`,`rmcmd`,`resellerid`) VALUES ('Y',?,?,?,?,?,?,?,?,?,0)"); $query3 = $sql->prepare("SELECT `id` FROM `servertypes` WHERE `shorten`=? AND `resellerid`=0 LIMIT 1"); $query4 = $sql->prepare("INSERT INTO `addons_allowed` (`addon_id`,`servertype_id`,`reseller_id`) VALUES (?,?,0)"); foreach ($gameAddons as $addon) { if (count($addon) == 10) { $query->execute(array($addon[':addon'])); $addonID = $query->fetchColumn(); if ($addonID < 1) { $dependsID = 0; if (strlen($addon[':depends']) > 0) { $query->execute(array($addon[':depends'])); $dependsID = (int) $query->fetchColumn(); } $query2->execute(array($dependsID, $addon[':paddon'], $addon[':addon'], $addon[':type'], $addon[':folder'], $addon[':menudescription'], $addon[':configs'], $addon[':cmd'], $addon[':rmcmd'])); $addonID = (int) $sql->lastInsertId(); if (preg_match('/^[\d]{1,}$/', $addonID) and $addonID != 0) { foreach ($addon[':supported'] as $supported) { $query3->execute(array($supported)); $serverTypeID = (int) $query3->fetchColumn(); if (preg_match('/^[\d]{1,}$/', $serverTypeID) and $serverTypeID != 0) { $query4->execute(array($addonID, $serverTypeID)); } } } $displayToUser .= "
{$addon[':menudescription']}
"; } } } $displayToUser .= ""; } catch(PDOException $error) { $displayToUser = "
{$error->getMessage()}
"; } } } if ($currentStep == 9 and count($systemCheckError) == 0) { // Deactivate CMS module by default $query = $sql->prepare("SELECT `id` FROM `modules` WHERE `get`='pn' LIMIT 1"); $query->execute(); $cmdModuleId = (int) $query->fetchColumn(); if ($cmdModuleId > 0) { $query = $sql->prepare("UPDATE `modules` SET `active`='N' WHERE `id`=? LIMIT 1"); $query->execute(array($cmdModuleId)); } else { $query = $sql->prepare("INSERT INTO `modules` (`get`,`sub`,`file`,`active`,`type`) VALUES ('pn','pn','','N','C')"); $query->execute(); } function rmr($dir) { if (is_dir($dir)) { $dircontent = scandir($dir); foreach ($dircontent as $c) { if ($c != '.' and $c != '..' and is_dir($dir . '/' . $c)) { rmr($dir . '/' . $c); } else if ($c != '.' and $c != '..') { @unlink($dir . '/' . $c); } } @rmdir($dir); } else { @unlink($dir); } } rmr(EASYWIDIR . "/install"); $query = $sql->prepare("UPDATE `settings` SET `lastCronReboot`=:futuretime,`lastCronCloud`=:futuretime,`lastCronJobs`=:futuretime,`lastCronUpdates`=:futuretime,`lastCronStatus`=:futuretime"); $query->execute(array(':futuretime' => strtotime("+2 hours"))); if (file_exists(EASYWIDIR . "/install")) { $displayToUser .= "
{$languageObject->install_done_folder}
"; } $displayToUser .= "
{$languageObject->install_done}
"; $displayPHPUser = (isset($_SERVER['USER'])) ? $_SERVER['USER'] : 'changeToPHPUser'; $displayToUser .= "

{$languageObject->cron_internal} (/etc/crontab)

{$languageObject->cron_internal_text}
0 */1 * * * {$displayPHPUser} cd " . EASYWIDIR . " && timeout 300 php ./reboot.php >/dev/null 2>&1
*/5 * * * * {$displayPHPUser} cd " . EASYWIDIR . " && timeout 290 php ./statuscheck.php >/dev/null 2>&1
*/1 * * * * {$displayPHPUser} cd " . EASYWIDIR . " && timeout 290 php ./startupdates.php >/dev/null 2>&1
*/5 * * * * {$displayPHPUser} cd " . EASYWIDIR . " && timeout 290 php ./jobs.php >/dev/null 2>&1
*/10 * * * * {$displayPHPUser} cd " . EASYWIDIR . " && timeout 290 php ./cloud.php >/dev/null 2>&1
"; $displayToUser .= "

{$languageObject->cron_internal} (crontab -e)

{$languageObject->cron_internal_text}
0 */1 * * * cd " . EASYWIDIR . " && timeout 300 php ./reboot.php >/dev/null 2>&1
*/5 * * * * cd " . EASYWIDIR . " && timeout 290 php ./statuscheck.php >/dev/null 2>&1
*/1 * * * * cd " . EASYWIDIR . " && timeout 290 php ./startupdates.php >/dev/null 2>&1
*/5 * * * * cd " . EASYWIDIR . " && timeout 290 php ./jobs.php >/dev/null 2>&1
*/10 * * * * cd " . EASYWIDIR . " && timeout 290 php ./cloud.php >/dev/null 2>&1
"; $query = $sql->prepare("SELECT `pageurl` FROM `page_settings` WHERE `id`=1 LIMIT 1"); $query->execute(); $pageUrl = $query->fetchColumn(); $displayToUser .= "

{$languageObject->cron_external} (/etc/crontab)

{$languageObject->cron_external_text}
0 */1 * * * ExternalSSH2User wget -q --no-check-certificate -O - {$pageUrl}reboot.php >/dev/null 2>&1
*/5 * * * * ExternalSSH2User wget -q --no-check-certificate -O - {$pageUrl}statuscheck.php >/dev/null 2>&1
*/1 * * * * ExternalSSH2User wget -q --no-check-certificate -O - {$pageUrl}startupdates.php >/dev/null 2>&1
*/5 * * * * ExternalSSH2User wget -q --no-check-certificate -O - {$pageUrl}jobs.php >/dev/null 2>&1
*/10 * * * * ExternalSSH2User wget -q --no-check-certificate -O - {$pageUrl}cloud.php >/dev/null 2>&1
"; $displayToUser .= "

{$languageObject->cron_external} (crontab -e)

{$languageObject->cron_external_text}
0 */1 * * * wget -q --no-check-certificate -O - {$pageUrl}reboot.php >/dev/null 2>&1
*/5 * * * * wget -q --no-check-certificate -O - {$pageUrl}statuscheck.php >/dev/null 2>&1
*/1 * * * * wget -q --no-check-certificate -O - {$pageUrl}startupdates.php >/dev/null 2>&1
*/5 * * * * wget -q --no-check-certificate -O - {$pageUrl}jobs.php >/dev/null 2>&1
*/10 * * * * wget -q --no-check-certificate -O - {$pageUrl}cloud.php >/dev/null 2>&1
"; } if (strlen($displayToUser) == 0 and count($systemCheckError) > 0) { foreach ($systemCheckError as $v) { if (is_array($v)) { foreach ($v as $v2) { $displayToUser .= "
{$v2}
"; } } else { $displayToUser .= "
{$v}
"; } } } ?> Easy-WI Installer