summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/helpers/block_helper.php49
-rw-r--r--core/helpers/module.php4
-rw-r--r--core/helpers/photo.php1
-rw-r--r--core/libraries/MY_View.php54
-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.php33
-rw-r--r--themes/default/views/album.html.php4
-rw-r--r--themes/default/views/page.html.php11
-rw-r--r--themes/default/views/photo.html.php5
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 ?>" />