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を直接いじることもあり不具合が生じる可能性もあ ります。 バックアップ等を行ったあと、自己責任でお願いします。