Отображение дерева таксономии Spree на странице продукта

Я запускаю Spree 2.2. Я пытаюсь, чтобы стандартный список таксономии/фильтра отображался на каждой отдельной странице продукта в Spree, но я не могу найти, где он решает, что там будет отображаться содержимое боковой панели. Если кто-нибудь может пролить свет на то, где/как это было принято, я был бы очень благодарен.

1 ответ

В интерфейсной части spree, более конкретно, на индексном представлении контроллера продукта, маршрут spree_frontend/app/views/spree/products/index.html.erb в начале файла, выясняется, будут ли отображаться таксоны или нет:

<% content_for :sidebar do %>
 <div data-hook="homepage_sidebar_navigation">
 <% if "spree/products" == params[:controller] && @taxon %>
 <%= render :partial => 'spree/shared/filters' %>
 <% else %>
 <%= render :partial => 'spree/shared/taxonomies' %>
 <% end %>
 </div> 
<% end %>

Итак, что вы можете сделать, это написать переопределение, указывающее на любую часть представления products/show, в частности, я предлагаю после привязки данных product_left_part_wrap " который является оболочкой для боковой панели на представлении просмотра продуктов, поэтому ваш deface может выглядеть примерно так:

Deface::Override.new(
 :virtual_path => 'spree/products/show',
 :name => 'add_map_to_product_show',
 :insert_after => '[data-hook="product_left_part_wrap"]',
 :partial => "spree/products/the_taxons_and_filters"
)

И внутри файла с именем _the_taxons_and_filters.html.erb, расположенного в приложении /views/spree/products/ , вы можете добавить код сверху и включить фильтры таксонов. Надеюсь, это было полезно.

licensed under cc by-sa 3.0 with attribution.