2010-10-17 13 views
8

Nun, ich habe versucht, durch folgende dieses Tutorial der Standard-Theme von spree zu ändernSpree, Rails 3 und Thematisierung

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

Aber die Homepage überhaupt nicht gut, da der Änderung Tutorial ist für Rails 2 gedacht, ich frage mich nur, was ich aus dem Tutorial ändern muss, damit es mit Rails 3 funktioniert?

Einfachere Lösung als mit Haken ist zu begrüßen. Auch wenn ich gerade dabei bin, gibt es eine Möglichkeit, den Befehl, den Sie in Rails ausführen, rückgängig zu machen, wie vielleicht eine Erweiterung zu deinstallieren.

Antwort

6
  1. Die Lösung, die für mich gearbeitet war meine eigene Erweiterung sagen ‚site‘ mit rails g spree:extention site erstellen dann habe ich Blick auf meinem Edelstein Weg und öffnete einfach das ganze Spree-Core-Juwel in einem anderen Editor Projekt und über die kopierte app/views/layouts/spree_application.html.erb.

Wenn Ihr HTML nicht so verschieden ist (bei mir ist ganz anders bei http://daugpigiau.lt) von Standard-spree Laden Sie könnten in der Lage sein, nur Haken zu verwenden und einige der Teile außer Kraft setzen. Die einzige Möglichkeit, Hook-Namen zu kennen, war, in diese für mich interessanten Spree-Core-Juwelen und Templates zu schauen. Nachdem Sie wissen, welcher Haken für Sie von Interesse sind Sie so etwas wie zu tun:

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 

mein eigenes partials für die Orte, die ich wollte ändern Dies sind nur.

  1. Ja Sie die Erweiterung Erzeugungsteil als jede andere Generation brauchen Sie nur rails destroy spree:extension your_extension_name laufen rückgängig machen können, und es wird den ganzen Betrieb zurückkehren, die während es Generation

durchgeführt wurden Ich habe mich erst einmal mit dem übergeordneten Teil herumgeschlagen, weil die Dokumentation auf dieser Seite ein bisschen zu viele Leerzeichen hat, um den Benutzer das erste Mal zu erfassen.

+0

überschreiben Dank für die Antwort, kann ich nicht meine Köpfe um die Dokumentation wickeln.Es hilft wirklich. – BimoZX

+0

Einverstanden, die Dokumentation ist sehr verwirrend und scheint veraltet zu sein ... –

3

Um das Standarddesign von Spree zu ändern, müssen Sie Ihre eigene Erweiterung generieren und die Ansichtsdateien von spree_core-0.30.1/app/views darin überschreiben. Es gibt jedoch einen kleinen Fehler in der aktuellen Version von Spree, der das Erstellen von Themes und Erweiterungen wirklich verwirrend macht. Nach der Dokumentation, eine neue Erweiterung erstellen Sie den folgenden Befehl ausführen sollen:

$ rails g spree:extension myext 

Und es sollte die folgende Ausgabe erzeugen:

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 

jedoch der Ausgang ist:

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: 

Die aktuelle Problemumgehung besteht darin, die Zeile

gem 'spree' 
zu ändern 10

in Ihrem Gemfile zu

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

dann bundle install und rails g spree:extension myext erneut ausführen. Es wird alle Dateien korrekt erstellen und es in deine Gemfile einbinden. Dann können Sie alle notwendigen Dateien in myext/app/views

+0

Danke, der Doc verwirrt mich, ich denke, einige sind veraltet. – BimoZX