| 1 | <?php
|
|---|
| 2 |
|
|---|
| 3 | // Der Zugriff auf das Klassenbuch darf über diese Datei erfolgen
|
|---|
| 4 | define("_KBSECURE", true);
|
|---|
| 5 |
|
|---|
| 6 | require_once("wizard.php");
|
|---|
| 7 |
|
|---|
| 8 | // Wenn das Klassenbuch bereits konfiguriert wurde, wird die Installation abgebrochen
|
|---|
| 9 | if (file_exists("../server.settings.php")) {
|
|---|
| 10 | header("Location: ../");
|
|---|
| 11 | exit();
|
|---|
| 12 | }
|
|---|
| 13 |
|
|---|
| 14 | class InstWiz_Intro extends Wizard {
|
|---|
| 15 | function init() {
|
|---|
| 16 | $this->setNext("license");
|
|---|
| 17 | $this->setPrev(null);
|
|---|
| 18 | $this->setTitle("Willkommen bei der Installation des Klassenbuchs");
|
|---|
| 19 | }
|
|---|
| 20 |
|
|---|
| 21 | function setPage() {
|
|---|
| 22 | $this->page = "<p>Bevor du das Klassenbuch verwenden kannst, muss es eingerichtet werden. " .
|
|---|
| 23 | "Der Installationsassistent wird dich durch die Installation leiten.</p>";
|
|---|
| 24 | }
|
|---|
| 25 | }
|
|---|
| 26 |
|
|---|
| 27 | class InstWiz_License extends Wizard {
|
|---|
| 28 | function init() {
|
|---|
| 29 | $this->setPrev("intro");
|
|---|
| 30 | $this->setNext("dbconfig");
|
|---|
| 31 | $this->setTitle("Lizenz");
|
|---|
| 32 | }
|
|---|
| 33 |
|
|---|
| 34 | function setPage() {
|
|---|
| 35 | $this->page = $this->readFile("license.html");
|
|---|
| 36 | }
|
|---|
| 37 | }
|
|---|
| 38 |
|
|---|
| 39 | class InstWiz_DbConfig extends Wizard {
|
|---|
| 40 | function init() {
|
|---|
| 41 | $this->setPrev("license");
|
|---|
| 42 | $this->setNext("dbcheck");
|
|---|
| 43 | $this->setTitle("Datenbank-Einstellungen");
|
|---|
| 44 | $this->setDefaults(Array("wiz_db_host" => "localhost", "wiz_db_tblprefix" => "kb_"));
|
|---|
| 45 | }
|
|---|
| 46 |
|
|---|
| 47 | function setPage() {
|
|---|
| 48 | $this->page = "<p>Gib den Hostnamen des Servers an, auf dem die Klassenbuch-Datenbank installiert werden soll. " .
|
|---|
| 49 | "Ferner wird der Name einer bereits existierenden Datenbank benötigt und der Benutzername und das Passwort " .
|
|---|
| 50 | "eines Datenbank-Benutzers, der über die Rechte zum Erstellen von Tabellen in dieser Datenbank verfügt.</p>" .
|
|---|
| 51 | "<p>Das Tabellen-Präfix wird allen Tabellen vorangestellt und ist v. a. dann nützlich, wenn sich in der " .
|
|---|
| 52 | "Datenbank noch andere Tabellen befinden.</p>" .
|
|---|
| 53 |
|
|---|
| 54 | "<h3>Basiseinstellungen</h3>" .
|
|---|
| 55 | "<table class=\"configTable\"><tr>" .
|
|---|
| 56 | " <td>Hostname:<br />" .
|
|---|
| 57 | " <input type=\"text\" name=\"wiz_db_host\" value=\"[*wiz_db_host*]\"></td>" .
|
|---|
| 58 | " <td class=\"configHelp\">In der Regel <strong>localhost</strong>.</td>" .
|
|---|
| 59 | "</tr><tr>" .
|
|---|
| 60 | " <td>Datenbankname:<br />" .
|
|---|
| 61 | " <input type=\"text\" name=\"wiz_db_name\" value=\"[*wiz_db_name*]\"></td>" .
|
|---|
| 62 | " <td class=\"configHelp\"> Einige Hoster erlauben nur eine Datenbank pro Webseite. Wenn das der Fall " .
|
|---|
| 63 | " ist, benutzen Sie bitte die Tabellen-Präfix-Option unter den Erweiterten Einstellungen.</td>" .
|
|---|
| 64 | "</tr><tr>" .
|
|---|
| 65 | " <td>Benutzername:<br />" .
|
|---|
| 66 | " <input type=\"text\" name=\"wiz_db_user\" value=\"[*wiz_db_user*]\"></td>" .
|
|---|
| 67 | " <td class=\"configHelp\">Dieses kann der Standard-MySQL-Benutzername <strong>root</strong> sein, " .
|
|---|
| 68 | " ein Benutzername, der vom Hoster erstellt wurde oder ein Name, den Sie selber gewählt haben.</td>" .
|
|---|
| 69 | "</tr><tr>" .
|
|---|
| 70 | " <td>Passwort:<br />" .
|
|---|
| 71 | " <input type=\"password\" name=\"wiz_db_password\" value=\"[*wiz_db_password*]\"></td>" .
|
|---|
| 72 | " <td class=\"configHelp\">Für die Sicherheit der Webseite ist die Verwendung eines MySQL-Zugangs " .
|
|---|
| 73 | " obligatorisch. Dieses ist das gleiche Passwort für Ihre Datenbank. Dieses könnte von Ihrem Hoster " .
|
|---|
| 74 | " voreingestellt sein.</td>" .
|
|---|
| 75 | "</tr></table>" .
|
|---|
| 76 |
|
|---|
| 77 | "<h3>Erweiterte Einstellungen</h3>" .
|
|---|
| 78 | "<table class=\"configTable\"><tr>" .
|
|---|
| 79 | " <td>Tabellenpräfix:<br />" .
|
|---|
| 80 | " <input type=\"text\" name=\"wiz_db_tblprefix\" value=\"[*wiz_db_tblprefix*]\"></td>" .
|
|---|
| 81 | " <td class=\"configHelp\"></td>" .
|
|---|
| 82 | "</tr></table>";
|
|---|
| 83 | }
|
|---|
| 84 | }
|
|---|
| 85 |
|
|---|
| 86 | class InstWiz_DbCheck extends Wizard {
|
|---|
| 87 | function init() {
|
|---|
| 88 | $this->setPrev("dbconfig");
|
|---|
| 89 | $this->setNext("finish");
|
|---|
| 90 | $this->setTitle("Überprüfen der Datenbank-Einstellungen");
|
|---|
| 91 | }
|
|---|
| 92 |
|
|---|
| 93 | function action() {
|
|---|
| 94 | $this->displayProgress();
|
|---|
| 95 | }
|
|---|
| 96 |
|
|---|
| 97 | function setPage() {
|
|---|
| 98 | $this->opendb(
|
|---|
| 99 | $this->getVar("wiz_db_host"),
|
|---|
| 100 | $this->getVar("wiz_db_name"),
|
|---|
| 101 | $this->getVar("wiz_db_user"),
|
|---|
| 102 | $this->getVar("wiz_db_password")
|
|---|
| 103 | );
|
|---|
| 104 |
|
|---|
| 105 | $diags = $this->checkdb();
|
|---|
| 106 |
|
|---|
| 107 | $bSuccess = true;
|
|---|
| 108 |
|
|---|
| 109 | if (
|
|---|
| 110 | !$diags["Connect"] ||
|
|---|
| 111 | !$diags["Create"] ||
|
|---|
| 112 | !$diags["Insert"] ||
|
|---|
| 113 | !$diags["Update"] ||
|
|---|
| 114 | !$diags["Select"] ||
|
|---|
| 115 | !$diags["Delete"] ||
|
|---|
| 116 | !$diags["Drop"]) {
|
|---|
| 117 | $bSuccess = false;
|
|---|
| 118 | }
|
|---|
| 119 |
|
|---|
| 120 | if ($bSuccess) {
|
|---|
| 121 | $this->importdb("schema.sql", "kb_", $this->getVar("wiz_db_tblprefix"));
|
|---|
| 122 |
|
|---|
| 123 | $msg = "Die Datenbank wurde erfolgreich eingerichtet. Klicke nun auf [Weiter], um mit der Installation " .
|
|---|
| 124 | "fortzufahren.</p>";
|
|---|
| 125 | } else {
|
|---|
| 126 | $msg = "<span style=\"color: red; font-weight: bold;\">Fehler!</span> - Die Datenbankeinstellungen stimmen " .
|
|---|
| 127 | "nicht.</p><p>Bitte klicke auf [Zurück] und überprüfe deine Eingaben.</p>";
|
|---|
| 128 | $this->setNext(null);
|
|---|
| 129 | }
|
|---|
| 130 |
|
|---|
| 131 | $msg .= "<h3>Detaillierte Ergebnisse</h3><table border=\"0\">";
|
|---|
| 132 |
|
|---|
| 133 | foreach ($diags as $action => $result) {
|
|---|
| 134 | $text = !$result ? "<td style=\"color: red;\">Fehlgeschlagen</td>" : "<td style=\"color: green;\">OK</td>";
|
|---|
| 135 |
|
|---|
| 136 | $msg .= "<tr><td>" . $action . "</td>$text</tr>";
|
|---|
| 137 | }
|
|---|
| 138 |
|
|---|
| 139 | $msg .= "</table>";
|
|---|
| 140 |
|
|---|
| 141 | $this->page = $msg;
|
|---|
| 142 | }
|
|---|
| 143 | }
|
|---|
| 144 |
|
|---|
| 145 | class InstWiz_Finish extends Wizard {
|
|---|
| 146 | function init() {
|
|---|
| 147 | $this->setPrev(null);
|
|---|
| 148 | $this->setNext(null);
|
|---|
| 149 | $this->setTitle("Fertig!");
|
|---|
| 150 | }
|
|---|
| 151 |
|
|---|
| 152 | function setPage() {
|
|---|
| 153 | $settings = $this->readFile("../server.settings.default.php");
|
|---|
| 154 | $keys = Array("db_host", "db_name", "db_user", "db_password", "db_tblprefix");
|
|---|
| 155 |
|
|---|
| 156 | foreach ($keys as $key => $value) {
|
|---|
| 157 | $settings = str_replace("{" . $value . "}", $this->getVar("wiz_" . $value), $settings);
|
|---|
| 158 | }
|
|---|
| 159 |
|
|---|
| 160 | $this->writeFile("../server.settings.php", $settings);
|
|---|
| 161 | $this->page = "<p>Das Klassenbuch wurde erfolgreich eingerichtet. Du kannst das Klassenbuch nun zum ersten Mal " .
|
|---|
| 162 | "öffnen.</p><ul><li><a href=\"../index.php\">Zum Klassenbuch</a></li></ul>";
|
|---|
| 163 | }
|
|---|
| 164 | }
|
|---|
| 165 |
|
|---|
| 166 | class InstallationWizard extends Wizard {
|
|---|
| 167 | function init() {
|
|---|
| 168 | $splash = new InstWiz_Intro("intro");
|
|---|
| 169 | $this->addPage("intro", &$splash);
|
|---|
| 170 | }
|
|---|
| 171 | }
|
|---|
| 172 |
|
|---|
| 173 | $wizard = new InstallationWizard();
|
|---|
| 174 |
|
|---|
| 175 | $license = new InstWiz_License("license");
|
|---|
| 176 | $wizard->addPage("license", $license);
|
|---|
| 177 |
|
|---|
| 178 | $dbconfig = new InstWiz_DbConfig("dbconfig");
|
|---|
| 179 | $wizard->addPage("dbconfig", $dbconfig);
|
|---|
| 180 |
|
|---|
| 181 | $dbcheck = new InstWiz_DbCheck("dbcheck");
|
|---|
| 182 | $wizard->addPage("dbcheck", $dbcheck);
|
|---|
| 183 |
|
|---|
| 184 | $finish = new InstWiz_Finish("finish");
|
|---|
| 185 | $wizard->addPage("finish", $finish);
|
|---|
| 186 |
|
|---|
| 187 | $wizard->display();
|
|---|
| 188 |
|
|---|
| 189 | ?> |
|---|