Zencart メイン部にサイドのメーカー選択を追加

人生初のバッテリーあがりを体験したYu-ichiです:neko:

さて、今回はZencartでサイドバーに表示している「メーカー」を
トップページのメインに導入できないかということで、カスタマイズに挑戦してみました。

おそらく「シングルボックス」を使えば簡単じゃん。
って思う方もいらっしゃるかと思いますが、その通りですw:kaomoji1:

ですが、余計なdivタグやらhタグを外して
メーカーのドロップダウンリストだけを使いたかったのです。:kaomoji6:
既存のファイルを直接編集してしまうと、サイドバーにも影響が出てしまう為に
必要なファイルをコピーし、リネームして使うことにしました。:kaoemoji5:

まずコピーが必要なファイルは以下の通り

  • /includes/templates/template_default/sideboxes/tpl_manufacturers_select.php
  • /includes/modules/sideboxes/manufacturers.php

この2つをコピーしてリネームしてください。:kaoemoji3:
必要であればテンプレート名のフォルダを作成し、その中に格納します。
(私は管理しやすいように以下の通りやっています)

  • /includes/templates/template_default/sideboxes/テンプレ/tpl_main_manufacturers_select.php
  • /includes/modules/sideboxes/テンプレ/main_manufacturers.php

それぞれの中身も書き換えてください。(divタグとかいらないので。。。)

tpl_main_manufacturers_select.php
11,12,16行目を削除して、14行目の「 style=”width: 90%; margin: auto;”」を削除

main_manufacturers.php
59行目の「tpl_manufacturers_select.php」を「tpl_main_manufacturers_select.php」に書換え

書き換えたらいよいよ呼出し部です。:kaomoji7:

/includes/templates/テンプレ/common/」の中におまじないのファイルを用意します。
ファイル名はなんでもOKですが、仮に「tpl_box_main_manufacturers.php」とします。
中身は以下の一行だけでOKです。:hamster_7:

</p>
<p>&lt;?php echo $content; ?&gt;</p>
<p>

【tpl_index_default.php】を編集して、メインのメーカーリストを表示したい個所に以下の記述を入れます。

</p>
<p>&lt;?php<br />
if (!defined('IS_ADMIN_FLAG')) {<br />
  die('Illegal Access');<br />
}<br />
// Check if there are boxes for the column<br />
$column_box_default='tpl_box_main_manufacturers.php';<br />
$column_single_display= $db-&gt;Execute(&quot;select layout_box_name from &quot; . TABLE_LAYOUT_BOXES . &quot; where (layout_box_location=0 or layout_box_location=1) and layout_box_status_single=1 and layout_template ='&quot; . $template_dir . &quot;'&quot; . ' order by LPAD(layout_box_sort_order_single,11,&quot;0&quot;)');<br />
//メインにメーカーを呼び出す<br />
  require(DIR_WS_MODULES . 'sideboxes/' . $template_dir . '/main_manufacturers.php');<br />
?&gt;</p>
<p>

これでトップページのメイン部分の指定した場所に
メーカーのドロップダウンリストが表示されるようになります。:wa-i:

ちなみに、シングルボックスを使うときはもっと単純で:kaomoji8:

</p>
<p>&lt;?php require(DIR_WS_MODULES . 'column_single.php'); ?&gt;</p>
<p>

この記述をコピペしてあげるだけでできます。:kaoemoji1:

ただ、シングルボックスがONになっているものが全て表示されてしまうので
個別に表示したいまたは、間に何かを挟みたいという場合はカスタマイズが必要です。:neko:

トラックバックURL

コメントを残す

メールアドレスが公開されることはありません。