summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/controllers/welcome.php32
-rw-r--r--core/views/welcome.html.php18
-rw-r--r--core/views/welcome_syscheck.html.php67
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 ?>