Module: RailsBreadcrumbs::ViewAdditions

Defined in:
lib/rails_breadcrumbs/view_additions.rb

Instance Method Summary collapse

Instance Method Details

#render_breadcrumbs(options = {}) ⇒ Object

Renders breadcrumbs

<ul>
  <li class="first">
    <%=link_to(image_tag("breadcrumbs/home.png", {:alt => "Home", :title => "Home"}), :controller => "/welcome") %> &gt;
  </li>
  <% if @breadcrumbs %>
    <% @breadcrumbs[0..-2].each do |txt, path| %>
      <li>
        <%= link_to(h(txt), path) %> &gt;
      </li>
    <% end %>
    <li>
      <span><%= link_to(h(@breadcrumbs.last.first), @breadcrumbs.last.second) %> </span>
    </li>
  <% end %>
</ul>


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/rails_breadcrumbs/view_additions.rb', line 25

def render_breadcrumbs(options = {})
  output = ""
  options = ::RailsBreadcrumbs.options.merge(options)
  home = I18n.t(options[:locale_root] + options[:home_label], :default => options[:home_label])

  # First item is home
  if options[:include_home_icon]
    output << (:li, {:class => "first_breadcrumb_item"}, false) do
      link_to(image_tag("breadcrumbs/home.png", {:alt => home, :title => home}),options[:home_path]) +
      (@breadcrumbs && @breadcrumbs.size() > 0 ? raw(options[:item_separator]) : "")
    end
  end

  # First item is home
  if options[:include_home_label]
    output << (:li, {:class => "first_breadcrumb_item"}, false) do
      link_to( h(home), options[:home_path]) +
      (@breadcrumbs && @breadcrumbs.size() > 0 ? raw(options[:item_separator]) : "")
    end
  end

  # Midle items
  if @breadcrumbs
    @breadcrumbs[0..-2].each do |txt, path|
      output << (:li, {:class => "last_breadcrumb_item"}, false) do
        link_to( h(txt), path) + raw(options[:item_separator])
      end
    end
  end

  # Last item
  if @breadcrumbs
    if options[:make_last_item_as_link]
      output << (:li, {:class => "last_breadcrumb_item"}, false) do
        link_to( h(@breadcrumbs.last.first), @breadcrumbs.last.second)
      end
    else
      output << (:li, {:class => "last_breadcrumb_item"}, false) do
        (:span, h(@breadcrumbs.last.first))
      end
    end
  end

  # Return result
  ('ul', output, {:class => options[:css_class]}, false)
end