Changeset 71
- Timestamp:
- 11/03/07 12:34:10 (6 years ago)
- Location:
- trunk/installation
- Files:
-
- 4 edited
-
index.php (modified) (8 diffs)
-
installation.css (modified) (2 diffs)
-
installation.tmpl (modified) (1 diff)
-
wizard.php (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/installation/index.php
r24 r71 3 3 // Der Zugriff auf das Klassenbuch darf über diese Datei erfolgen 4 4 define("_KBSECURE", true); 5 6 // Fehlermeldungen ganz abschalten 7 error_reporting(0); 5 8 6 9 require_once("wizard.php"); … … 46 49 47 50 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. " . 49 54 "Ferner wird der Name einer bereits existierenden Datenbank benötigt und der Benutzername und das Passwort " . 50 55 "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 56 54 57 "<h3>Basiseinstellungen</h3>" . … … 61 64 " <input type=\"text\" name=\"wiz_db_name\" value=\"[*wiz_db_name*]\"></td>" . 62 65 " <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>" . 64 67 "</tr><tr>" . 65 68 " <td>Benutzername:<br />" . … … 70 73 " <td>Passwort:<br />" . 71 74 " <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>" . 75 77 "</tr></table>" . 76 78 … … 79 81 " <td>Tabellenpräfix:<br />" . 80 82 " <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>" . 82 85 "</tr></table>"; 83 86 } … … 85 88 86 89 class 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 150 class InstWiz_GeneralSettings extends Wizard { 87 151 function init() { 88 152 $this->setPrev("dbconfig"); 89 153 $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>"; 142 193 } 143 194 } … … 152 203 function setPage() { 153 204 $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"); 155 207 156 208 foreach ($keys as $key => $value) { … … 182 234 $wizard->addPage("dbcheck", $dbcheck); 183 235 236 $general = new InstWiz_GeneralSettings("general"); 237 $wizard->addPage("general", $general); 238 184 239 $finish = new InstWiz_Finish("finish"); 185 240 $wizard->addPage("finish", $finish); -
trunk/installation/installation.css
r18 r71 24 24 .configTable input { 25 25 width: 140px; 26 margin-right: 8px; 26 27 } 27 28 … … 43 44 font-size: 8pt; 44 45 } 46 47 .invalidInputField { 48 border: #FF6655 1px solid; 49 } -
trunk/installation/installation.tmpl
r18 r71 5 5 <link href="../design/{DESIGN}/css/design.css" media="screen, projection" type="text/css" rel="stylesheet" /> 6 6 <link href="installation.css" media="screen, projection" type="text/css" rel="stylesheet" /> 7 8 <script src="../javascript/prototype.js" type="text/javascript"></script> 9 10 <script type="text/javascript"> 11 document.observe("dom:loaded", function() { 12 var form = $("wizardForm"); 13 var prevButton = $("prevButton"); 14 var nextButton = $("nextButton"); 15 16 document.observe("keypress", function(event) { 17 if (Event.KEY_RETURN === event.keyCode) { 18 if (nextButton) { 19 nextButton.click(); 20 } else if (prevButton) { 21 prevButton.click(); 22 } 23 } 24 }); 25 26 nextButton.observe("click", function(event) { 27 var error = false; 28 29 form.getElements().each(function(element) { 30 if (element.type !== "hidden" && !element.present()) { 31 element.addClassName("invalidInputField"); 32 error = true; 33 } else { 34 element.removeClassName("invalidInputField"); 35 } 36 }); 37 38 if (error) { 39 event.stop(); 40 return false; 41 } 42 }); 43 }); 44 </script> 7 45 8 46 <title>Klassenbuch - Installation{IF WIZARDTITLE} - {WIZARDTITLE}{ENDIF}</title> -
trunk/installation/wizard.php
r18 r71 184 184 return $this->out; 185 185 } 186 187 /**188 * Private: Helper, displays progress bar189 */190 function _displayProgress($message = '') {191 $this->page = <<<EOB192 <script type="text/javascript" language="JavaScript">193 aimg=new Image();194 aimg.src="progressbar.gif";195 </script>196 <br /><br /><br /><br />197 <table width="100%" border="0"><tr><td align="center">198 <div id="progresstext"><b>{$message}</b></div>199 <img src="progressbar.gif">200 </td></tr></table>201 EOB;202 }203 186 204 187 /** … … 352 335 $tmpl->read_file("installation.tmpl"); 353 336 354 $tmpl->set_var("WIZARDTITLE", $this->title);355 337 $tmpl->set_var("WIZARDBODY", $this->_getPageBody()); 356 338 $tmpl->set_var("WIZARDBUTTONS", $this->_getButtons()); 339 $tmpl->set_var("WIZARDTITLE", $this->title); 357 340 358 341 $tmpl->parse(); … … 458 441 $p = $this->wizard == null ? $this->bProgress : $this->wizard->bProgress; 459 442 460 // if (!$p) { 461 $this->setPage(); 462 /* } else { 463 $this->setNext($this->wizard->pagename); 464 $this->_displayProgress("Wählen Sie [Weiter] um fortzufahren"); 465 } */ 443 $this->setPage(); 466 444 467 445 $out = $this->page; … … 522 500 523 501 // Done 524 return "<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\" name=\"WIZARDFORM\">" . $hf . $out;502 return "<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\" id=\"wizardForm\">" . $hf . $out; 525 503 } 526 504 … … 529 507 */ 530 508 function _getButtons() { 531 $b_out = "<script type=\"text/javascript\" language=\"JavaScript\">532 document.onkeypress = function enterHandler(ev) {533 if (!ev) {534 ev = window.event;535 }536 537 k = ev.keyCode;538 539 if (k == 13) {540 if (!document.WIZARDFORM.next.disabled) {541 document.WIZARDFORM.next.click();542 } else if (!document.WIZARDFORM.prev.disabled) {543 document.WIZARDFORM.prev.click();544 }545 }546 };547 </script>";548 549 509 $b_out = "<div id=\"buttons\">"; 550 510 551 511 if ($this->prevPage) { 552 512 $b_out .= "<input type=\"hidden\" name=\"onprev\" value=\"" . 553 $this->prevPage. "\"><input type=\"submit\" name=\"prev\" tabindex=\"1\" value=\"" .513 $this->prevPage. "\"><input type=\"submit\" id=\"prevButton\" name=\"prev\" tabindex=\"1\" value=\"" . 554 514 $this->prevCaption . "\">"; 555 515 } … … 557 517 if ($this->nextPage) { 558 518 $b_out .= "<input type=\"hidden\" name=\"onnext\" tabindex=\"0\" value=\"" . 559 $this->nextPage . "\"><input type=\"submit\" name=\"next\" value=\"" .519 $this->nextPage . "\"><input type=\"submit\" id=\"nextButton\" name=\"next\" value=\"" . 560 520 $this->nextCaption . "\">"; 561 521 } 562 522 563 523 $b_out .= "</div>"; 564 524 565 if ($this->wizard->bProgress) {566 $b_out .= "<input type=\"hidden\" name=\"autosubmit\" value=\"" . $this->wizard->pagename . "\">";567 $b_out .= <<<EOB568 569 <script type=\"text/javascript\" language=\"JavaScript\">570 document.WIZARDFORM.next.disabled=true;571 document.getElementById(\"progresstext\").innerHTML=\"<b>Please Wait</b>\";572 setTimeout(\"document.WIZARDFORM.submit()\", 1000);573 </script>574 575 EOB;576 }577 578 525 return $b_out; 579 526 }
Note: See TracChangeset
for help on using the changeset viewer.