You've already forked OpenShorte.old
							
							
		
			
				
	
	
		
			149 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
    if ( file_exists ( 'config.json' ) ) {
 | 
						|
        header ( "Location: " . substr ( $_SERVER [ 'SCRIPT_NAME' ], 0, -10 ) . "/" );
 | 
						|
    }
 | 
						|
    if ( isset ( $_POST [ 'site_name' ] ) && isset ( $_POST [ 'db_host' ] ) && isset ( $_POST [ 'db_port' ] ) && isset ( $_POST [ 'db_username' ] ) && isset ( $_POST [ 'db_password' ] ) && isset ( $_POST [ 'db_name' ] ) ) {
 | 
						|
        $config = [
 | 
						|
            'installed' => true,
 | 
						|
            'website_name' => $_POST [ 'site_name' ],
 | 
						|
            'db' => [
 | 
						|
                'host' => $_POST [ 'db_host' ],
 | 
						|
                'port' => (integer) $_POST [ 'db_port' ],
 | 
						|
                'username' => $_POST [ 'db_username' ],
 | 
						|
                'password' => $_POST [ 'db_password' ],
 | 
						|
                'name' => $_POST [ 'db_name' ],
 | 
						|
            ],
 | 
						|
            'installation_path' => substr ( $_SERVER [ 'SCRIPT_NAME' ], 0, -10 ),
 | 
						|
        ];
 | 
						|
        file_put_contents ( 'config.json', json_encode ( $config ) );
 | 
						|
        header ( 'Content-Type: application/json' );
 | 
						|
        echo ( json_encode ( [ 'status' => 200, 'message' => 'Installation completed!<br>You will be redirected to the home page in 5 seconds.', 'homelocation' => $config [ 'installation_path' ] ] ) );
 | 
						|
        exit;
 | 
						|
    }
 | 
						|
    else {
 | 
						|
?>
 | 
						|
<DOCTYPE HTML>
 | 
						|
<html>
 | 
						|
    <head>
 | 
						|
        <meta charset="UTF-8">
 | 
						|
        <title>Installer | OpenShorte</title>
 | 
						|
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
 | 
						|
        <style>
 | 
						|
            .centered-container {
 | 
						|
                border: solid;
 | 
						|
                border-radius: 25px;
 | 
						|
                border-color: #ABABAB;
 | 
						|
            }
 | 
						|
        </style>
 | 
						|
    </head>
 | 
						|
    <body>
 | 
						|
        <div class="mx-auto my-5 col-sm-8 col-md-6 col-xl-4 centered-container">
 | 
						|
            <div class="my-2"></div>
 | 
						|
            <section id="section_welcome">
 | 
						|
                <p>
 | 
						|
                    Welcome to the OpenShorte installer.<br>
 | 
						|
                    Since it seems that there are no installation found for this website, we'll proceed now with creating one.<br>
 | 
						|
                    Please click 'Next' and provide all the necessary informations for the database and the site name in order to let this website work correctly.
 | 
						|
                </p>
 | 
						|
                <button id="btn_next_sitename" class="btn btn-secondary">Next</button>
 | 
						|
            </section>
 | 
						|
            <section id="section_sitename">
 | 
						|
                <form class="form form-inline">
 | 
						|
                    <div class="input-group col-sm-7 mx-auto">
 | 
						|
                        <div class="input-group-prepend">
 | 
						|
                            <span class="input-group-text" id="sitename_label">Website Name:</span>
 | 
						|
                        </div>
 | 
						|
                        <input type="text" class="form-control" aria-describedby="sitename_label" id="site_name" required>
 | 
						|
                    </div>
 | 
						|
                </form>
 | 
						|
                <button id="btn_next_dbdata" class="btn btn-secondary">Next</button>
 | 
						|
            </section>
 | 
						|
            <section id="section_dbdata">
 | 
						|
                <form class="form form-inline">
 | 
						|
                    <div class="input-group col-sm-7 mx-auto">
 | 
						|
                        <div class="input-group-prepend">
 | 
						|
                            <span class="input-group-text" id="dbdata_label-1">Host:</span>
 | 
						|
                        </div>
 | 
						|
                        <input type="text" class="form-control" aria-describedby="dbdata_label-1" id="db_host" required>
 | 
						|
                    </div>
 | 
						|
                    <div class="input-group col-sm-5 mx-auto">
 | 
						|
                        <div class="input-group-prepend">
 | 
						|
                            <span class="input-group-text" id="dbdata_label-2">Port:</span>
 | 
						|
                        </div>
 | 
						|
                        <input type="text" class="form-control" aria-describedby="dbdata_label-2" id="db_port" required>
 | 
						|
                    </div>
 | 
						|
                </form>
 | 
						|
                <form class="form">
 | 
						|
                    <div class="input-group col-sm-12 mx-auto">
 | 
						|
                        <div class="input-group-prepend">
 | 
						|
                            <span class="input-group-text" id="dbdata_label-3">Username:</span>
 | 
						|
                        </div>
 | 
						|
                        <input type="text" class="form-control" aria-describedby="dbdata_label-3" id="db_username" required>
 | 
						|
                    </div>
 | 
						|
                    <div class="input-group col-sm-12 mx-auto">
 | 
						|
                        <div class="input-group-prepend">
 | 
						|
                            <span class="input-group-text" id="dbdata_label-5">Password:</span>
 | 
						|
                        </div>
 | 
						|
                        <input type="password" class="form-control" aria-describedby="dbdata_label-5" id="db_password" required>
 | 
						|
                    </div>
 | 
						|
                    <div class="input-group col-sm-12 mx-auto">
 | 
						|
                        <div class="input-group-prepend">
 | 
						|
                            <span class="input-group-text" id="dbdata_label-6">Repeat Password:</span>
 | 
						|
                        </div>
 | 
						|
                        <input type="password" class="form-control" aria-describedby="dbdata_label-6" id="db_confirmpassword" required>
 | 
						|
                    </div>
 | 
						|
                    <div class="input-group col-sm-12 mx-auto">
 | 
						|
                        <div class="input-group-prepend">
 | 
						|
                            <span class="input-group-text" id="dbdata_label-4">Database Name:</span>
 | 
						|
                        </div>
 | 
						|
                        <input type="text" class="form-control" aria-describedby="dbdata_label-4" id="db_name" required>
 | 
						|
                    </div>
 | 
						|
                </form>
 | 
						|
                <button id="btn_next_complete" class="btn btn-secondary">Next</button>
 | 
						|
            </section>
 | 
						|
            <section id="section_complete">
 | 
						|
                <div class="mx-auto"></div>
 | 
						|
            </section>
 | 
						|
            <div class="my-2"></div>
 | 
						|
        </div>
 | 
						|
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
 | 
						|
        <script>
 | 
						|
            $('section:not(#section_welcome)').hide();
 | 
						|
            $('#btn_next_sitename').click(function() {
 | 
						|
                $('section').hide();
 | 
						|
                $('#section_sitename').show();
 | 
						|
            });
 | 
						|
            $('#btn_next_dbdata').click(function() {
 | 
						|
                $('section').hide();
 | 
						|
                $('#section_dbdata').show();
 | 
						|
            });
 | 
						|
            $('#btn_next_complete').click(function() {
 | 
						|
                if ( $('#db_password').val() == $('#db_confirmpassword').val() ) {
 | 
						|
                    $.ajax({
 | 
						|
                        method: "POST",
 | 
						|
                        datatype: "JSON",
 | 
						|
                        data: {
 | 
						|
                            site_name: $('#site_name').val(),
 | 
						|
                            db_host: $('#db_host').val(),
 | 
						|
                            db_port: $('#db_port').val(),
 | 
						|
                            db_username: $('#db_username').val(),
 | 
						|
                            db_password: $('#db_password').val(),
 | 
						|
                            db_name: $('#db_name').val(),
 | 
						|
                        },
 | 
						|
                        success: function (data) {
 | 
						|
                            if (data.status == 200) {
 | 
						|
                                $('section').hide();
 | 
						|
                                $('#section_complete').show();
 | 
						|
                                $('#section_complete div').html(data.message);
 | 
						|
                                setInterval(function(){window.location.href=data.homelocation;},5000);
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    });
 | 
						|
                }
 | 
						|
            });
 | 
						|
        </script>
 | 
						|
    </body>
 | 
						|
</html>
 | 
						|
<?php
 | 
						|
    }
 |