Ignore:
Timestamp:
11/03/07 12:34:10 (6 years ago)
Author:
Lantash
Message:

Maintainers can specify general settings such as page title etc. during installation. [Closes #18]

Installation input fields are evaluated using JavaScript?.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/installation/index.php

    r24 r71  
    33// Der Zugriff auf das Klassenbuch darf über diese Datei erfolgen 
    44define("_KBSECURE", true); 
     5 
     6// Fehlermeldungen ganz abschalten 
     7error_reporting(0); 
    58 
    69require_once("wizard.php"); 
     
    4649 
    4750        function setPage() { 
    48                 $this->page = "<p>Gib den Hostnamen des Servers an, auf dem die Klassenbuch-Datenbank installiert werden soll. " . 
     51                $this->page = "<p>Alle Aufgaben, Kommentare usw. im Klassenbuch werden in einer MySQL-Datenbank " . 
     52                        "abgelegt. Deshalb werden die Zugangsdaten zur Datenbank benötigt.</p>" . 
     53                        "Gib den Hostnamen des Servers an, auf dem die Klassenbuch-Datenbank installiert werden soll. " . 
    4954                        "Ferner wird der Name einer bereits existierenden Datenbank benötigt und der Benutzername und das Passwort " . 
    5055                        "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>" . 
    5356                         
    5457                        "<h3>Basiseinstellungen</h3>" . 
     
    6164                        "       <input type=\"text\" name=\"wiz_db_name\" value=\"[*wiz_db_name*]\"></td>" . 
    6265                        "       <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>" . 
     66                        "       ist, benutzen Sie bitte die Tabellen-Präfix-Option unter den \"Erweiterten Einstellungen\".</td>" . 
    6467                        "</tr><tr>" . 
    6568                        "       <td>Benutzername:<br />" . 
     
    7073                        "       <td>Passwort:<br />" . 
    7174                        "       <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                        "       <td class=\"configHelp\">Für die Sicherheit der Klassenbuch-Daten ist die Eingabe eines Passworts" . 
     76                        "       obligatorisch. Das Datenbank-Passwort ist möglicherweise von Ihrem Hoster voreingestellt worden.</td>" . 
    7577                        "</tr></table>" . 
    7678                         
     
    7981                        "       <td>Tabellenpräfix:<br />" . 
    8082                        "       <input type=\"text\" name=\"wiz_db_tblprefix\" value=\"[*wiz_db_tblprefix*]\"></td>" . 
    81                         "       <td class=\"configHelp\"></td>" . 
     83                        "       <td class=\"configHelp\">Das Tabellen-Präfix wird allen Tabellen vorangestellt und ist v. a. dann " . 
     84                                "nützlich, wenn sich in der Datenbank noch andere Tabellen befinden.</td>" . 
    8285                        "</tr></table>"; 
    8386        } 
     
    8588 
    8689class InstWiz_DbCheck extends Wizard { 
     90        var $diags; 
     91         
     92        function init() { 
     93                $this->setPrev("dbconfig"); 
     94        } 
     95         
     96        function testDatabase() { 
     97        $this->opendb( 
     98                $this->getVar("wiz_db_host"), 
     99                $this->getVar("wiz_db_name"), 
     100                $this->getVar("wiz_db_user"), 
     101                $this->getVar("wiz_db_password") 
     102        ); 
     103         
     104        $this->diags = $this->checkdb(); 
     105         
     106        if      ( 
     107                !$this->diags["Connect"] || 
     108                !$this->diags["Create"] || 
     109                !$this->diags["Insert"] || 
     110                !$this->diags["Update"] || 
     111                !$this->diags["Select"] || 
     112                !$this->diags["Delete"] || 
     113                !$this->diags["Drop"]) { 
     114                return false; 
     115        } 
     116         
     117        $this->importdb("schema.sql", "kb_", $this->getVar("wiz_db_tblprefix")); 
     118         
     119        return true; 
     120} 
     121         
     122        function setPage() { 
     123                if ($this->testDatabase()) { 
     124                        $this->setTitle("Datenbank erfolgreich eingerichtet"); 
     125                        $this->setNext("general"); 
     126                         
     127                        $msg = "<p>Die Datenbank wurde erfolgreich eingerichtet. Klicke nun auf [Weiter], um mit der Installation " . 
     128                                "fortzufahren.</p>"; 
     129                } else { 
     130                        $this->setTitle("Fehler beim Einrichten der Datenbank"); 
     131                        $this->setNext(null); 
     132                         
     133                        $msg = "<p>Die Datenbankeinstellungen stimmen nicht. Bitte klicke auf [Zurück] und überprüfe deine " . 
     134                                "Eingaben.</p>" . 
     135                                "<h3>Detaillierte Ergebnisse</h3><table border=\"0\">"; 
     136                         
     137                        foreach ($this->diags as $action => $result) { 
     138                                $text = !$result ? "<td style=\"color: red;\">Fehlgeschlagen</td>" : "<td style=\"color: green;\">OK</td>"; 
     139                                 
     140                                $msg .= "<tr><td>" . strtoupper($action) . "</td>$text</tr>"; 
     141                        } 
     142                         
     143                        $msg .= "</table>"; 
     144                } 
     145                 
     146                $this->page = $msg; 
     147        } 
     148} 
     149 
     150class InstWiz_GeneralSettings extends Wizard { 
    87151        function init() { 
    88152                $this->setPrev("dbconfig"); 
    89153                $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; 
     154                $this->setTitle("Allgemeine Einstellungen"); 
     155                 
     156                $this->setDefaults(Array( 
     157                        "wiz_title" => "Klassenbuch", 
     158                        "wiz_subtitle" => "der Klasse x an der Schule y" 
     159                )); 
     160        } 
     161         
     162        function setPage() { 
     163                $this->page = "<p></p>" . 
     164                         
     165                        "<table class=\"configTable\"><tr>" . 
     166                        "       <td>Domain:<br />" . 
     167                        "       <input type=\"text\" name=\"wiz_domain\" value=\"[*wiz_domain*]\"></td>" . 
     168                        "       <td class=\"configHelp\">Der absolute Pfad zur Klassenbuch-Installation, inklusive \"http://\"." . 
     169                        "       Befindet sich das Klassenbuch in einem Unterordner auf dem Webserver, muss dieser auch angegeben "  . 
     170                        "       werden: z. B. <em>http://www.meineschule.ch/klasse1c/</em></td>" . 
     171                        "</tr><tr>" . 
     172                        "       <td>Mail-Adresse:<br />" . 
     173                        "       <input type=\"text\" name=\"wiz_mail\" value=\"[*wiz_mail*]\"></td>" . 
     174                        "       <td class=\"configHelp\">Die E-Mail-Adresse, von der alle E-Mails verschickt werden sollen. " . 
     175                        "       z. B. klasse1c@meineschule.ch</td>" . 
     176                        "</tr><tr>" . 
     177                        "       <td>Klassenbuch-Titel:<br />" . 
     178                        "       <input type=\"text\" name=\"wiz_title\" value=\"[*wiz_title*]\"></td>" . 
     179                        "</tr><tr>" . 
     180                        "       <td>Untertitel:<br />" . 
     181                        "       <input type=\"text\" name=\"wiz_subtitle\" value=\"[*wiz_subtitle*]\"></td>" . 
     182                        "       <td class=\"configHelp\">Wird gleich unterhalb des Klassenbuch-Titels angezeigt.</td>" . 
     183                        "</tr><tr>" . 
     184                        "       <td>Ihr Name:<br />" . 
     185                        "       <input type=\"text\" name=\"wiz_adminname\" value=\"[*wiz_adminname*]\"></td>" . 
     186                        "       <td class=\"configHelp\"></td>" . 
     187                        "</tr><tr>" . 
     188                        "       <td>Ihre E-Mailadresse:<br />" . 
     189                        "       <input type=\"text\" name=\"wiz_adminmail\" value=\"[*wiz_adminmail*]\"></td>" . 
     190                        "       <td class=\"configHelp\">An diese Adresse werden Benachrichtigungen über Kontoregistrierungen usw. " . 
     191                        "       gesendet.</td>" . 
     192                        "</tr></table>"; 
    142193        } 
    143194} 
     
    152203        function setPage() { 
    153204                $settings = $this->readFile("../server.settings.default.php"); 
    154                 $keys = Array("db_host", "db_name", "db_user", "db_password", "db_tblprefix"); 
     205                $keys = Array("domain", "mail", "adminmail", "adminname", "title", "subtitle", "db_host", "db_name", 
     206                        "db_user", "db_password", "db_tblprefix"); 
    155207                 
    156208                foreach ($keys as $key => $value) { 
     
    182234$wizard->addPage("dbcheck", $dbcheck); 
    183235 
     236$general = new InstWiz_GeneralSettings("general"); 
     237$wizard->addPage("general", $general); 
     238 
    184239$finish = new InstWiz_Finish("finish"); 
    185240$wizard->addPage("finish", $finish); 
Note: See TracChangeset for help on using the changeset viewer.