From aee3efe972317b49329703e354cc1d90afdf9488 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sat, 20 Dec 2008 00:52:20 +0000 Subject: Create a pattern for admin dashboard blocks and make the "welcome" block. --- core/helpers/core_block.php | 8 ++++++++ core/hooks/load_modules.php | 1 + core/libraries/Admin_View.php | 23 +++++++++++++++++++++++ core/views/admin_dashboard.html.php | 16 +--------------- core/views/admin_dashboard_welcome.html.php | 11 +++++++++++ 5 files changed, 44 insertions(+), 15 deletions(-) create mode 100644 core/views/admin_dashboard_welcome.html.php (limited to 'core') diff --git a/core/helpers/core_block.php b/core/helpers/core_block.php index 7f756b92..3c1e0727 100644 --- a/core/helpers/core_block.php +++ b/core/helpers/core_block.php @@ -29,4 +29,12 @@ class core_block_Core { return new View("in_place_edit.html"); } } + + public static function admin_dashboard_blocks($theme) { + $block = new Block(); + $block->id = "gWelcome"; + $block->title = _("Welcome to Gallery3"); + $block->content = new View("admin_dashboard_welcome.html"); + return $block; + } } \ No newline at end of file diff --git a/core/hooks/load_modules.php b/core/hooks/load_modules.php index 57d0fffb..887582f7 100644 --- a/core/hooks/load_modules.php +++ b/core/hooks/load_modules.php @@ -19,3 +19,4 @@ */ Event::add("system.ready", array("module", "load_modules")); +Event::add("system.post_routing", array("module", "load_themes")); diff --git a/core/libraries/Admin_View.php b/core/libraries/Admin_View.php index 4957fdce..548a4355 100644 --- a/core/libraries/Admin_View.php +++ b/core/libraries/Admin_View.php @@ -59,4 +59,27 @@ class Admin_View_Core extends View { print $menu; } + + /** + * Handle all theme functions that insert module content. + */ + public function __call($function, $args) { + switch ($function) { + case "dashboard_blocks": + $function = "admin_$function"; + $blocks = array(); + foreach (module::installed() as $module) { + $helper_class = "{$module->name}_block"; + if (method_exists($helper_class, $function)) { + $blocks[] = call_user_func_array( + array($helper_class, $function), + array_merge(array($this), $args)); + } + } + return implode("\n", $blocks); + + default: + throw new Exception("@todo UNKNOWN_THEME_FUNCTION: $function"); + } + } } \ No newline at end of file diff --git a/core/views/admin_dashboard.html.php b/core/views/admin_dashboard.html.php index 1cfd8e23..4603a8bf 100644 --- a/core/views/admin_dashboard.html.php +++ b/core/views/admin_dashboard.html.php @@ -1,19 +1,5 @@ -
-

Welcome to Gallery 3!

-
-

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.

- -
-
- +dashboard_blocks(); ?>

Status Messages