Sha256: 64120b6273d0af497112a4a11fa425d9d6bbb50bffdf479003004d957333eb46

Contents?: true

Size: 1.49 KB

Versions: 1

Compression:

Stored size: 1.49 KB

Contents

<%
  # Props
  taxon = local_assigns.fetch(:taxon, nil)
  separator = local_assigns.fetch(:separator, '&nbsp;&raquo;&nbsp;')
  base_class = local_assigns.fetch(:base_class, nil)

  # Methods
  def breadcrumbs(taxon, separator, breadcrumb_class = 'inline')
    return '' if current_page?('/') || taxon.nil?

    crumbs = [[t('spree.home'), spree.root_path]]

    crumbs << [t('spree.products'), products_path]
    if taxon
      crumbs += taxon.ancestors.collect { |ancestor| [ancestor.name, spree.nested_taxons_path(ancestor.permalink)] } unless taxon.ancestors.empty?
      crumbs << [taxon.name, spree.nested_taxons_path(taxon.permalink)]
    end

    separator = raw(separator)

    items = crumbs.each_with_index.collect do |crumb, index|
      content_tag(:li, itemprop: 'itemListElement', itemscope: '', itemtype: 'https://schema.org/ListItem') do
        link_to(crumb.last, itemprop: 'item') do
          content_tag(:span, crumb.first, itemprop: 'name') + tag('meta', { itemprop: 'position', content: (index + 1).to_s }, false, false)
        end + (crumb == crumbs.last ? '' : separator)
      end
    end

    content_tag(
      :nav,
      content_tag(
        :ol,
        raw(items.map(&:mb_chars).join),
        itemscope: '',
        itemtype: 'https://schema.org/BreadcrumbList'),
      class: breadcrumb_class
    )
  end
%>

<% breadcrumbs = breadcrumbs(taxon, separator, "#{base_class}__content") %>

<% if breadcrumbs.present? %>
  <div class="<%= base_class %>">
    <%= breadcrumbs %>
  </div>
<% end %>

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solidus_starter_frontend-0.1.0 app/views/spree/components/navigation/_breadcrumbs.html.erb