summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/config/routes.php5
-rw-r--r--core/controllers/admin.php37
-rw-r--r--core/controllers/admin_dashboard.php25
-rw-r--r--core/helpers/core_menu.php2
-rw-r--r--core/views/admin_dashboard.html.php57
5 files changed, 101 insertions, 25 deletions
diff --git a/core/config/routes.php b/core/config/routes.php
index 9a802a27..cf1a9e0d 100644
--- a/core/config/routes.php
+++ b/core/config/routes.php
@@ -21,10 +21,11 @@
// The abstract REST_Controller is not directly routable.
$config["^rest\b.*"] = null;
+// Admin controllers are not available, except via /admin
+$config["^admin_.*"] = null;
+
// Redirect /form/add and /form/edit to REST_Controller.
$config["^form/(edit|add)/(\w+)/(.*)$"] = "$2/form_$1/$3";
-$config["^admin/(\w+)/(.*)$"] = "$1_admin/$2";
-
// For now our default page is the scaffolding.
$config["_default"] = "welcome";
diff --git a/core/controllers/admin.php b/core/controllers/admin.php
index 9147059b..30e65886 100644
--- a/core/controllers/admin.php
+++ b/core/controllers/admin.php
@@ -25,32 +25,25 @@ class Admin_Controller extends Controller {
parent::__construct();
}
- public function index() {
- $theme_name = module::get_var("core", "active_admin_theme", "admin_default");
- $template = new Admin_View("admin.html", $theme_name);
- $template->content = new View("dashboard.html");
- print $template;
- }
-
- public function __call($page_name, $args) {
- $theme_name = module::get_var("core", "active_admin_theme", "admin_default");
- // For now, we have only two legal pages.
- // @todo get these pages from the modules
- switch($page_name) {
- case "users":
- $view = new Admin_View("users.html", $theme_name);
- $view->users = ORM::factory("user")->find_all();
- break;
+ public function __call($controller_name, $args) {
+ if ($controller_name == "index") {
+ $controller_name = "dashboard";
+ }
- case "dashboard":
- $view = new Admin_View("dashboard.html", $theme_name);
- break;
+ $controller = "Admin_{$controller_name}_Controller";
+ $controller = new $controller;
- default:
- Kohana::show_404();
+ if ($args) {
+ $method = array_unshift($args);
+ } else {
+ $method = "index";
}
- print $view;
+ $theme_name = module::get_var("core", "active_admin_theme", "admin_default");
+ $template = new Admin_View("admin.html", $theme_name);
+ $template->content =
+ call_user_func_array(array(new $controller, $method), $args);
+ print $template;
}
}
diff --git a/core/controllers/admin_dashboard.php b/core/controllers/admin_dashboard.php
new file mode 100644
index 00000000..7d752495
--- /dev/null
+++ b/core/controllers/admin_dashboard.php
@@ -0,0 +1,25 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2008 Bharat Mediratta
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+class Admin_Dashboard_Controller extends Controller {
+ public function index() {
+ return new View("admin_dashboard.html");
+ }
+}
+
diff --git a/core/helpers/core_menu.php b/core/helpers/core_menu.php
index 674c73e2..284bb10d 100644
--- a/core/helpers/core_menu.php
+++ b/core/helpers/core_menu.php
@@ -70,7 +70,7 @@ class core_menu_Core {
->append(Menu::factory("link")
->id("dashboard")
->label(_("Dashboard"))
- ->url(url::site("admin/dashboard")))
+ ->url(url::site("admin")))
->append(Menu::factory("link")
->id("general_settings")
->label(_("General Settings"))
diff --git a/core/views/admin_dashboard.html.php b/core/views/admin_dashboard.html.php
new file mode 100644
index 00000000..1cfd8e23
--- /dev/null
+++ b/core/views/admin_dashboard.html.php
@@ -0,0 +1,57 @@
+<? defined("SYSPATH") or die("No direct script access."); ?>
+<div class="gBlock">
+ <h2>Welcome to Gallery 3!</h2>
+ <div class="gBlockContent">
+ <p>This is your administration dashboard and it provides a quick overview of status messages,
+ recent updates, and frequently used options. Add or remove blocks and rearrange them
+ to tailor to your needs. The admin menu provides quick access to all of Gallery 3's options
+ and settings. Here are a few of the most used options to get you started.</p>
+ <ul>
+ <li><a href="#">General Settings</a> - General configuation options for your Gallery.</li>
+ <li><a href="#">Modules</a> - Manage available and installed modules.</li>
+ <li><a href="#">Presentation</a> - Choose a theme, set image sizes.</li>
+ </ul>
+ </div>
+</div>
+
+<div class="gBlock">
+ <h2>Status Messages</h2>
+ <ul class="gBlockContent gMessages">
+ <li class="gWarning"><a href="#" title="">Gallery 3.1 is available, you're running Gallery 3.0. Update now!</a></li>
+ <li class="gError"><a href="#" title="">Unable to write to /home/username/gallery3/var</a></li>
+ <li class="gSuccess"><a href="#" title="">Permissions issues fixed</a></li>
+ <li class="gInfo"><a href="#" title="">Just a plain information message</a></li>
+ <li class="gHelp"><a href="#" title="">Contextual help or tip<br/>And here's a second line</a></li>
+ </ul>
+</div>
+
+<div id="gPhotoStream" class="gBlock">
+ <h2>Photo Stream</h2>
+ <div class="gBlockContent">
+ <p>Recent photos added to your Gallery</p>
+ <img src="<?= $theme->url("images/photostream.png") ?>" alt="" />
+ <p class="gWarning">Slider type of display. Show titles underneath or on hover. Draw a keyline around albums, or differentiate some how. Each will be linked to item view</p>
+ </div>
+</div>
+
+<div id="gLogEntries" class="gBlock">
+ <h2>Recent Comments</h2>
+ <ul class="gBlockContent">
+ <li><a href="">hacker</a> 2008-12-10 23:02:23 Something happened</li>
+ <li><a href="">username</a> 2008-12-10 23:02:23 Someone logged in</li>
+ <li><a href="">username</a> 2008-12-10 23:02:23 New module installed</li>
+ <li><a href="">username</a> 2008-12-10 23:02:23 Someone logged in</li>
+ <li><a href="">username</a> 2008-12-10 23:02:23 RSS feed updated</li>
+ </ul>
+</div>
+
+<div id="gLogEntries" class="gBlock">
+ <h2>Log Entries</h2>
+ <ul class="gBlockContent">
+ <li>2008-12-10 23:02:23 Something happened</li>
+ <li>2008-12-10 23:02:23 Someone logged in</li>
+ <li>2008-12-10 23:02:23 New module installed</li>
+ <li>2008-12-10 23:02:23 Someone logged in</li>
+ <li>2008-12-10 23:02:23 RSS feed updated</li>
+ </ul>
+</div>