荒井 理介(Masayuki Arai)
荒井 理介(Masayuki Arai)
2005年 9月 8日 (木) 10:40:23 JST
はまだ様、田村様をはじめ、いつもこのメーリングリストの参加者の皆様にはお 世話になっております。 いままではROMのみでしたが、今回初めてレスさせていただきます。 荒井と申します。 > http://www.oscommerce.com/community/contributions,3340 > 使えばいいのか手順をお教えいただけないでしょうか? > 上記のページを表示させ、どれかをダウンロードするのでしょうか? > 現在のosCommerceのどれかのファイルに上書き又は追加するのでしょうか? 私も、約1年前より導入をはじめ、いくつかのコントリビューションを導入して きました。 このメーリングリストは貴重な情報源ですが、始めの頃は何もわからずどこから 手をつけていいのかわからず、オンリーワンさんの疑問も、昔はこうだったなと 思った次第です。 当方も、英語は苦手で、コントリビューションの説明でも理解でききれなくて導 入に踏み切れないものも多々ありますが、今回のものは、このスレッドをみて導 入したら簡単だったので、ご説明させていだだきます。 1.上記リンクページよりファイルをダウンロードして、解凍します。 2.展開したファイルにはphpファイルは一つしかないので、これを、解凍し たディレクトリー構成のままの階層へアップロードすれば、問題なく作動します が、表示されるタイトルや説明は英語のままなので、日本語化しておきましょ う・・・ また、レビュー投稿者の氏名が表示されてしまうので、当方では、氏名表示の部 分を変更して、”ユーザーの声”という風に表示されるようにしました。(これは じゅん様がやられたことと似ています) 解凍したファイルのinstall.txtの意訳文と、phpファイルの日本語化したも のを以下へ貼り付けますので、参考にしてください。 (メール本文のため行の折り返しがありますからご注意ください) ●install.txt ※英語の説明を意訳したものです この作業を実行する前には、データベースと変更するファイルのバックアップを お忘れなく!! 1.product_reviews_info.phpをEUCを使えるエディター(例:秀丸等)で開いて以 下の部分を必要に応じて修正して上書き保存する(例:当方では以下のように変更 しました) // define('MAX_REVIEWS', 5); # Number of maximum reviews on front page define('MAX_REVIEWS', 5); # カタログページへの最大表示数 (この場合は5個まで表示) // define('NO_REVIEWS_TEXT', 'There are currently no reviews for this product.'); #Text define('NO_REVIEWS_TEXT', 'この製品に関するレビューはまだ有りません.'); #テキストで入力 // define('BOX_REVIEWS_HEADER_TEXT', 'Product Reviews'); #Text define('BOX_REVIEWS_HEADER_TEXT', 'この製品のレビュー'); #テキストで入力 2.このproduct_reviews_info.phpをcatalog/includes/modules/へ新規にアップ ロードする 3. catalog/product_info.phpをエディターで開いて、以下の部分(ページの下部 あたり)を探す </td> </tr> </table></form></td> <!-- body_text_eof //--> 上記部分を以下の部分と置き換える </td> </tr> </table></form> <br> <? include(DIR_WS_MODULES . 'product_reviews_info.php'); ?> </td> <!-- body_text_eof //--> 変更したこのファイルをサーバーへ上書きアップすれば、レビューがある製品に ついては、製品ページに自動的に表示されます。 実行したカスタマイズ例: ●レビュー投稿者名を非表示しております。 実行したその手順は次のとおりです。 以下の行(23行目位)を探します。 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS_INFO, 'products_id=' . (int)$HTTP_GET_VARS['products_id'] . '&reviews_id=' . $reviews['reviews_id']) . '"><b>' . $reviews['customers_name'] . '</b> - ' . tep_date_short($reviews['date_added']) . ' ' . tep_image(DIR_WS_IMAGES . 'stars_' . $reviews['reviews_rating'] . '.gif' , sprintf(BOX_REVIEWS_TEXT_OF_5_STARS, $reviews['reviews_rating'])) . '</a><br> ' . $reviews['reviews_text']); 上記行を以下の行で置換します。 // 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS_INFO, 'products_id=' . (int)$HTTP_GET_VARS['products_id'] . '&reviews_id=' . $reviews['reviews_id']) . '"><b>' . $reviews['customers_name'] . '</b> - ' . tep_date_short($reviews['date_added']) . ' ' . tep_image(DIR_WS_IMAGES . 'stars_' . $reviews['reviews_rating'] . '.gif' , sprintf(BOX_REVIEWS_TEXT_OF_5_STARS, $reviews['reviews_rating'])) . '</a><br> ' . $reviews['reviews_text']); 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS_INFO, 'products_id=' . (int)$HTTP_GET_VARS['products_id'] . '&reviews_id=' . $reviews['reviews_id']) . '"><b>' . ユーザーの声 . '</b> - ' . tep_date_short($reviews['date_added']) . ' ' . tep_image(DIR_WS_IMAGES . 'stars_' . $reviews['reviews_rating'] . '.gif' , sprintf(BOX_REVIEWS_TEXT_OF_5_STARS, $reviews['reviews_rating'])) . '</a><br> ' . $reviews['reviews_text']); こうすることで、レビュー投稿者名の部分が”ユーザーの声”と表示されます。 ●product_reviews_info.php <?php #July 11, 2005 #Version 1.0 #By Dan Sullivan /*===============================================================================*/ // define('MAX_REVIEWS', 5); # Number of maximum reviews on front page define('MAX_REVIEWS', 5); # カタログページへの最大表示数 // define('NO_REVIEWS_TEXT', 'There are currently no reviews for this product.'); #Text define('NO_REVIEWS_TEXT', 'この製品に関するレビューはまだ有りません.'); #テキストで入力 // define('BOX_REVIEWS_HEADER_TEXT', 'Product Reviews'); #Text define('BOX_REVIEWS_HEADER_TEXT', 'この製品のレビュー'); #テキストで入力 /*================================================================================*/ $reviews_query = tep_db_query("select r.reviews_id, r.customers_name, r.date_added, rd.reviews_text, r.reviews_rating FROM reviews r, reviews_description rd WHERE r.reviews_id = rd.reviews_id AND r.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' AND rd.languages_id = '" . (int)$languages_id . "' ORDER BY r.date_added DESC LIMIT " . MAX_REVIEWS); $info_box_header = array(); $info_box_header[] = array('text' => BOX_REVIEWS_HEADER_TEXT); new contentBoxHeading($info_box_header); $info_box_contents = array(); while ($reviews = tep_db_fetch_array($reviews_query)) { $info_box_contents[][0] = array('align' => 'left', 'params' => 'class="smallText" valign="top"', // 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS_INFO, 'products_id=' . (int)$HTTP_GET_VARS['products_id'] . '&reviews_id=' . $reviews['reviews_id']) . '"><b>' . $reviews['customers_name'] . '</b> - ' . tep_date_short($reviews['date_added']) . ' ' . tep_image(DIR_WS_IMAGES . 'stars_' . $reviews['reviews_rating'] . '.gif' , sprintf(BOX_REVIEWS_TEXT_OF_5_STARS, $reviews['reviews_rating'])) . '</a><br> ' . $reviews['reviews_text']); 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS_INFO, 'products_id=' . (int)$HTTP_GET_VARS['products_id'] . '&reviews_id=' . $reviews['reviews_id']) . '"><b>' . ユーザーの声 . '</b> - ' . tep_date_short($reviews['date_added']) . ' ' . tep_image(DIR_WS_IMAGES . 'stars_' . $reviews['reviews_rating'] . '.gif' , sprintf(BOX_REVIEWS_TEXT_OF_5_STARS, $reviews['reviews_rating'])) . '</a><br> ' . $reviews['reviews_text']); } if(mysql_num_rows($reviews_query) > 0) { $info_box_contents[][0] = array('align' => 'left', 'params' => 'class="smallText" valign="top"', // 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, 'products_id=' . (int)$HTTP_GET_VARS['products_id']) . '">Click to view All Reviews</a>'); 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, 'products_id=' . (int)$HTTP_GET_VARS['products_id']) . '">全てのレビューを見る</a>'); } else { $info_box_contents[][0] = array('align' => 'left', 'params' => 'class="smallText" valign="top"', 'text' => NO_REVIEWS_TEXT); } new contentBox($info_box_contents); ?>