8

好吧,我一直在尝试按照本教程更改 spree 的默认主题

http://blog.endpoint.com/2010/01/rails-ecommerce-spree-hooks-tutorial.html

但是主页根本没有改变,因为本教程适用于rails 2,我只是想知道我需要从教程中更改什么以使其与rails 3一起使用?

欢迎使用比使用钩子更简单的解决方案。另外,当我这样做时,有没有办法撤消您在 rails 中运行的命令,例如卸载扩展程序。

4

2 回答 2

6
  1. 对我有用的解决方案是创建我自己的扩展名“站点”,rails g spree:extention site然后我查看了我的 gems 路径,然后在另一个编辑器项目中打开了整个 spree-core gem 并复制了app/views/layouts/spree_application.html.erb.

如果您的 html 与默认的狂欢商店没有太大不同(我的在http://daugpigiau.lt有很大不同),您可能只能使用钩子并覆盖某些部分。我发现知道钩子名称的唯一方法仍然是查看那些对我来说很有趣的疯狂核心宝石和模板。在您知道您感兴趣的钩子之后,您可以执行以下操作:

class PigiauHooks < Spree::ThemeSupport::HookListener
  # custom hooks go here
  insert_after :admin_inside_head, 'shared/admin/ckeditor_include'
  insert_before :admin_product_form_meta, 'shared/admin/product_editor'
  insert_before :admin_product_form_additional_fields, 'shared/admin/unavailable_on'
end

这些只是我自己想要改变的地方的部分内容。

  1. 是的,您可以像只需要运行的任何其他代一样撤消扩展生成部分,rails destroy spree:extension your_extension_name它将恢复在其生成期间执行的所有操作

起初,我一直在为最重要的部分而苦苦挣扎,因为第一次使用的用户无法掌握有关此文档的太多空白。

于 2010-12-04T15:52:30.447 回答
3

要更改 Spree 的默认主题,您需要生成自己的扩展并覆盖其中的视图文件spree_core-0.30.1/app/views。但是,当前版本的 Spree 中存在一个小错误,可能会使主题和扩展创建非常混乱。根据文档,要创建新扩展,您应该运行以下命令:

$ rails g spree:extension myext

它应该产生以下输出:

 create  myext
 create  myext/db
 create  myext/public
 create  myext/LICENSE
 create  myext/Rakefile
 create  myext/README.md
 create  myext/.gitignore
 create  myext/myext.gemspec
 create  myext/lib/tasks/install.rake
 create  myext/app
 create  myext/app/controllers
 create  myext/app/helpers
 create  myext/app/models
 create  myext/app/views
 create  myext/spec
  exist  myext/lib
 create  myext/lib/myext_hooks.rb
 create  myext/lib/tasks/myext.rake
 create  myext/lib/myext.rb
 create  myext/spec/spec_helper.rb
gemfile  myext

但是,输出是:

create  myext
create  myext/config
create  myext/db
create  myext/public
create  myext/LICENSE
create  myext/Rakefile
create  myext/README.md
Could not find ".gitignore" in any of your source paths. Your current source paths are:

当前的解决方法是更改​​行

gem 'spree'

在您的 Gemfile 中

gem 'spree', :git => "git://github.com/railsdog/spree.git", :tag => "v0.30.1"

然后bundle install再次运行rails g spree:extension myext 。它将正确创建所有文件并将其插入您的 Gemfile。然后你可以覆盖所有必要的文件myext/app/views

于 2010-12-22T02:31:39.017 回答