[Tep-j-general] カテゴリ、メーカー別コンテンツ作成hack

アーカイブの一覧に戻る

k-shimada k-shi****@koto-*****
2007年 5月 12日 (土) 18:09:34 JST


島田と申します。
以前より表題について気になっており、
自分なりにhackしてみました。

かなりローテクで作成した為動作も遅い気がしますし、
もっと良い方法や、既出のモジュール等ありましたら、
ご教授いただければ幸いです。

以下、つたない文章ですが、目的と手順です。

目的:
デフォルトのカテゴリ(メーカー)別イメージと同様に、
カテゴリ(メーカー)別コンテンツを表示させる。

手順:
1.DBの変更
  テーブル manufacturers にフィールド opurl varchar(64) NULLを加える。
  テーブル categories にフィールド opurl varchar(64) NULLを加える。

2.1.で作成した フィールド opurl に、任意の”値”を入れる。
   ”値”の例:c29 (カテゴリーID 29の場合)
   (自分で判別できれば、なんでもかまいません。)

   ※とりあえず管理画面からの入力は後で考えようと思います。

3.追加コンテンツの準備
   追加したいコンテンツを、2で定義した”値”.phpで作成。
   例 :includes/boxes/opurl/c29.php というように
      保存→アップロード

4.カタログページの修正
   default.phpにて追加コンテンツを表示させたい箇所に、下記を追加。

  ※ちなみにカテゴリ、メーカー別のページ表記部は、285行付近
  // Get the right image for the top-right とあるあたりです。

<?php
//カテゴリ及びメーカ別コンテンツ管理 hack

if (isset($HTTP_GET_VARS['manufacturers_id'])) {

$opurl = tep_db_query("select opurl from " . TABLE_MANUFACTURERS . "
where manufacturers_id = '" . $HTTP_GET_VARS['manufacturers_id'] . "'");

} elseif ($current_category_id) {

$opurl = tep_db_query("select opurl from " . TABLE_CATEGORIES . " where
categories_id = '" . $current_category_id . "'");


}
$opurl = tep_db_fetch_array($opurl);

$opurl = $opurl['opurl'];
if($opurl){
require(DIR_WS_BOXES .'opurl/'. $opurl.'.php');
}
//カテゴリ及びメーカ別コンテンツ管理 hack
?>

・$image のクエリと一緒にしたほうがいいような気もしますが、
 とりあえず別クエリにしてみました。

・セキュリティー上問題ないのかもしれませんが、
 DB上に.phpごとファイル名を入れるのが怖い気がしたので、
 .phpの前だけを登録することにしました。

・当方、alterにて試しましたが、default版でも同じかと思います。

注)お試しになる場合は、DBを直接いじることもあり不具合が生じる可能性もあ
ります。
バックアップ等を行ったあと、自己責任でお願いします。




Tep-j-general メーリングリストの案内
アーカイブの一覧に戻る