diff --git a/html/Setup.php b/html/Setup.php index 1c91b7c..3fd5939 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -4,6 +4,20 @@ require_once("Wizard.php"); $wizard = new Wizard(); +$wizard->addCode('basedata',function($storedvariables){ + $basedata['eventname'] = $_POST['eventname']; + $basedata['startdate'] = $_POST['startdate']; + $basedata['duration'] = $_POST['duration']; + $basedata['timezone'] = $_POST['timezone']; + $basedata['locale'] = $_POST['locale']; + $basedata['logfile'] = $_POST['logfile']; + $basedata['infourl'] = $_POST['infourl']; + $basedata['urlprefix'] = $_POST['urlprefix']; + $basedata['secretkey'] = $_POST['secretkey']; + $basedata['secretverification'] = $_POST['secretverification']; + return $basedata; +}); + $wizard->addCode('selectdatabase',function($storedvariables){ $selectdatabase['databasetype'] = $_POST['databasetype']; return $selectdatabase; @@ -32,6 +46,19 @@ $wizard->addCode('createdatabase',function($storedvariables){ fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$storedvariables['enterlogindata']['password']."' );\n"); fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$storedvariables['enterlogindata']['dbname']."' );\n"); } + fwrite($conf_file, "define( 'LOGFILE', '".$storedvariables['basedata']['logfile']."' );\n"); + fwrite($conf_file, "define( 'EVENTNAME', '".$storedvariables['basedata']['eventname']."' );\n"); + fwrite($conf_file, "define( 'INFORMATIONS_URL', '".$storedvariables['basedata']['infourl']."' );\n"); + fwrite($conf_file, "define( 'SECRET_KEY', '".$storedvariables['basedata']['secretkey']."' );\n"); + fwrite($conf_file, "define( 'SECRET_VERIFICATION', '".$storedvariables['basedata']['secretverification']."' );\n"); + fwrite($conf_file, "define( 'URLPREFIX', '".$storedvariables['basedata']['urlprefix']."' );\n"); + fwrite($conf_file, "define( 'TAGE_DAUER', '".$storedvariables['basedata']['duration']."' );\n"); + fwrite($conf_file, "date_default_timezone_set('".$storedvariables['basedata']['timezone']."');\n"); + fwrite($conf_file, "setlocale(LC_TIME, \"".$storedvariables['basedata']['locale']."\");\n"); + fwrite($conf_file, "\$start_date = new DateTimeImmutable(\"".$storedvariables['basedata']['startdate']."\");\n"); + fwrite($conf_file, "\$secret_key = SECRET_KEY;\n"); + fwrite($conf_file, "\$secret_verification = SECRET_VERIFICATION;\n"); + fwrite($conf_file, "\$urlprefix = URLPREFIX;\n"); fwrite($conf_file, "?>"); // Test configuration: require_once("SQL.php"); diff --git a/html/setupWizard.json b/html/setupWizard.json index dd1cacb..ae5479d 100644 --- a/html/setupWizard.json +++ b/html/setupWizard.json @@ -1,10 +1,14 @@ { "header": "\n\n\n\n\nBengelsystem Setup Wizard<\/title>\n<head><\/head>\n<body><h1>Bengelsystem Setup Wizard<\/h1><p>Diese Seite führt durch die Einrichtung der Helferdatenbank.<\/p>", - "firststep": "selectdatabase", + "firststep": "basedata", "steps": [ + { + "id": "basedata", + "page": "<h2>Basisinformationen für die Convention<\/h2><p>Zunächst brauchen wir ein paar allgemeine Angaben für die Convention:<\/p><form action=\"Setup.php\" method=\"post\"><fieldset><legend>Eventinformationen<\/legend><label for=\"eventname\">Eventname (\"Meine tolle Jonglierconvention\") <\/label><input type=\"text\" id=\"eventname\" name=\"eventname\" \/><br \/><label for=\"startdate\">Beginn der Convention: <\/label><input type=\"date\" id=\"startdate\" name=\"startdate\" \/><br \/><label for=\"duration\">Dauer (Tage): <\/label><input type=\"number\" min=\"1\" value=\"3\" id=\"duration\" name=\"duration\" \/><br \/><label for=\"timezone\">Zeitzone <\/label><input type=\"text\" id=\"timezone\" name=\"timezone\" value=\"Europe\/Berlin\" \/><br \/><label for=\"locale\">Lokalisierung <\/label><input type=\"text\" id=\"locale\" name=\"locale\" value=\"de_DE.UTF-8\" \/><\/fieldset><fieldset><legend>Technische Details</legend><label for=\"logfile\">Logfile <\/label><input type=\"text\" id=\"logfile\" name=\"logfile\" value=\"..\/convention.log\" \/><br \/><label for=\"infourl\">Informations URL <\/label><input type=\"text\" id=\"infourl\" name=\"infourl\" value=\"https://convention.example.org\" \/><br \/><label for=\"urlprefix\">URL Prefix<\/label><input type=\"text\" id=\"urlprefix\" name=\"urlprefix\" value=\"https://convention.example.org/Bengelsystem\" \/><br \/><label for=\"secretkey\">Geheimer Schlüssel <\/label><input type=\"password\" id=\"secretkey\" name=\"secretkey\" \/><br \/><label for=\"secretverification\">Geheimer Schlüssel für Verifikation<\/label><input type=\"password\" id=\"secretverification\" name=\"secretverification\" \/></fieldset><\/form>" + }, { "id": "selectdatabase", - "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Datenbank auswählen<\/legend>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/>\r\n <label for=\"sqlite\">SQLite<\/label><br \/>\r\n <input type=\"radio\" id=\"mariadb\" name=\"databasetype\" value=\"MariaDB\" \/>\r\n <label for=\"mariadb\">MariaDB<\/label><br \/>\r\n <input type=\"submit\" value=\"Weiter\" \/>\r\n <\/fieldset>\r\n<\/form>", + "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><form action=\"Setup.php\" method=\"post\"><fieldset><legend>Datenbank auswählen<\/legend><input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/><input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/><label for=\"sqlite\">SQLite<\/label><br \/><input type=\"radio\" id=\"mariadb\" name=\"databasetype\" value=\"MariaDB\" \/><label for=\"mariadb\">MariaDB<\/label><br \/><input type=\"submit\" value=\"Weiter\" \/><\/fieldset><\/form>", "redirects": [ { "==": {"databasetype": "SQLite"},