ある特定のページのみページパーツを追加して、サイト全体と異なるレイアウトにする事が出来ます。
1)概要
例えば、ホームページは3カラムよりももっと多いカラムレイアウトになっていて、それ以外のページは2カラムレイアウトになっているサイトがあります。
上記のようにする場合は、サイト全体用として2カラムのレイアウトを使用し、homeページのみに個別に新しいページパーツを追加する事が出来ます。
2)ページ単位にページパーツを追加するには?
config/initializers/refinery/pages.rbで下記設定を追加します。
config.new_page_parts = true
3)動作確認
①ページ編集画面に反映されているか?
設定後、サーバーを再起動。管理画面にログインし、ページ編集画面へ。
編集画面の上部右側に+と-が表示されるようになり、このボタン押下によってページパーツの追加、削除が出来るようになります。
②ブラウザでの表示確認
home、showなどのビューテンプレートの内容によっては、ビューテンプレートを修整する必要があります。
●デフォルトの状態の場合
<%= render ‘/refinery/content_page’ %>
この場合はこのままでも追加したページパーツの内容が表示されていました。
●デフォルトのビューテンプレートをオーバーライドして変更している場合
下記のようにページパーツを明示的に指定する形でビューテンプレートを作成している場合、追加したページパーツを表示するように変更する必要があります。
例えば、”右サイド”という名前でページパーツを追加した場合は、下記のように設定します。
$ vi app/views/refinery/pages/show.html.erb
<section id='body'> <%=raw @page.content_for(:body) %> </section> <section id='side_body'> <%=raw @page.content_for(:side_body) %> </section> <%=raw @page.content_for(:右サイド) %>