koga
ring2****@sweet*****
2006年 5月 2日 (火) 10:57:44 JST
曽我部さま 早速のご回答ありがとうございます! ご説明にそって、導入をさせていただきました。 まったくもって私が思い描いていたとおりで、動作は完璧です。 またご説明も分かりやすく丁寧で、とても参考になりました。 ご親切にソースまで作成いただき、本当にありがとうございました。 別のお話になりますが、曽我部さまがホームページ上でご提供されているモジュー ルも、ありがたく利用させていただいております。 本当に感謝の気持ちでいっぱいです。 これに懲りずに、またご教授いただければ幸いです。 ありがとうございました。 古賀 On Tue, 02 May 2006 09:46:18 +0900 Seiji Sogabe <sogab****@alles*****> wrote: > 曽我部です。 > > koga wrote: > > 当初はalso_purchased_products.phpを何とか改造し、ショッピングカートで使 > > 用できるものをと考えたのですが、当方の初歩的な知識では、どうすれば応用で > > きるのか考え付かず、良いContributionがあればと考えています。 > > shopping_cart.phpでは、61行目でカートにある商品の情報を$productsに取得していますので、 > $i番目のproducts_idは、$products[$i]['id']で取得できます。 > > それが分かれば、also_purchased_products.phpでその商品を買ったオーダーを検索すれば > いいだけだと思います。 > > 詳しく説明するのは難しいので、適当につくったものを以下に示します。 > also_purchased_products_cart.php > として、catalog/includes/modulesに保存してください。 > あとは、catalog/shopping_cart.phpの表示したいところに、 > > <?php require(DIR_WS_MODULES. 'also_purchased_products_cart.php'); ?> > > を追加と、catalog/includes/languages/japanese/shopping_cart.phpに、 > > define('TEXT_ALSO_PURCHASED_PRODUCTS', 'こんな商品も買っています'); > > が必要です。 > > 適当なので、もっといい方法があるかもしれません。 > > <?php > > $cart_orders = array(); > reset($products); > foreach ($products as $product) { > $orders_query = tep_db_query("select p.products_id, p.products_image from " . > TABLE_ORDERS_PRODUCTS . " opa, " . TABLE_ORDERS_PRODUCTS . " opb, " . TABLE_ORDERS . " o, > " . TABLE_PRODUCTS . " p where opa.products_id = '" . (int)$product['id'] . "' and > opa.orders_id = opb.orders_id and opb.products_id != '" . (int)$product['id'] . "' and > opb.products_id = p.products_id and opb.orders_id = o.orders_id and p.products_status = > '1' group by p.products_id order by o.date_purchased desc limit " . > MAX_DISPLAY_ALSO_PURCHASED); > while ($order = tep_db_fetch_array($orders_query)) { > if (!in_array($order, $cart_orders)) { > $cart_orders[] = $order; > } > } > } > > shuffle($cart_orders); > $num_products_ordered = sizeof($cart_orders); > if ($num_products_ordered >= MIN_DISPLAY_ALSO_PURCHASED) { > ?> > <!-- also_purchased_products //--> > <?php > > $info_box_contents = array(); > $info_box_contents[] = array('text' => TEXT_ALSO_PURCHASED_PRODUCTS); > > new contentBoxHeading($info_box_contents); > > $row = 0; > $col = 0; > $info_box_contents = array(); > for ($i=0; $i<min($num_products_ordered, MAX_DISPLAY_ALSO_PURCHASED); $i++) { > $orders = $cart_orders[$i]; > $orders['products_name'] = tep_get_products_name($orders['products_id']); > $info_box_contents[$row][$col] = array('align' => 'center', > 'params' => 'class="smallText" width="33%" > valign="top"', > 'text' => '<a href="' . > tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $orders['products_id']) . '">' . > tep_image(DIR_WS_IMAGES . $orders['products_image'], $orders['products_name'], > SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . > tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $orders['products_id']) . '">' . > $orders['products_name'] . '</a>'); > > $col ++; > if ($col > 2) { > $col = 0; > $row ++; > } > } > > new contentBox($info_box_contents); > ?> > <!-- also_purchased_products_eof //--> > <?php > } > ?> > > > -- > sogab****@alles***** > > _______________________________________________ > Tep-j-general mailing list > Tep-j****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/tep-j-general