Index: trunk/installation/index.php
===================================================================
--- trunk/installation/index.php	(revision 24)
+++ trunk/installation/index.php	(revision 71)
@@ -3,4 +3,7 @@
 // Der Zugriff auf das Klassenbuch darf über diese Datei erfolgen
 define("_KBSECURE", true);
+
+// Fehlermeldungen ganz abschalten
+error_reporting(0);
 
 require_once("wizard.php");
@@ -46,9 +49,9 @@
 
 	function setPage() {
-		$this->page = "<p>Gib den Hostnamen des Servers an, auf dem die Klassenbuch-Datenbank installiert werden soll. " .
+		$this->page = "<p>Alle Aufgaben, Kommentare usw. im Klassenbuch werden in einer MySQL-Datenbank " .
+			"abgelegt. Deshalb werden die Zugangsdaten zur Datenbank benötigt.</p>" .
+			"Gib den Hostnamen des Servers an, auf dem die Klassenbuch-Datenbank installiert werden soll. " .
 			"Ferner wird der Name einer bereits existierenden Datenbank benötigt und der Benutzername und das Passwort " .
 			"eines Datenbank-Benutzers, der über die Rechte zum Erstellen von Tabellen in dieser Datenbank verfügt.</p>" .
-			"<p>Das Tabellen-Präfix wird allen Tabellen vorangestellt und ist v. a. dann nützlich, wenn sich in der " .
-			"Datenbank noch andere Tabellen befinden.</p>" .
 			
 			"<h3>Basiseinstellungen</h3>" .
@@ -61,5 +64,5 @@
 			"	<input type=\"text\" name=\"wiz_db_name\" value=\"[*wiz_db_name*]\"></td>" .
 			"	<td class=\"configHelp\"> Einige Hoster erlauben nur eine Datenbank pro Webseite. Wenn das der Fall " .
-			"	ist, benutzen Sie bitte die Tabellen-Präfix-Option unter den Erweiterten Einstellungen.</td>" .
+			"	ist, benutzen Sie bitte die Tabellen-Präfix-Option unter den \"Erweiterten Einstellungen\".</td>" .
 			"</tr><tr>" .
 			"	<td>Benutzername:<br />" .
@@ -70,7 +73,6 @@
 			"	<td>Passwort:<br />" .
 			"	<input type=\"password\" name=\"wiz_db_password\" value=\"[*wiz_db_password*]\"></td>" .
-			"	<td class=\"configHelp\">Für die Sicherheit der Webseite ist die Verwendung eines MySQL-Zugangs " .
-			"	obligatorisch. Dieses ist das gleiche Passwort für Ihre Datenbank. Dieses könnte von Ihrem Hoster " .
-			"	voreingestellt sein.</td>" .
+			"	<td class=\"configHelp\">Für die Sicherheit der Klassenbuch-Daten ist die Eingabe eines Passworts" .
+			"	obligatorisch. Das Datenbank-Passwort ist möglicherweise von Ihrem Hoster voreingestellt worden.</td>" .
 			"</tr></table>" .
 			
@@ -79,5 +81,6 @@
 			"	<td>Tabellenpräfix:<br />" .
 			"	<input type=\"text\" name=\"wiz_db_tblprefix\" value=\"[*wiz_db_tblprefix*]\"></td>" .
-			"	<td class=\"configHelp\"></td>" .
+			"	<td class=\"configHelp\">Das Tabellen-Präfix wird allen Tabellen vorangestellt und ist v. a. dann " .
+				"nützlich, wenn sich in der Datenbank noch andere Tabellen befinden.</td>" .
 			"</tr></table>";
 	}
@@ -85,59 +88,107 @@
 
 class InstWiz_DbCheck extends Wizard {
+	var $diags;
+	
+	function init() {
+		$this->setPrev("dbconfig");
+	}
+	
+	function testDatabase() {
+	$this->opendb(
+		$this->getVar("wiz_db_host"),
+		$this->getVar("wiz_db_name"),
+		$this->getVar("wiz_db_user"),
+		$this->getVar("wiz_db_password")
+	);
+	
+	$this->diags = $this->checkdb();
+	
+	if	(
+		!$this->diags["Connect"] ||
+		!$this->diags["Create"] ||
+		!$this->diags["Insert"] ||
+		!$this->diags["Update"] ||
+		!$this->diags["Select"] ||
+		!$this->diags["Delete"] ||
+		!$this->diags["Drop"]) {
+		return false;
+	}
+	
+	$this->importdb("schema.sql", "kb_", $this->getVar("wiz_db_tblprefix"));
+	
+	return true;
+}
+	
+	function setPage() {
+		if ($this->testDatabase()) {
+			$this->setTitle("Datenbank erfolgreich eingerichtet");
+			$this->setNext("general");
+			
+			$msg = "<p>Die Datenbank wurde erfolgreich eingerichtet. Klicke nun auf [Weiter], um mit der Installation " .
+				"fortzufahren.</p>";
+		} else {
+			$this->setTitle("Fehler beim Einrichten der Datenbank");
+			$this->setNext(null);
+			
+			$msg = "<p>Die Datenbankeinstellungen stimmen nicht. Bitte klicke auf [Zurück] und überprüfe deine " .
+				"Eingaben.</p>" .
+				"<h3>Detaillierte Ergebnisse</h3><table border=\"0\">";
+			
+			foreach ($this->diags as $action => $result) {
+				$text = !$result ? "<td style=\"color: red;\">Fehlgeschlagen</td>" : "<td style=\"color: green;\">OK</td>";
+				
+				$msg .= "<tr><td>" . strtoupper($action) . "</td>$text</tr>";
+			}
+			
+			$msg .= "</table>";
+		}
+		
+		$this->page = $msg;
+	}
+}
+
+class InstWiz_GeneralSettings extends Wizard {
 	function init() {
 		$this->setPrev("dbconfig");
 		$this->setNext("finish");
-		$this->setTitle("Überprüfen der Datenbank-Einstellungen");
-	}
-	
-	function action() {
-		$this->displayProgress();
-	}
-	
-	function setPage() {
-		$this->opendb(
-			$this->getVar("wiz_db_host"),
-			$this->getVar("wiz_db_name"),
-			$this->getVar("wiz_db_user"),
-			$this->getVar("wiz_db_password")
-		);
-		
-		$diags = $this->checkdb();
-		
-		$bSuccess = true;
-		
-		if	(
-			!$diags["Connect"] ||
-			!$diags["Create"] ||
-			!$diags["Insert"] ||
-			!$diags["Update"] ||
-			!$diags["Select"] ||
-			!$diags["Delete"] ||
-			!$diags["Drop"]) {
-			$bSuccess = false;
-		}
-	
-		if ($bSuccess) {
-			$this->importdb("schema.sql", "kb_", $this->getVar("wiz_db_tblprefix"));
-			
-			$msg = "Die Datenbank wurde erfolgreich eingerichtet. Klicke nun auf [Weiter], um mit der Installation " .
-				"fortzufahren.</p>";
-		} else {
-			$msg = "<span style=\"color: red; font-weight: bold;\">Fehler!</span> - Die Datenbankeinstellungen stimmen " .
-				"nicht.</p><p>Bitte klicke auf [Zurück] und überprüfe deine Eingaben.</p>";
-			$this->setNext(null);
-		}
-		
-		$msg .= "<h3>Detaillierte Ergebnisse</h3><table border=\"0\">";
-		
-		foreach ($diags as $action => $result) {
-			$text = !$result ? "<td style=\"color: red;\">Fehlgeschlagen</td>" : "<td style=\"color: green;\">OK</td>";
-			
-			$msg .= "<tr><td>" . $action . "</td>$text</tr>";
-		}
-		
-		$msg .= "</table>";
-		
-		$this->page = $msg;
+		$this->setTitle("Allgemeine Einstellungen");
+		
+		$this->setDefaults(Array(
+			"wiz_title" => "Klassenbuch",
+			"wiz_subtitle" => "der Klasse x an der Schule y"
+		));
+	}
+	
+	function setPage() {
+		$this->page = "<p></p>" .
+			
+			"<table class=\"configTable\"><tr>" .
+			"	<td>Domain:<br />" .
+			"	<input type=\"text\" name=\"wiz_domain\" value=\"[*wiz_domain*]\"></td>" .
+			"	<td class=\"configHelp\">Der absolute Pfad zur Klassenbuch-Installation, inklusive \"http://\"." .
+			"	Befindet sich das Klassenbuch in einem Unterordner auf dem Webserver, muss dieser auch angegeben "  .
+			"	werden: z. B. <em>http://www.meineschule.ch/klasse1c/</em></td>" .
+			"</tr><tr>" .
+			"	<td>Mail-Adresse:<br />" .
+			"	<input type=\"text\" name=\"wiz_mail\" value=\"[*wiz_mail*]\"></td>" .
+			"	<td class=\"configHelp\">Die E-Mail-Adresse, von der alle E-Mails verschickt werden sollen. " .
+			"	z. B. klasse1c@meineschule.ch</td>" .
+			"</tr><tr>" .
+			"	<td>Klassenbuch-Titel:<br />" .
+			"	<input type=\"text\" name=\"wiz_title\" value=\"[*wiz_title*]\"></td>" .
+			"</tr><tr>" .
+			"	<td>Untertitel:<br />" .
+			"	<input type=\"text\" name=\"wiz_subtitle\" value=\"[*wiz_subtitle*]\"></td>" .
+			"	<td class=\"configHelp\">Wird gleich unterhalb des Klassenbuch-Titels angezeigt.</td>" .
+			"</tr><tr>" .
+			"	<td>Ihr Name:<br />" .
+			"	<input type=\"text\" name=\"wiz_adminname\" value=\"[*wiz_adminname*]\"></td>" .
+			"	<td class=\"configHelp\"></td>" .
+			"</tr><tr>" .
+			"	<td>Ihre E-Mailadresse:<br />" .
+			"	<input type=\"text\" name=\"wiz_adminmail\" value=\"[*wiz_adminmail*]\"></td>" .
+			"	<td class=\"configHelp\">An diese Adresse werden Benachrichtigungen über Kontoregistrierungen usw. " .
+			"	gesendet.</td>" .
+			"</tr></table>";
 	}
 }
@@ -152,5 +203,6 @@
 	function setPage() {
 		$settings = $this->readFile("../server.settings.default.php");
-		$keys = Array("db_host", "db_name", "db_user", "db_password", "db_tblprefix");
+		$keys = Array("domain", "mail", "adminmail", "adminname", "title", "subtitle", "db_host", "db_name",
+			"db_user", "db_password", "db_tblprefix");
 		
 		foreach ($keys as $key => $value) {
@@ -182,4 +234,7 @@
 $wizard->addPage("dbcheck", $dbcheck);
 
+$general = new InstWiz_GeneralSettings("general");
+$wizard->addPage("general", $general);
+
 $finish = new InstWiz_Finish("finish");
 $wizard->addPage("finish", $finish);
