[Tep-j-general] Re: 商品ページにレビューを表示させたい

Back to archive index

荒井 理介(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>&nbsp;-&nbsp;' . tep_date_short($reviews['date_added']) . '&nbsp;'
. 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>&nbsp;-&nbsp;' . tep_date_short($reviews['date_added']) . '&nbsp;'
. 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>&nbsp;-&nbsp;' .
tep_date_short($reviews['date_added']) . '&nbsp;' .
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>&nbsp;-&nbsp;' . tep_date_short($reviews['date_added']) . '&nbsp;'
. 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>&nbsp;-&nbsp;' .
tep_date_short($reviews['date_added']) . '&nbsp;' .
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);
?>




Tep-j-general メーリングリストの案内
Back to archive index