Seiji Sogabe
sogab****@alles*****
2005年 4月 17日 (日) 21:12:55 JST
こんにちは、曽我部です。 Margy Mutoh wrote: > 悩んでいるのは、 > > 1)どこで(class/shopping_cart.phpなのかcatalog/shopping_cart.php > なのか order_details.phpなのか)温度判別をさせて、 classes/shopping_cart.phpのget_products()で、カートに表示する商品の 情報を取得しているので、function get_products()の $products_price = $products['products_price']; の後くらいに、 $model = $products['products_model']; // 商品の配送温度と画像を取得 if (preg_match('/.+-C$/', $model)) { $delivery_temperature = '冷蔵'; $delivery_temperature_image = 'temp_chl.gif'; } elseif (preg_match('/.+-F$/', $model)) { $delivery_temperature = '冷凍'; $delivery_temperature_image = 'temp_frz.gif'; } else { $delivery_temperature = '常温'; $delivery_temperature_image = 'temp_nrm.gif'; } として、 $products_array[] = array('id' => $products_id, のあとに、 'delivery_temperature' => $delivery_temperature, 'delivery_temperature_image' => $delivery_temperature_image, を追加します。 すると、catalog/shopping_cart.phpの61行目の $products = $cart->get_products(); で、配送温度とその画像を含む商品の情報を取得できます。 実際には、カートの商品情報はorder_details.phpで表示していますので、 modules/order_details.phpの25行目くらいに、カートのヘッダを表示するコードを追加します。 echo ' <td align="center" class="tableHeading">' . TABLE_HEADING_QUANTITY . '</td>' . "\n"; // 以下を追加 if (strstr($PHP_SELF, FILENAME_SHOPPING_CART)) { $colspan++; echo ' <td class="tableHeading">配送温度</td>' . "\n"; } 60行目位(// Modelの前)に、配送温度の画像を表示するコードを追加します。 if (strstr($PHP_SELF, FILENAME_SHOPPING_CART)) { echo ' <td valign="top" class="main">' . tep_image(DIR_WS_IMAGES . $products[$i]['delivery_temperature_image'], $products[$i]['delivery_temperature'], 画像の幅, 画像の高さ) . '</td>'; } 画像をcatalog/imagesにおけば、うまくいくと思います。検証はしていないのですが、同じような事例を さきほど試しましたので、大丈夫だと思います。 追加したget_delivery_temperature()と重複しているのが無駄ですが、とりあえずということで。 > (コードを一見して「ふむふむ、ここでこういう処理をして、こっちで > こうさせてるのね」と、わかるほどにはスキルがありません…f(-_-;)) 最近は、PHPの世界でもロジックとビュー(HTMLイメージ)をわけて実装する手法(MVC)が はやっていますが、osCommerceは昔からの手法をとっていますので、 かなりわかりにくい構造になっています。 私も断片的なことしかわからないので、画面遷移を確認しながらソースを追っています。 > catalogのルートにあるファイルと、class/にあるファイルと、modules/ > にあるファイルと…それぞれ役割分担があると思うのですが、いま一つ > 把握しきれていないので、コードの意味が読めないのだと思います。 大雑把にいうと、 catalog/*.php ... ユーザがアクセスするコード(URLに表示される) catalog/includes/modules/*.php ... 上記のPHPの共通部分とかいろいろ catalog/includes/classes/*.php ... オブジェクト(ロジック) といったかんじですが、何となく整理されていないような気もします。 では。 -- sogab****@alles*****