残念な英語力ではぴんとこない箇所は英語のままpending。実践もしくは英語力の向上を伴って正しく理解することがあれば、加筆・修正する予定です。この記事は2013/07/13現在のものです。DEVELOPER概要(original)SpreeではViewの拡張や入れ替えが可能です。このガイドでは利用できるオプションと以下の項目について説明します。Defaceを使ったViewのカスタマイズViewのテンプレートをまるごと入れ替える方法Defaceを使う方法(original)DefaceはViewファイルを直接編集することなくErbテンプレートのカスタマイズを可能にする、Rails3のライブラリです。DefaceではCSS3標準セレクタで要素(Rubyブロックを含む)を指定して、マッチする全ての要素に対して様々なアクションを実行することができます。%></div>div#registrationの前にコードを挿入したい場合は以下のようにして上書きすることができます。future!</p>が挿入されます。指定できるアクションDefaceはCSSセレクタにマッチする要素にアクションを割り当てます。指定したセレクタにマッチする全ての要素を削除します。指定したセレクタにマッチする全ての要素を指定したコンテンツに置き換えます。指定したセレクタにマッチする全ての要素の後に指定したコンテンツを挿入します。指定したセレクタにマッチする全ての要素の前に指定したコンテンツを挿入します。指定したセレクタにマッチする全ての要素の先頭の子要素として、指定したコンテンツを挿入します。指定したセレクタにマッチする全ての要素の最後の子要素として、指定したコンテンツを挿入します。指定したセレクタにマッチする全ての要素に:attributesで指定した属性をセット(もしくは追加)します。全ての要素に適用できるわけではありません。指定される要素は子要素を持つ親要素である必要があります。コンテンツの提供方法Defaceはコンテンツを指定する3つの方法を提供しています。テンプレートへの相対パス※DefaceがErbを用いてコンテンツをオーバーライドするのはHTMLだけではありません。オリジナルのErbコンテキストでアクセス可能な全ての変数へもアクセスできます。</div></div></div>例を見ての通り、'data-hook'にはいくつかの使用方法があります。id属性がない要素では'data-hook'属性に、idに含まれるような値が入っています。id属性を持つ要素では通常、'data-hook'属性に値はありません。id属性を持つ要素の'data-hook'属性に要素のIDとは違う値が含まれていることがあります。これは通常、0.60.xの古いフックの名前から'data-hook'への移行をサポートするためのものです。可能であれば、'data-hook'を使って要素を指定したほうがいいでしょう。上記のproducts/show.html.erbをベースにいくつかの例を紹介します。“[data-hook=’cart_form’]”以下のように両方のセレクタスタイルの組み合わせを使用することでで変更から確実に保護することもできます。HTML)に対してパスした全てのセレクタを評価します。protection可能な限り安全な方法でSpreeのバージョンをアップグレードする為に、Defaceでは移行しつつある元のコンテンツの文字列を含ませることができる、:originalオプションをサポートしています。これはアップグレード後の予期しない問題を減らしてくれるでしょう。warning.※Defaceはホワイトスペースの違いによる警告を減らす為に、現在の値と:originalの値を比較する前に全てのホワイトスペースを削除します。詳しい情報といくつかのオーバーライドのサンプルはGithub上のREADMEを参照してください。セレクタの使い方を試してみたり、Defaceどのように動作するか確認することができます。テンプレートの置き換え(original)カスタマイズ内容によっては実体のあるViewを必要とし、Defaceによるオーバーライドでは不便な場合があります。Spreeでは、アプリケーションをによるViewの複製やSpree内で同じ名前のファイルを完全に置き換えるエクステンションもサポートしています。管理インターフェイスを含むSpreeのデフォルトViewをオーバーライドするには、単純に同じ名前のファイルをapp/viewsに作成するだけです。例としてメインのレイアウトテンプレートをオーバーライドするにはYOUR_SITE_OR_EXTENSION/app/views/spree/layouts/spree_application.html.erbを作成します。バージョンが合わない場合にデバッグが大変なことになるので、自分のアプリケーションやエクステンションに正しいバージョンのViewを確実にコピーするようにしてください。spree'で確認することをおすすめします。自分のアプリケーションやエクステンションでView全体をコピーして使用していると、Spreeを新しいバージョンにアップグレードする時には慎重にメンテナンスしてください。別のバージョンへアップグレードするときには、新しいバージョンのSpreeと自分のローカルバージョンに変更を確実に反映させるように必要なテンプレートを比較する必要があります。この為、できる限りDefaceを使ってカスタマイズすることを強く推奨します。東灘.rbの勉強会は今回...2013-10-14Spreeにカード決済を導入する方法Spreeざんまいの毎日です。seeds.rbをつくってみたgistに上げました。