2011-01-12 70 views

回答

5

免责声明:写在狂欢的最新版本的这些技巧可能不完全正常工作。我最近没有和Spree一起工作过。

对于Spree版本1.0,您可以覆盖app/views/spree/layouts/spree_application.html.erb。我认为当前版本与之前(1.0版之前)版本的路径略有不同。

作为清洁剂的选择,你可以使用污损删除“技术盛宴”的声明在页脚像这样:

Deface::Override.new(:virtual_path => "spree/layouts/spree_application", 
       :name => "footer-left", 
       :remove => "#footer-left") 

如果您要更换它,而不是,你可以这样做:

Deface::Override.new(:virtual_path => "spree/layouts/spree_application", 
       :name => "footer-left", 
       :replace_contents => "#footer-left", 
       :text => "My Left Footer Text") 

甚至niftier:

Deface::Override.new(:virtual_path => "spree/layouts/spree_application", 
       :name => "footer-left", 
       :replace_contents => "#footer-left") do 
'<div id="footer-left" class="columns alpha eight" data-hook> 
    <p><%= t(:powered_by) %> <%= link_to "YuriTek", "http://yuritek.com" %></p> 
</div>' 
end 

只要把上面的语句为RB文件和PL在app/overrides目录中将其加入。我认为把它放入config/initializers也可以。

P.S.开箱即用的Spree中包含了Deface。

+0

好的,这对我来说确实很好。希望能够评论它为什么被低估。 – 2012-09-21 17:59:32

1

Yuri的答案很好,但我更喜欢Deface DSL语法。对于施普雷1.0或以上,在目录app/overrides/spree/layouts/spree_application/创建一个名为remove_powered_by.deface文件,并添加以下内容:

<!-- 
    remove '#footer-left > p:first-child' 
--> 

就是这样。

您可以在 https://github.com/binaryphile/spree_dibs_1.3

3

看到我公司的施普雷存储代码重写的例子不胜枚举这将更新二进制和尤里的答案为盛宴V1.3两个

页脚已进入部分app/views/spree/shared/_footer.html.erb

所以它使用污损您可以覆盖这两种方法:

  1. Deface :: Override - 这是传统方法(根据yuri的回答)

  2. Deface DSL - 。毁损的文件(按二进制的答案)

所以使用污损::覆盖,创建一个包含文件app/overrides/remove_footer.rb

Deface::Override.new(:virtual_path => 'spree/shared/_footer', 
     :name => 'remove_footer', 
     :remove => '#footer[data-hook]' 
     ) 

OR 使用污损DSL,创建一个文件app/overrides/spree/shared/footer/remove_footer.deface包含:

remove '#footer[data-hook]' 

有关更多信息,请参阅文档https://github.com/spree/deface这是好事。