Magentoには標準で何パターンかのページレイアウトが用意されています。
通常はこれらのページレイアウトの中から、ページの用途・目的に合わせたものを選択してページを作成します。 

ところが、ページのデザインであったり、コンテンツの配置の仕方によっては、既存のレイアウトだけではどうしても対応しきれないパターンが出てきます。
このエントリではオリジナルのページレイアウトを追加し、より柔軟なコンテンツ作成をする方法をご紹介します。

ページレイアウトとは

ページレイアウトとは、基本的なページのマークアップとコンテンツの配置割付ができているテンプレートです。
Magentoには標準で以下の7種類のページレイアウトが用意されています。

  • 1カラム
  • 2カラム左ナビ付き
  • 2カラム右ナビ付き
  • 3カラム
  • ポップアップ
  • 印刷

このうち管理画面でページレイアウトとして選択できるものは、ポップアップと印刷を除いた5種類です。

ページレイアウトを管理者が指定できる箇所

標準のMagentoでは管理者がページレイアウトを指定できる箇所は限られています。
以下の3箇所です。 

  • 商品ページ
  • カテゴリページ
  • CMSページ

それ以外のページでもページレイアウトは普通に使用されているのですが、管理者が自分の意志で変更することはできません。
常にレイアウトXML上に定義されたページレイアウトが使われるため、変更したい場合はレイアウトXMLの調整が必要です。
(エクステンションの導入によっては可能になるかもしれませんが、あくまでも標準に限った話です)

ページレイアウトを増やすには

ページレイアウトを増やすためには以下の順に作業が必要です。

  1. テンプレートの作成
  2. レイアウトXMLの定義を作成
  3. config.xmlの作成

テンプレートの作成

まず最初にページレイアウトの元になるテンプレートを作ります。
ページレイアウトのファイルは

app/design/frontend/<パッケージ名>/<テーマ名>/template/page/

に作成します。
他のディレクトリに作っても構いませんが、他のテンプレートと場所を揃えたおいたほうが管理する上では良いでしょう。
ここでは1column.phtmlをベースにして、custom.phtmlを作成します。 

レイアウトXMLの定義を作成

次にレイアウトXMLにページレイアウトの定義を追加します。

app/design/frontend/<パッケージ名>/<テーマ名>/layout/

にlocal.xmlを作成し、以下の記述を追加します。

    
        
        
            
            
            1
            custom
        
     

config.xmlの作成

最後にここまで作成した内容を利用する設定を定義します。

エクステンションとして実装しておけば、Magento本体のアップデートや、エクステンションのアップデートでも影響を受けません。

エクステンションの作り方についてはこのエントリでは触れませんが、エクステンションに欠かせない定義ファイルである、config.xmlのglobalスコープに、以下の記述を追加します。


    
        
            
            
            custom
        
    

最後にMagentoのキャッシュをクリアし、CMSページなどの編集画面で、ページレイアウト選択を確認して、追加したレイアウトが表示されていればOKです。