我正在运行Spree 2.2。我试图让标准的分类/过滤器列表出现在Spree的每个产品页面上,但我找不到它在哪里决定要显示的侧边栏内容。如果有人能够明白我在哪里/如何决定我会非常感激。
答案 0 :(得分:2)
在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&#34; 数据之后 - hook,wich是产品展示视图中侧边栏的包装,因此您的污点看起来像这样:
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"
)
在位于 app / views / spree / products / 的名为 _the_taxons_and_filters.html.erb 的文件中,您可以添加上面的代码并包含分类过滤器。希望这有用。