aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/helpers/url_helper.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2004-12-09 23:18:25 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2004-12-09 23:18:25 +0000
commite1917cab3249e7341160bce66f90b5ec52e14733 (patch)
tree57fa146ffa9454100ddf02cf3fd04dfe81e9597c /actionpack/lib/action_view/helpers/url_helper.rb
parentbf33b6ccaec2b9de38af804c8ac1e00310a8622d (diff)
downloadrails-e1917cab3249e7341160bce66f90b5ec52e14733.tar.gz
rails-e1917cab3249e7341160bce66f90b5ec52e14733.tar.bz2
rails-e1917cab3249e7341160bce66f90b5ec52e14733.zip
Added link_to_image(src, options = {}, html_options = {}, *parameters_for_method_reference)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@105 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_view/helpers/url_helper.rb')
-rw-r--r--actionpack/lib/action_view/helpers/url_helper.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/actionpack/lib/action_view/helpers/url_helper.rb b/actionpack/lib/action_view/helpers/url_helper.rb
index feda33d7c1..b36d5a4c0b 100644
--- a/actionpack/lib/action_view/helpers/url_helper.rb
+++ b/actionpack/lib/action_view/helpers/url_helper.rb
@@ -25,6 +25,43 @@ module ActionView
end
end
+ # Creates a link tag to the image residing at the +src+ using an URL created by the set of +options+. See the valid options in
+ # link:classes/ActionController/Base.html#M000021. It's also possible to pass a string instead of an options hash to
+ # get a link tag that just points without consideration. The <tt>html_options</tt> works jointly for the image and ahref tag by
+ # letting the following special values enter the options on the image and the rest goes to the ahref:
+ #
+ # ::alt: If no alt text is given, the file name part of the +src+ is used (capitalized and without the extension)
+ # ::size: Supplied as "XxY", so "30x45" becomes width="30" and height="45"
+ # ::align: Sets the alignment, no special features
+ #
+ # The +src+ can be supplied as a...
+ # * full path, like "/my_images/image.gif"
+ # * file name, like "rss.gif", that gets expanded to "/images/rss.gif"
+ # * file name without extension, like "logo", that gets expanded to "/images/logo.png"
+ def link_to_image(src, options = {}, html_options = {}, *parameters_for_method_reference)
+ image_options = { "src" => src.include?("/") ? src : "/images/#{src}" }
+ image_options["src"] = image_options["src"] + ".png" unless image_options["src"].include?(".")
+
+ if html_options["alt"]
+ image_options["alt"] = html_options["alt"]
+ html_options.delete "alt"
+ else
+ image_options["alt"] = src.split("/").last.split(".").first.capitalize
+ end
+
+ if html_options["size"]
+ image_options["width"], image_options["height"] = html_options["size"].split("x")
+ html_options.delete "size"
+ end
+
+ if html_options["align"]
+ image_options["align"] = html_options["align"]
+ html_options.delete "align"
+ end
+
+ link_to(tag("img", image_options), options, html_options, *parameters_for_method_reference)
+ end
+
# Creates a link tag of the given +name+ using an URL created by the set of +options+, unless the current
# controller, action, and id are the same as the link's, in which case only the name is returned (or the
# given block is yielded, if one exists). This is useful for creating link bars where you don't want to link