diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/helpers/block_helper.php | 49 | ||||
-rw-r--r-- | core/helpers/module.php | 4 | ||||
-rw-r--r-- | core/helpers/photo.php | 1 | ||||
-rw-r--r-- | core/libraries/MY_View.php | 54 |
4 files changed, 107 insertions, 1 deletions
diff --git a/core/helpers/block_helper.php b/core/helpers/block_helper.php new file mode 100644 index 00000000..5f49d444 --- /dev/null +++ b/core/helpers/block_helper.php @@ -0,0 +1,49 @@ +<?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. + */ +abstract class block_helper_Core { + + public static function admin() { + return ""; + } + + public static function head() { + return ""; + } + + public static function top() { + return ""; + } + + public static function bottom() { + return ""; + } + + public static function sidebar() { + return ""; + } + + public static function album() { + return ""; + } + + public static function photo() { + return ""; + } +} diff --git a/core/helpers/module.php b/core/helpers/module.php index 8e6ef3ac..7916e07d 100644 --- a/core/helpers/module.php +++ b/core/helpers/module.php @@ -48,4 +48,8 @@ class Module_Core { public static function is_installed($module_name) { return ORM::factory("module")->where("name", $module_name)->find()->loaded; } + + public static function get_list() { + return ORM::factory("module")->find_all(); + } } diff --git a/core/helpers/photo.php b/core/helpers/photo.php index 126387d6..b3669c96 100644 --- a/core/helpers/photo.php +++ b/core/helpers/photo.php @@ -42,7 +42,6 @@ class Photo_Core { throw new Exception("@todo INVALID_IMAGE_FILE"); } - Kohana::log("debug", print_r($image_info, true)); // Force an extension onto the name $pi = pathinfo($name); if (empty($pi["extension"])) { diff --git a/core/libraries/MY_View.php b/core/libraries/MY_View.php index 26326b5d..d9712d37 100644 --- a/core/libraries/MY_View.php +++ b/core/libraries/MY_View.php @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class View extends View_Core { + private static $block_helpers = null; + /** * Override View_Core::render so that we trap errors stemming from bad PHP includes and show a * visible stack trace to help developers. @@ -38,4 +40,56 @@ class View extends View_Core { return ""; } } + + public static function admin($theme) { + return self::_get_block_helpers("admin", $theme); + } + + public static function head($theme) { + return self::_get_block_helpers("head", $theme); + } + + public static function top($theme) { + return self::_get_block_helpers("top", $theme); + } + + public static function bottom($theme) { + return self::_get_block_helpers("bottom", $theme); + } + + public static function sidebar($theme) { + return self::_get_block_helpers("sidebar", $theme); + } + + public static function album($theme) { + return self::_get_block_helpers("album", $theme); + } + + public static function album_header($theme) { + return self::_get_block_helpers("album_header", $theme); + } + + public static function photo($theme) { + return self::_get_block_helpers("photo", $theme); + } + + private static function _get_block_helpers($method, $theme) { + if (empty(self::$block_helpers[$method])) { + foreach (module::get_list() as $module) { + $helper_path = MODPATH . "$module->name/helpers/{$module->name}_block.php"; + $helper_class = "{$module->name}_block"; + if (file_exists($helper_path) && method_exists($helper_class, $method)) { + self::$block_helpers[$method][] = "$helper_class"; + } + } + } + + $blocks = ""; + if (!empty(self::$block_helpers[$method])) { + foreach (self::$block_helpers[$method] as $helper_class) { + $blocks .= call_user_func_array(array($helper_class, $method), array($theme)) . "\n"; + } + } + return $blocks; + } } |