diff options
-rw-r--r-- | core/controllers/welcome.php | 32 | ||||
-rw-r--r-- | core/views/welcome.html.php | 18 | ||||
-rw-r--r-- | core/views/welcome_syscheck.html.php | 67 |
3 files changed, 60 insertions, 57 deletions
diff --git a/core/controllers/welcome.php b/core/controllers/welcome.php index 1e77ad4a..672252eb 100644 --- a/core/controllers/welcome.php +++ b/core/controllers/welcome.php @@ -21,9 +21,12 @@ class Welcome_Controller extends Template_Controller { public $template = 'welcome.html'; function Index() { + $this->template->syscheck = new View('welcome_syscheck.html'); + $this->template->syscheck->errors = $this->_get_config_errors(); + $this->_create_directories(); } - function Syscheck() { + private function _get_config_errors() { $errors = array(); if (!file_exists(VARPATH)) { $error = new stdClass(); @@ -47,19 +50,34 @@ class Welcome_Controller extends Template_Controller { $error->message2 = "Then edit this file and enter your database configuration settings."; $errors[] = $error; } else if (!is_readable($db_php)) { + $error = new stdClass(); $error->message = "Not readable: $db_php"; $error->instructions[] = "chmod 644 $db_php"; $error->message2 = "Then edit this file and enter your database configuration settings."; $errors[] = $error; + } else { + $old_handler = set_error_handler(array('Welcome_Controller', '_error_handler')); + try { + Database::instance()->connect(); + } catch (Exception $e) { + $error = new stdClass(); + $error->message = "Database error: {$e->getMessage()}"; + $db_name = Kohana::config('database.default.connection.database'); + if (strchr($error->message, "Unknown database")) { + $error->instructions[] = "mysqladmin -uroot create $db_name"; + } else { + $error->instructions = array(); + $error->message2 = "Check " . VARPATH . "database.php"; + } + $errors[] = $error; + } + set_error_handler($old_handler); } - if (empty($errors)) { - Database::instance()->connect(); - } + return $errors; + } - $this->_create_directories(); - $this->template = new View('welcome_syscheck.html'); - $this->template->errors = $errors; + function _error_handler() { } function _create_directories() { diff --git a/core/views/welcome.html.php b/core/views/welcome.html.php index a22bb324..9b77ce20 100644 --- a/core/views/welcome.html.php +++ b/core/views/welcome.html.php @@ -21,6 +21,10 @@ margin: 0px; } + h1, h2, h3 { + margin-bottom: .1em; + } + p { margin: 0 0 0 0; padding-left: 1em; @@ -35,6 +39,14 @@ color: red; } + .success { + color: green; + } + + p.success { + font-weight: bold; + } + div.block { padding: 0px; margin: 0px; @@ -42,7 +54,7 @@ } ul { - margin-top: -1em; + margin-top: -.25em; } </style> </head> @@ -69,8 +81,8 @@ links to get you started. </p> - <h2>About your config</h2> - <iframe width="100%" src="<?= url::site("welcome/syscheck") ?>"/></iframe> + <h2>System Configuration</h2> + <?= $syscheck ?> <h2>Activities</h2> <p> diff --git a/core/views/welcome_syscheck.html.php b/core/views/welcome_syscheck.html.php index c87c4763..3a6b352c 100644 --- a/core/views/welcome_syscheck.html.php +++ b/core/views/welcome_syscheck.html.php @@ -1,49 +1,22 @@ <? defined("SYSPATH") or die("No direct script access."); ?> -<html> - <head> - <title>Gallery3 Scaffold</title> - <style> - body { - font-family: Trebuchet MS; - } +<? foreach ($errors as $error): ?> +<div class="block"> + <p class="error"> + <?= $error->message ?> + </p> + <? foreach ($error->instructions as $line): ?> + <pre><?= $line ?></pre> + <? endforeach ?> - p { - margin: 0 0 0 0; - padding: 5px; - } - - pre { - margin: 0; - padding-left: 1em; - } - - .error { - color: red; - } - - div.block { - border: 1px solid black; - margin-bottom: 5px; - paddding: 1em; - } - </style> - </head> - <body> - <? foreach ($errors as $error): ?> - <div class="block"> - <p class="error"> - <?= $error->message ?> - </p> - <? foreach ($error->instructions as $line): ?> - <pre><?= $line ?></pre> - <? endforeach ?> - - <? if (!empty($error->message2)): ?> - <p class="error"> - <?= $error->message2 ?> - </p> - <? endif ?> - </div> - <? endforeach ?> - </body> -</html> + <? if (!empty($error->message2)): ?> + <p class="error"> + <?= $error->message2 ?> + </p> + <? endif ?> +</div> +<? endforeach ?> +<? if (empty($errors)): ?> +<p class="success"> + Your system is ready to go. +</p> +<? endif ?> |