diff options
-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 | ||||
-rw-r--r-- | modules/media_rss/helpers/media_rss_block.php (renamed from modules/slideshow/helpers/slideshow.php) | 8 | ||||
-rw-r--r-- | modules/slideshow/helpers/slideshow_block.php | 33 | ||||
-rw-r--r-- | themes/default/views/album.html.php | 4 | ||||
-rw-r--r-- | themes/default/views/page.html.php | 11 | ||||
-rw-r--r-- | themes/default/views/photo.html.php | 5 |
9 files changed, 152 insertions, 17 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; + } } diff --git a/modules/slideshow/helpers/slideshow.php b/modules/media_rss/helpers/media_rss_block.php index 5fadf36b..b1db0bb2 100644 --- a/modules/slideshow/helpers/slideshow.php +++ b/modules/media_rss/helpers/media_rss_block.php @@ -17,8 +17,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -class slideshow { - public static function link() { - return "<a href=\"javascript:PicLensLite.start()\" id=\"gSlideshowLink\" class=\"gButtonLink\">Slideshow</a>"; +class media_rss_block_Core { + public static function head($theme) { + $url = url::site("media_rss/feed/{$theme->item()->id}"); + + return "<link rel=\"alternate\" type=\"" . rest::RSS . "\" href=\"$url\" />"; } } diff --git a/modules/slideshow/helpers/slideshow_block.php b/modules/slideshow/helpers/slideshow_block.php new file mode 100644 index 00000000..b31a5003 --- /dev/null +++ b/modules/slideshow/helpers/slideshow_block.php @@ -0,0 +1,33 @@ +<?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 slideshow_block_Core { + public static function head($theme) { + return "<script src=\"http://lite.piclens.com/current/piclens.js\" type=\"text/javascript\">" . + "</script>"; + } + + public static function album_header() { + return "<a href=\"javascript:PicLensLite.start()\" id=\"gSlideshowLink\" class=\"gButtonLink\">Slideshow</a>"; + } + + public static function photo() { + return "<a href=\"javascript:PicLensLite.start()\" id=\"gSlideshowLink\" class=\"gButtonLink\">Slideshow</a>"; + } +} diff --git a/themes/default/views/album.html.php b/themes/default/views/album.html.php index 43024840..b952af1c 100644 --- a/themes/default/views/album.html.php +++ b/themes/default/views/album.html.php @@ -2,9 +2,7 @@ <div id="gAlbumHeader"> <h1><?= $item->title_edit ?></h1> <span class="gUnderState"><?= $item->description_edit ?></span> - <? if ($theme->module("slideshow")): ?> - <?= slideshow::link() ?> - <? endif; ?> + <?= View::album_header($theme) ?> </div> <ul id="gAlbumGrid"> diff --git a/themes/default/views/page.html.php b/themes/default/views/page.html.php index 24aecfb5..b2263eff 100644 --- a/themes/default/views/page.html.php +++ b/themes/default/views/page.html.php @@ -9,17 +9,10 @@ media="screen,print,projection" /> <link rel="stylesheet" type="text/css" href="<?= $theme->url("css/screen.css") ?>" media="screen,print,projection" /> - <link rel="alternate" type="application/rss+xml" - href="<?= url::site("media_rss/feed/{$theme->item()->id}") ?>" - /> <script src="<?= url::file("lib/jquery.js") ?>" type="text/javascript"></script> <script src="<?= url::file("lib/jquery.form.js") ?>" type="text/javascript"></script> <script src="<?= $theme->url("js/user.js") ?>" type="text/javascript"></script> <script src="<?= $theme->url("js/comment.js") ?>" type="text/javascript"></script> - <script src="http://lite.piclens.com/current/piclens.js" type="text/javascript"></script> - <? if ($user): ?> - <script src="<?= url::file("lib/jquery.jeditable.js") ?>" type="text/javascript"></script> - <? endif; ?> <!-- this stuff will likely be integrated into lib, possibly theme css --> <link rel="stylesheet" type="text/css" href="<?= $theme->url("jquery/jquery.ui.css") ?>" media="screen,print,projection" /> @@ -27,6 +20,10 @@ <script src="<?= $theme->url("jquery/jquery.ui.tabs.js") ?>" type="text/javascript"></script> <!--script src="<?= $theme->url("jquery/jquery.ui.accordion.js") ?>" type="text/javascript"></script--> <!--script src="<?= $theme->url("jquery/jquery.ui.init.js") ?>" type="text/javascript"></script--> + <?= View::head($theme) ?> + <? if ($user): ?> + <script src="<?= url::file("lib/jquery.jeditable.js") ?>" type="text/javascript"></script> + <? endif; ?> </head> <body> diff --git a/themes/default/views/photo.html.php b/themes/default/views/photo.html.php index 6cf95a23..88ffedf9 100644 --- a/themes/default/views/photo.html.php +++ b/themes/default/views/photo.html.php @@ -1,9 +1,8 @@ <? defined("SYSPATH") or die("No direct script access."); ?> <div id="gItem"> <a href="" class="gButtonLink">Full size (1024x768)</a> - <? if ($theme->module("slideshow")): ?> - <?= slideshow::link() ?> - <? endif; ?> + <?= View::photo($theme) ?> + <img id="gPhotoID-<?= $item->id ?>" alt="photo" src="<?= $item->resize_url() ?>" width="<?= $item->resize_width ?>" height="<?= $item->resize_height ?>" /> |