app/views/resolve/_cover_image.html.erb
<%=
# Set parameter for size, small|medium|large if you like
size ||= "medium"
fix_size ||= true
# small med and x-large correspond roughly to amazon sm, med and lg.
# large corresponds roughly to google medium. Just one dimension to
# prevent disproportionate scaling. We use CSS so we can set maximums
# in BOTH dimensions but let aspect ratio remain the same. We put it
# inline so HTML Snippet API clients get images constrained to reasonable
# sizes without extra CSS. IE6 won't do max-height/max-width, sorry IE6, no
# way to accomodate you (trying to put a width and a max-width triggers
# weird IE8 bugs!). Best we can do.
#
# generally the 'max-height' is our operative maximum for ordinary ratios,
# but we let the width be more than the height for weird ratio'd covers
# that are wider than square.
dimensions_style = {
"small" => "max-height: 80px; max-width: 100px; box-sizing: content-box;",
"medium" => "max-height: 160px; max-width: 200px; box-sizing: content-box;",
"large" => "max-height: 200px; max-width: 240px; box-sizing: content-box;",
"extra-large" => "max-height: 475px; max-width: 570px; box-sizing: content-box;" }
img_st = cover_image_response(size)
if img_st
img_data = img_st.view_data
img_params = {'src'=>img_data[:url],
'class'=>'cover_image',
'alt'=>h(img_data[:display_text])}
# If we're in https mode, and the original url is http, use
# Umlaut proxy to avoid browser security warning.
if (request.protocol != img_params['src'][0..6])
img_params['src'] = url_for(:controller => "resource", :action => "proxy", :id => img_st.id )
end
img_params.merge!( "style" => dimensions_style[size]) if fix_size
tag('img', img_params )
end %>