module RobinsHtmlHelpers # TODO: Document the options argument def boxed_content(options = {}, &block) # Default class names options[:bottom_left_class] ||= 'box_bottom_left' options[:bottom_right_class] ||= 'box_bottom_right' options[:top_left_class] ||= 'box_top_left' options[:top_right_class] ||= 'box_top_right' if options[:inner_class] options[:inner_class] = options[:inner_class] + " " + options[:top_right_class] else options[:inner_class] = options[:top_right_class] end if options[:outer_class] options[:outer_class] = options[:outer_class] + " " + options[:bottom_left_class] else options[:outer_class] = options[:bottom_left_class] end concat( content_tag(:div, :style => "padding-top: 1px;") do # Extra div to fix margin problems in IE 6 content_tag(:div, :class => options[:outer_class], :id => options[:outer_id] ) do content_tag(:div, :class => options[:bottom_right_class]) do content_tag(:div, :class => options[:top_left_class]) do content_tag(:div, :class => options[:inner_class], :id => options[:inner_id]) do capture(&block) end end end end end ) end end ActionView::Base.class_eval do include RobinsHtmlHelpers end