EC-CUBEの2系では、デザインテンプレートの変更が容易に行えるようになっています。そのため、デフォルトテンプレートのパッケージをダウンロードして独自カスタマイズし、再びアップロードする方も多いかと思います。
その際、デザインテンプレートが変更になるとブロックのレイアウト情報は一度削除され、テンプレートパッケージフォルダ内にある「_packagesフォルダ」→「sqlフォルダ」→ 「update_block.sql」が実行されます。この「update_bloc.sql」がデフォルトのレイアウト内容となっているため、テンプレートを変更するたびに、ブロックのレイアウトが元にもどってしまうのです。
ということは、このSQLファイルを調整すれば、テンプレート毎に合わせた自由なブロックレイアウトが可能になります。つまり、update_block.sqlに 「INSERT INTO dtb_blockposition …」とたくさん並んでいるかと思いますが、そのvalues以降をそれぞれ調整するわけです。
コミュニティスレッドと同じ例になりますが、update_block.sqlの中の1行をあげますと、
INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,5,1,0,'category');
valuesに「(1,5,1,0,'category')」とありますが、これはその前にある「(page_id,target_id,bloc_id,bloc_row,filename)」と関連があって、それぞれ「page_id→1」、「target_id→5」、「block_id→1」、「bloc_row→0」、「filename→category」という感じになっています。これはデータベーステーブルである「dtb_blockposition」のカラム(フィールド)とその挿入データという関係になってます。
では、それぞれのカラムにどういった値がはいれば、どういう意味になるかということを簡単に説明します。
-
page_id ・・・ 1はトップ、2は一覧、3は詳細・・・
-
target_id ・・・ 1は左カラム、2は中央上部カラム、3は右カラム、4は中央下部カラム、5は未使用ブロック
-
block_id ・・・ ブロックの番号。1がカテゴリブロック、2がガイドブロック・・・
-
bloc_row ・・・ 同じtarget_idのブロックがあった場合の並び順。小さい順にならびます(1から順に)。ちなみに、target_idが5(未使用ブロック)のときは全部0でもOKみたいです。
-
filename ・・・ ブロックテンプレート名です。tplが省略されているのだと思います。