(refactor) Refactor index.php

This commit is contained in:
AGuyNamedJens 2023-03-30 01:10:55 +02:00 committed by IceToast
parent 4d97c1473b
commit 086f685780

View file

@ -52,8 +52,8 @@ $cardheader = '
</div> </div>
<div class="card-body bg-light">'; <div class="card-body bg-light">';
if (! isset($_GET['step'])) { if (!isset($_GET['step'])) {
if (! file_exists('../../.env')) { if (!file_exists('../../.env')) {
echo run_console('cp .env.example .env'); echo run_console('cp .env.example .env');
} }
echo $cardheader; ?> echo $cardheader; ?>
@ -71,11 +71,11 @@ if (! isset($_GET['step'])) {
<p class="<?php echo count(checkExtensions()) == 0 ? 'ok' : 'notok'; ?>"> Missing <p class="<?php echo count(checkExtensions()) == 0 ? 'ok' : 'notok'; ?>"> Missing
php-extentions: <?php echo count(checkExtensions()) == 0 ? 'none' : ''; php-extentions: <?php echo count(checkExtensions()) == 0 ? 'none' : '';
foreach (checkExtensions() as $ext) { foreach (checkExtensions() as $ext) {
echo $ext.', '; echo $ext . ', ';
} }
echo count(checkExtensions()) == 0 ? '' : '(Proceed anyway)'; ?></p> echo count(checkExtensions()) == 0 ? '' : '(Proceed anyway)'; ?></p>
<!-- <p class="<?php echo getZipVersion() === 'OK' ? 'ok' : 'notok'; ?>"> Zip <!-- <p class="<?php echo getZipVersion() === 'OK' ? 'ok' : 'notok'; ?>"> Zip
@ -98,70 +98,70 @@ if (! isset($_GET['step'])) {
} }
if (isset($_GET['step']) && $_GET['step'] == 2) { if (isset($_GET['step']) && $_GET['step'] == 2) {
echo $cardheader; ?> echo $cardheader; ?>
<p class="login-box-msg">Lets start with your Database</p> <p class="login-box-msg">Lets start with your Database</p>
<?php if (isset($_GET['message'])) { <?php if (isset($_GET['message'])) {
echo "<p class='notok'>".$_GET['message'].'</p>'; echo "<p class='notok'>" . $_GET['message'] . '</p>';
} ?> } ?>
<form method="POST" enctype="multipart/form-data" class="mb-3" <form method="POST" enctype="multipart/form-data" class="mb-3"
action="/install/forms.php" name="checkDB"> action="/install/forms.php" name="checkDB">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="form-group"> <div class="form-group">
<div class="custom-control mb-3"> <div class="custom-control mb-3">
<label for="database">Database Driver</label> <label for="database">Database Driver</label>
<input x-model="databasedriver" id="databasedriver" name="databasedriver" <input x-model="databasedriver" id="databasedriver" name="databasedriver"
type="text" required type="text" required
value="mysql" class="form-control"> value="mysql" class="form-control">
</div>
</div> </div>
</div> <div class="form-group">
<div class="form-group"> <div class="custom-control mb-3">
<div class="custom-control mb-3"> <label for="databasehost">Database Host</label>
<label for="databasehost">Database Host</label> <input x-model="databasehost" id="databasehost" name="databasehost" type="text"
<input x-model="databasehost" id="databasehost" name="databasehost" type="text" required
required value="127.0.0.1" class="form-control">
value="127.0.0.1" class="form-control"> </div>
</div> </div>
</div> <div class="form-group">
<div class="form-group"> <div class="custom-control mb-3">
<div class="custom-control mb-3"> <label for="databaseport">Database Port</label>
<label for="databaseport">Database Port</label> <input x-model="databaseport" id="databaseport" name="databaseport"
<input x-model="databaseport" id="databaseport" name="databaseport" type="number" required
type="number" required value="3306" class="form-control">
value="3306" class="form-control"> </div>
</div> </div>
</div> <div class="form-group">
<div class="form-group"> <div class="custom-control mb-3">
<div class="custom-control mb-3"> <label for="databaseuser">Database User</label>
<label for="databaseuser">Database User</label> <input x-model="databaseuser" id="databaseuser" name="databaseuser" type="text"
<input x-model="databaseuser" id="databaseuser" name="databaseuser" type="text" required
required value="controlpaneluser" class="form-control">
value="controlpaneluser" class="form-control"> </div>
</div> </div>
</div> <div class="form-group">
<div class="form-group"> <div class="custom-control mb-3">
<div class="custom-control mb-3"> <label for="databaseuserpass">Database User Password</label>
<label for="databaseuserpass">Database User Password</label> <input x-model="databaseuserpass" id="databaseuserpass" name="databaseuserpass"
<input x-model="databaseuserpass" id="databaseuserpass" name="databaseuserpass" type="text" required
type="text" required class="form-control ">
class="form-control "> </div>
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="database">Database</label>
<input x-model="database" id="database" name="database" type="text" required
value="controlpanel" class="form-control">
</div> </div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="database">Database</label>
<input x-model="database" id="database" name="database" type="text" required
value="controlpanel" class="form-control">
</div>
</div>
</div> </div>
<button class="btn btn-primary" name="checkDB">Submit</button>
</div> </div>
</form>
<button class="btn btn-primary" name="checkDB">Submit</button>
</div>
</form>
</div> </div>
@ -169,287 +169,291 @@ if (isset($_GET['step']) && $_GET['step'] == 2) {
<?php <?php
} }
if (isset($_GET['step']) && $_GET['step'] == 2.5) { if (isset($_GET['step']) && $_GET['step'] == 2.5) {
echo $cardheader; ?> echo $cardheader; ?>
<p class="login-box-msg">Lets feed your Database and generate some security keys!</p> <p class="login-box-msg">Lets feed your Database and generate some security keys!</p>
<p> This process might take a while. Please do not refresh or close this page!</p> <p> This process might take a while. Please do not refresh or close this page!</p>
<?php if (isset($_GET['message'])) { <?php if (isset($_GET['message'])) {
echo "<p class='notok'>".$_GET['message'].'</p>'; echo "<p class='notok'>" . $_GET['message'] . '</p>';
} ?> } ?>
<form method="POST" enctype="multipart/form-data" class="mb-3" <form method="POST" enctype="multipart/form-data" class="mb-3"
action="/install/forms.php" name="feedDB"> action="/install/forms.php" name="feedDB">
<button class="btn btn-primary" name="feedDB">Submit</button> <button class="btn btn-primary" name="feedDB">Submit</button>
</div> </form>
</div> </div>
</div> </div>
<?php <?php
} }
if (isset($_GET['step']) && $_GET['step'] == 3) { if (isset($_GET['step']) && $_GET['step'] == 3) {
echo $cardheader; ?> echo $cardheader; ?>
<p class="login-box-msg">Tell us something about your Host</p> <p class="login-box-msg">Tell us something about your Host</p>
<?php if (isset($_GET['message'])) { <?php if (isset($_GET['message'])) {
echo "<p class='notok'>".$_GET['message'].'</p>'; echo "<p class='notok'>" . $_GET['message'] . '</p>';
} ?> } ?>
<form method="POST" enctype="multipart/form-data" class="mb-3" <form method="POST" enctype="multipart/form-data" class="mb-3"
action="/install/forms.php" name="checkGeneral"> action="/install/forms.php" name="checkGeneral">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="form-group"> <div class="form-group">
<div class="custom-control mb-3"> <div class="custom-control mb-3">
<label for="database">Your Dashboard URL</label> <label for="database">Your Dashboard URL</label>
<input id="url" name="url" <input id="url" name="url"
type="text" required type="text" required
value="<?php echo 'https://'.$_SERVER['SERVER_NAME']; ?>" class="form-control"> value="<?php echo 'https://' . $_SERVER['SERVER_NAME']; ?>" class="form-control">
</div>
</div> </div>
<div class="form-group"> </div>
<div class="custom-control mb-3"> <div class="form-group">
<label for="name">Your Host-Name</label> <div class="custom-control mb-3">
<input id="name" name="name" type="text" <label for="name">Your Host-Name</label>
required <input id="name" name="name" type="text"
value="Controlpanel.gg" class="form-control"> required
</div> value="" class="form-control">
</div> </div>
</div> </div>
<button class="btn btn-primary" name="checkGeneral">Submit</button>
</div> </div>
</form>
<button class="btn btn-primary" name="checkGeneral">Submit</button>
</div>
</form>
</div>
</div>
<?php
}
if (isset($_GET['step']) && $_GET['step'] == 4) {
echo $cardheader; ?>
<p class="login-box-msg">Lets get your E-Mails going! </p>
<p class="login-box-msg">This might take a few seconds when submitted! </p>
<?php if (isset($_GET['message'])) {
echo "<p class='notok'>" . $_GET['message'] . '</p>';
} ?>
<form method="POST" enctype="multipart/form-data" class="mb-3"
action="/install/forms.php" name="checkSMTP">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<div class="custom-control mb-3">
<label for="method">Your E-Mail method</label>
<input id="method" name="method"
type="text" required
value="smtp" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="host">Your Mailer-Host</label>
<input id="host" name="host" type="text"
required
value="smtp.google.com" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="port">Your Mail Port</label>
<input id="port" name="port" type="port"
required
value="567" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="user">Your Mail User</label>
<input id="user" name="user" type="text"
required
value="info@mydomain.com" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="pass">Your Mail-User Password</label>
<input id="pass" name="pass" type="password"
required
value="" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="encryption">Your Mail encryption method</label>
<input id="encryption" name="encryption" type="text"
required
value="tls" class="form-control">
</div>
</div>
</div> </div>
<button class="btn btn-primary" name="checkSMTP">Submit</button>
</form>
</div>
<a href="?step=5">
<button class="btn btn-warning">Skip this step for now</button>
</a>
</div>
</div>
<?php
}
if (isset($_GET['step']) && $_GET['step'] == 5) {
echo $cardheader; ?>
<p class="login-box-msg">Almost done! </p>
<p class="login-box-msg">Lets get some info about your Pterodactyl Installation!</p>
<?php if (isset($_GET['message'])) {
echo "<p class='notok'>" . $_GET['message'] . '</p>';
} ?>
<form method="POST" enctype="multipart/form-data" class="mb-3"
action="/install/forms.php" name="checkPtero">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<div class="custom-control mb-3">
<label for="url">Pterodactyl URL</label>
<input id="url" name="url"
type="text" required
value="https://ptero.example.com" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="key">Pterodactyl API-Key (found here: https://your.ptero.com/admin/api)</label>
<input id="key" name="key" type="text"
required
value="" class="form-control"
placeholder="The Key needs ALL read&write Permissions!">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="clientkey">Pterodactyl Admin-User API-Key
(https://your.ptero.com/account/api)</label>
<input id="clientkey" name="clientkey" type="text"
required
value="" class="form-control"
placeholder="Your Account needs to be an Admin!">
</div>
</div>
</div> </div>
<?php <button class="btn btn-primary" name="checkPtero">Submit</button>
} </div>
if (isset($_GET['step']) && $_GET['step'] == 4) { </form>
echo $cardheader; ?> </div>
<p class="login-box-msg">Lets get your E-Mails going! </p>
<p class="login-box-msg">This might take a few seconds when submitted! </p>
<?php if (isset($_GET['message'])) {
echo "<p class='notok'>".$_GET['message'].'</p>';
} ?>
<form method="POST" enctype="multipart/form-data" class="mb-3"
action="/install/forms.php" name="checkSMTP">
<div class="row"> </div>
<div class="col-md-12">
<div class="form-group">
<div class="custom-control mb-3">
<label for="method">Your E-Mail method</label>
<input id="method" name="method"
type="text" required
value="smtp" class="form-control">
</div> <?php
</div> }
<div class="form-group">
<div class="custom-control mb-3">
<label for="host">Your Mailer-Host</label>
<input id="host" name="host" type="text"
required
value="smtp.google.com" class="form-control">
</div>
</div>
<div class="form-group"> if (isset($_GET['step']) && $_GET['step'] == 6) {
<div class="custom-control mb-3"> echo $cardheader; ?>
<label for="port">Your Mail Port</label> <p class="login-box-msg">Lets create yourself!</p>
<input id="port" name="port" type="port" <p class="login-box-msg">We're making the first Admin user</p>
required <?php if (isset($_GET['message'])) {
value="567" class="form-control"> echo "<p class='notok'>" . $_GET['message'] . '</p>';
</div> } ?>
</div>
<div class="form-group"> <form method="POST" enctype="multipart/form-data" class="mb-3"
<div class="custom-control mb-3"> action="/install/forms.php" name="createUser">
<label for="user">Your Mail User</label>
<input id="user" name="user" type="text" <div class="form-group">
required <div class="custom-control mb-3">
value="info@mydomain.com" class="form-control"> <label for="pteroID">Your Pterodactyl User-ID (found in the users-list on your pterodactyl
</div> dashboard)</label>
</div> <input id="pteroID" name="pteroID" type="text"
required
value="1" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="pass">Password (this will be your new pterodactyl password aswell!)</label>
<input id="pass" name="pass" type="password"
required
value="" minlength="8" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="repass">Retype Password</label>
<input id="repass" name="repass" type="password"
required
value="" minlength="8" class="form-control">
</div>
</div>
</div>
<button class="btn btn-primary" name="createUser">Submit</button>
</div>
</form>
</div>
<div class="form-group"> </div>
<div class="custom-control mb-3">
<label for="pass">Your Mail-User Password</label>
<input id="pass" name="pass" type="password"
required
value="" class="form-control">
</div>
</div>
<div class="form-group"> <?php
<div class="custom-control mb-3"> }
<label for="encryption">Your Mail encryption method</label> if (isset($_GET['step']) && $_GET['step'] == 7) {
<input id="encryption" name="encryption" type="text" $lockfile = fopen('../../install.lock', 'w') or exit('Unable to open file!');
required fwrite($lockfile, 'locked');
value="tls" class="form-control"> fclose($lockfile);
</div>
</div>
</div> echo $cardheader; ?>
<p class="login-box-msg">All done!</p>
<button class="btn btn-primary" name="checkSMTP">Submit</button> <p class="login-box-msg">You may navigate to your Dashboard now and log in!</p>
</form> <a href="<?php echo getEnvironmentValue('APP_URL'); ?>">
<button class="btn btn-success">Lets go!</button>
</div> </a>
</div>
<a href="?step=5"><button class="btn btn-warning">Skip this step for now</button></a>
</div>
</div>
<?php
}
if (isset($_GET['step']) && $_GET['step'] == 5) {
echo $cardheader; ?>
<p class="login-box-msg">Almost done! </p>
<p class="login-box-msg">Lets get some info about your Pterodactyl Installation!</p>
<?php if (isset($_GET['message'])) { </div>
echo "<p class='notok'>".$_GET['message'].'</p>'; <?php
} ?> }
?>
<form method="POST" enctype="multipart/form-data" class="mb-3"
action="/install/forms.php" name="checkPtero">
<div class="row"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
<div class="col-md-12"> integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
<div class="form-group"> crossorigin="anonymous"></script>
<div class="custom-control mb-3">
<label for="url">Pterodactyl URL</label>
<input id="url" name="url"
type="text" required
value="https://ptero.example.com" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="key">Pterodactyl API-Key (found here: https://your.ptero.com/admin/api)</label>
<input id="key" name="key" type="text"
required
value="" class="form-control"
placeholder="The Key needs ALL read&write Permissions!">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="clientkey">Pterodactyl Admin-User API-Key (https://your.ptero.com/account/api)</label>
<input id="clientkey" name="clientkey" type="text"
required
value="" class="form-control"
placeholder="Your Account needs to be an Admin!">
</div>
</div>
</div>
<button class="btn btn-primary" name="checkPtero">Submit</button>
</div>
</form>
</div>
</div>
<?php
}
if (isset($_GET['step']) && $_GET['step'] == 6) {
echo $cardheader; ?>
<p class="login-box-msg">Lets create yourself!</p>
<p class="login-box-msg">We're making the first Admin user</p>
<?php if (isset($_GET['message'])) {
echo "<p class='notok'>".$_GET['message'].'</p>';
} ?>
<form method="POST" enctype="multipart/form-data" class="mb-3"
action="/install/forms.php" name="createUser">
<div class="form-group">
<div class="custom-control mb-3">
<label for="pteroID">Your Pterodactyl User-ID (found in the users-list on your pterodactyl dashboard)</label>
<input id="pteroID" name="pteroID" type="text"
required
value="1" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="pass">Password (this will be your new pterodactyl password aswell!)</label>
<input id="pass" name="pass" type="password"
required
value="" minlength="8" class="form-control">
</div>
</div>
<div class="form-group">
<div class="custom-control mb-3">
<label for="repass">Retype Password</label>
<input id="repass" name="repass" type="password"
required
value="" minlength="8" class="form-control">
</div>
</div>
</div>
<button class="btn btn-primary" name="createUser">Submit</button>
</div>
</form>
</div>
</div>
<?php
}
if (isset($_GET['step']) && $_GET['step'] == 7) {
$lockfile = fopen('../../install.lock', 'w') or exit('Unable to open file!');
fwrite($lockfile, 'locked');
fclose($lockfile);
echo $cardheader; ?>
<p class="login-box-msg">All done!</p>
<p class="login-box-msg">You may navigate to your Dashboard now and log in!</p>
<a href="<?php echo getEnvironmentValue('APP_URL'); ?>">
<button class="btn btn-success">Lets go!</button>
</a>
</div>
</div>
<?php
}
?>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous"></script>
</body> </body>
</html> </html>