From ab38c9277154504d321360a8555593696ee202eb Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Tue, 16 Jun 2009 13:34:42 -0700 Subject: Refactor common xxx_menu() code into private _menu() helper. --- modules/gallery/libraries/Theme_View.php | 41 +++++++------------------------- 1 file changed, 9 insertions(+), 32 deletions(-) (limited to 'modules') diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index 484b93b0..31c2faa7 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -109,50 +109,27 @@ class Theme_View_Core extends View { } public function album_menu() { - $menu = Menu::factory("root"); - gallery_menu::album($menu, $this); - - foreach (module::active() as $module) { - if ($module->name == "gallery") { - continue; - } - $class = "{$module->name}_menu"; - if (method_exists($class, "album")) { - call_user_func_array(array($class, "album"), array(&$menu, $this)); - } - } - - print $menu; + $this->_menu("album"); } public function tag_menu() { - $menu = Menu::factory("root"); - gallery_menu::tag($menu, $this); - - foreach (module::active() as $module) { - if ($module->name == "gallery") { - continue; - } - $class = "{$module->name}_menu"; - if (method_exists($class, "tag")) { - call_user_func_array(array($class, "tag"), array(&$menu, $this)); - } - } - - print $menu; + $this->_menu("tag"); } public function photo_menu() { - $menu = Menu::factory("root"); - gallery_menu::photo($menu, $this); + $this->_menu("photo"); + } + private function _menu($type) { + $menu = Menu::factory("root"); + call_user_func_array(array("gallery_menu", $type), array(&$menu, $this)); foreach (module::active() as $module) { if ($module->name == "gallery") { continue; } $class = "{$module->name}_menu"; - if (method_exists($class, "photo")) { - call_user_func_array(array($class, "photo"), array(&$menu, $this)); + if (method_exists($class, $type)) { + call_user_func_array(array($class, $type), array(&$menu, $this)); } } -- cgit v1.2.3 From 40b107dd6425de70f58ee97ed395348b7d518aa4 Mon Sep 17 00:00:00 2001 From: Andy Staudacher Date: Tue, 16 Jun 2009 14:12:40 -0700 Subject: Fix html bug in l10n message --- modules/comment/views/admin_block_recent_comments.html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'modules') diff --git a/modules/comment/views/admin_block_recent_comments.html.php b/modules/comment/views/admin_block_recent_comments.html.php index 8b9634c5..edaa19ae 100644 --- a/modules/comment/views/admin_block_recent_comments.html.php +++ b/modules/comment/views/admin_block_recent_comments.html.php @@ -8,8 +8,8 @@ width="32" height="32" /> created) ?> - %author_name said %comment_text", - array("author_name" => p::clean($comment->author_name()), + %author_name said %comment_text', + array("author_name" => p::clean($comment->author_name()), "comment_text" => text::limit_words(p::clean($comment->text), 50))); ?> -- cgit v1.2.3 From 51b9873041f1a2161272ad4a3250d52a334024ef Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Tue, 16 Jun 2009 17:17:39 -0700 Subject: Move all the fullsize code into the theme to make it less confusing. Partial fix for ticket #427. --- modules/gallery/helpers/gallery_theme.php | 10 ---- modules/gallery/js/fullsize.js | 78 ------------------------------- themes/default/js/fullsize.js | 78 +++++++++++++++++++++++++++++++ themes/default/views/photo.html.php | 13 ++++++ 4 files changed, 91 insertions(+), 88 deletions(-) delete mode 100644 modules/gallery/js/fullsize.js create mode 100644 themes/default/js/fullsize.js (limited to 'modules') diff --git a/modules/gallery/helpers/gallery_theme.php b/modules/gallery/helpers/gallery_theme.php index c28c9040..44c1d3f1 100644 --- a/modules/gallery/helpers/gallery_theme.php +++ b/modules/gallery/helpers/gallery_theme.php @@ -31,16 +31,6 @@ class gallery_theme_Core { url::file("modules/gallery/css/quick.css") . "\" />"; $buf .= html::script("modules/gallery/js/quick.js"); } - if ($theme->page_type == "photo" && access::can("view_full", $theme->item())) { - $buf .= ""; - $buf .= html::script("modules/gallery/js/fullsize.js"); - } if (module::is_active("rss")) { if ($item = $theme->item()) { diff --git a/modules/gallery/js/fullsize.js b/modules/gallery/js/fullsize.js deleted file mode 100644 index f95dc428..00000000 --- a/modules/gallery/js/fullsize.js +++ /dev/null @@ -1,78 +0,0 @@ -/** - * @todo Move inline CSS out to external style sheet (theme style sheet) - */ -$(document).ready(function() { - $(".gFullSizeLink").click(function() { - var width = $(document).width(); - var height = $(document).height(); - - $("body").append('
'); - - var image_size = _auto_fit(fullsize_detail.width, fullsize_detail.height); - - $("body").append('
' + - '
'); - - $("#gFullsize").append(''); - $("#gFullsizeClose").click(function() { - $("#gFullsizeOverlay*").remove(); - $("#gFullsize").remove(); - }); - $(window).resize(function() { - $("#gFullsizeOverlay").width($(document).width()); - $("#gFullsizeOverlay").height($(document).height()); - image_size = _auto_fit(fullsize_detail.width, fullsize_detail.height); - $("#gFullsize").height(image_size.height); - $("#gFullsize").width(image_size.width); - $("#gFullsize").css("top", image_size.top); - $("#gFullsize").css("left", image_size.left); - $("#gFullSizeImage").height(image_size.height); - $("#gFullSizeImage").width(image_size.width); - }); - }); -}); - -/* - * Calculate the size of the image panel based on the size of the image and the size of the - * window. Scale the image so the entire panel fits in the view port. - */ -function _auto_fit(imageWidth, imageHeight) { - // ui-dialog gives a padding of 2 pixels - var windowWidth = $(window).width() - 10; - var windowHeight = $(window).height() - 10; - - /* If the width is greater then scale the image width first */ - if (imageWidth > windowWidth) { - var ratio = windowWidth / imageWidth; - imageWidth *= ratio; - imageHeight *= ratio; - } - /* after scaling the width, check that the height fits */ - if (imageHeight > windowHeight) { - var ratio = windowHeight / imageHeight; - imageWidth *= ratio; - imageHeight *= ratio; - } - - // handle the case where the calculation is almost zero (2.14e-14) - return { - top: ((windowHeight - imageHeight) / 2).toFixed(2), - left: ((windowWidth - imageWidth) / 2).toFixed(2), - width: imageWidth.toFixed(2), - height: imageHeight.toFixed(2) - }; -} diff --git a/themes/default/js/fullsize.js b/themes/default/js/fullsize.js new file mode 100644 index 00000000..f95dc428 --- /dev/null +++ b/themes/default/js/fullsize.js @@ -0,0 +1,78 @@ +/** + * @todo Move inline CSS out to external style sheet (theme style sheet) + */ +$(document).ready(function() { + $(".gFullSizeLink").click(function() { + var width = $(document).width(); + var height = $(document).height(); + + $("body").append('
'); + + var image_size = _auto_fit(fullsize_detail.width, fullsize_detail.height); + + $("body").append('
' + + '
'); + + $("#gFullsize").append(''); + $("#gFullsizeClose").click(function() { + $("#gFullsizeOverlay*").remove(); + $("#gFullsize").remove(); + }); + $(window).resize(function() { + $("#gFullsizeOverlay").width($(document).width()); + $("#gFullsizeOverlay").height($(document).height()); + image_size = _auto_fit(fullsize_detail.width, fullsize_detail.height); + $("#gFullsize").height(image_size.height); + $("#gFullsize").width(image_size.width); + $("#gFullsize").css("top", image_size.top); + $("#gFullsize").css("left", image_size.left); + $("#gFullSizeImage").height(image_size.height); + $("#gFullSizeImage").width(image_size.width); + }); + }); +}); + +/* + * Calculate the size of the image panel based on the size of the image and the size of the + * window. Scale the image so the entire panel fits in the view port. + */ +function _auto_fit(imageWidth, imageHeight) { + // ui-dialog gives a padding of 2 pixels + var windowWidth = $(window).width() - 10; + var windowHeight = $(window).height() - 10; + + /* If the width is greater then scale the image width first */ + if (imageWidth > windowWidth) { + var ratio = windowWidth / imageWidth; + imageWidth *= ratio; + imageHeight *= ratio; + } + /* after scaling the width, check that the height fits */ + if (imageHeight > windowHeight) { + var ratio = windowHeight / imageHeight; + imageWidth *= ratio; + imageHeight *= ratio; + } + + // handle the case where the calculation is almost zero (2.14e-14) + return { + top: ((windowHeight - imageHeight) / 2).toFixed(2), + left: ((windowWidth - imageWidth) / 2).toFixed(2), + width: imageWidth.toFixed(2), + height: imageHeight.toFixed(2) + }; +} diff --git a/themes/default/views/photo.html.php b/themes/default/views/photo.html.php index cc4cc750..0fbaa3e0 100644 --- a/themes/default/views/photo.html.php +++ b/themes/default/views/photo.html.php @@ -1,4 +1,17 @@ + +item())): ?> + + + +
photo_top() ?> -- cgit v1.2.3 From f6e8f34bef322e087be46274d6cc42490fd22ce3 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Tue, 16 Jun 2009 17:57:24 -0700 Subject: Add the real image url to the anchor elements for our full size links so that right clicking works. Turn the full size rendering code into a function and call it with arguments, instead of creating a hacky named data structure to hold the info. Further partial fixes for ticket #427. --- modules/gallery/helpers/gallery_menu.php | 11 ++- themes/default/js/fullsize.js | 134 +++++++++++++++---------------- themes/default/views/photo.html.php | 18 ++--- 3 files changed, 80 insertions(+), 83 deletions(-) (limited to 'modules') diff --git a/modules/gallery/helpers/gallery_menu.php b/modules/gallery/helpers/gallery_menu.php index 4499e50a..fb0234b1 100644 --- a/modules/gallery/helpers/gallery_menu.php +++ b/modules/gallery/helpers/gallery_menu.php @@ -96,12 +96,11 @@ class gallery_menu_Core { static function photo($menu, $theme) { if (access::can("view_full", $theme->item())) { - $menu - ->append(Menu::factory("link") - ->id("fullsize") - ->label(t("View full size")) - ->url("#") - ->css_class("gFullSizeLink")); + $menu->append(Menu::factory("link") + ->id("fullsize") + ->label(t("View full size")) + ->url($theme->item()->file_url()) + ->css_class("gFullSizeLink")); } } diff --git a/themes/default/js/fullsize.js b/themes/default/js/fullsize.js index f95dc428..b2895c23 100644 --- a/themes/default/js/fullsize.js +++ b/themes/default/js/fullsize.js @@ -1,78 +1,76 @@ /** * @todo Move inline CSS out to external style sheet (theme style sheet) */ -$(document).ready(function() { - $(".gFullSizeLink").click(function() { - var width = $(document).width(); - var height = $(document).height(); +var show_full_size = function(image_url, image_width, image_height) { + /* + * Calculate the size of the image panel based on the size of the image and the size of the + * window. Scale the image so the entire panel fits in the view port. + */ + function _auto_fit(imageWidth, imageHeight) { + // ui-dialog gives a padding of 2 pixels + var windowWidth = $(window).width() - 10; + var windowHeight = $(window).height() - 10; - $("body").append('
'); + /* If the width is greater then scale the image width first */ + if (imageWidth > windowWidth) { + var ratio = windowWidth / imageWidth; + imageWidth *= ratio; + imageHeight *= ratio; + } + /* after scaling the width, check that the height fits */ + if (imageHeight > windowHeight) { + var ratio = windowHeight / imageHeight; + imageWidth *= ratio; + imageHeight *= ratio; + } - var image_size = _auto_fit(fullsize_detail.width, fullsize_detail.height); + // handle the case where the calculation is almost zero (2.14e-14) + return { + top: ((windowHeight - imageHeight) / 2).toFixed(2), + left: ((windowWidth - imageWidth) / 2).toFixed(2), + width: imageWidth.toFixed(2), + height: imageHeight.toFixed(2) + }; + } - $("body").append('
' + - '
'); + var width = $(document).width(); + var height = $(document).height(); - $("#gFullsize").append(''); - $("#gFullsizeClose").click(function() { - $("#gFullsizeOverlay*").remove(); - $("#gFullsize").remove(); - }); - $(window).resize(function() { - $("#gFullsizeOverlay").width($(document).width()); - $("#gFullsizeOverlay").height($(document).height()); - image_size = _auto_fit(fullsize_detail.width, fullsize_detail.height); - $("#gFullsize").height(image_size.height); - $("#gFullsize").width(image_size.width); - $("#gFullsize").css("top", image_size.top); - $("#gFullsize").css("left", image_size.left); - $("#gFullSizeImage").height(image_size.height); - $("#gFullSizeImage").width(image_size.width); - }); - }); -}); + $("body").append('
'); -/* - * Calculate the size of the image panel based on the size of the image and the size of the - * window. Scale the image so the entire panel fits in the view port. - */ -function _auto_fit(imageWidth, imageHeight) { - // ui-dialog gives a padding of 2 pixels - var windowWidth = $(window).width() - 10; - var windowHeight = $(window).height() - 10; + var image_size = _auto_fit(image_width, image_height); - /* If the width is greater then scale the image width first */ - if (imageWidth > windowWidth) { - var ratio = windowWidth / imageWidth; - imageWidth *= ratio; - imageHeight *= ratio; - } - /* after scaling the width, check that the height fits */ - if (imageHeight > windowHeight) { - var ratio = windowHeight / imageHeight; - imageWidth *= ratio; - imageHeight *= ratio; - } + $("body").append('
' + + '
'); - // handle the case where the calculation is almost zero (2.14e-14) - return { - top: ((windowHeight - imageHeight) / 2).toFixed(2), - left: ((windowWidth - imageWidth) / 2).toFixed(2), - width: imageWidth.toFixed(2), - height: imageHeight.toFixed(2) - }; -} + $("#gFullsize").append(''); + $("#gFullsizeClose").click(function() { + $("#gFullsizeOverlay*").remove(); + $("#gFullsize").remove(); + }); + $(window).resize(function() { + $("#gFullsizeOverlay").width($(document).width()); + $("#gFullsizeOverlay").height($(document).height()); + image_size = _auto_fit(image_width, image_height); + $("#gFullsize").height(image_size.height); + $("#gFullsize").width(image_size.width); + $("#gFullsize").css("top", image_size.top); + $("#gFullsize").css("left", image_size.left); + $("#gFullSizeImage").height(image_size.height); + $("#gFullSizeImage").width(image_size.width); + }); +}; diff --git a/themes/default/views/photo.html.php b/themes/default/views/photo.html.php index 0fbaa3e0..ddea75bc 100644 --- a/themes/default/views/photo.html.php +++ b/themes/default/views/photo.html.php @@ -1,15 +1,15 @@ item())): ?> - +