2011-01-12 106 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這是好事。