zencart 添加评论回复功能

本文详细解析了如何使用SQL和PHP修改产品评论的相关数据库操作,包括添加回复字段、更新评论信息以及显示评论回复等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
//SQL:
ALTER TABLE `reviews_description` ADD `reviews_reply` TEXT NOT NULL

//文件:\admin\reviews.php
//功能:后台显示,修改

$reviews_reply = zen_db_prepare_input($_POST['reviews_reply']);

$db->Execute("update " . TABLE_REVIEWS_DESCRIPTION . "
set reviews_text = '" . zen_db_input($reviews_text) . "',
reviews_reply = '" . zen_db_input($reviews_reply) . "'
where reviews_id = '" . (int)$reviews_id . "'");


if ($action == 'edit') {
$rID = zen_db_prepare_input($_GET['rID']);

$reviews = $db->Execute("select r.reviews_id, r.products_id, r.customers_name, r.date_added,
r.last_modified, r.reviews_read, rd.reviews_text, r.reviews_rating,rd.reviews_reply
from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd
where r.reviews_id = '" . (int)$rID . "' and r.reviews_id = rd.reviews_id");




<td class="main" valign="top"><b><?php echo ENTRY_REVIEW; ?></b><br><br>
<?php echo zen_draw_textarea_field('reviews_text', 'soft', '70', '15', stripslashes($rInfo->reviews_text)); ?>
<?php echo zen_draw_textarea_field('reviews_reply', 'soft', '70', '15', stripslashes($rInfo->reviews_reply)); ?>
</td>



} elseif ($action == 'preview') {
if (zen_not_null($_POST)) {
$rInfo = new objectInfo($_POST);
} else {
$rID = zen_db_prepare_input($_GET['rID']);

$reviews = $db->Execute("select r.reviews_id, r.products_id, r.customers_name, r.customers_email,r.customers_ip, r.date_added,
r.last_modified, r.reviews_read, rd.reviews_text,rd.reviews_reply,
r.reviews_rating
from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd
where r.reviews_id = '" . (int)$rID . "'
and r.reviews_id = rd.reviews_id");



<td class="main"><b><?php echo ENTRY_RATING; ?></b> <?php echo zen_image(DIR_WS_TEMPLATE_IMAGES . 'stars_' . $rInfo->reviews_rating . '.gif', sprintf

(TEXT_OF_5_STARS, $rInfo->reviews_rating)); ?> <small>[<?php echo sprintf(TEXT_OF_5_STARS, $rInfo->reviews_rating); ?>]</small>
<?php if($rInfo->reviews_reply!= null){?>
<?php echo '<br /><DIV class="reviews_reply"><b>Reply:</b> '.nl2br(zen_db_output(zen_break_string($rInfo->reviews_reply,15))).'</DIV>'?>
<?php }?>

</td>







//文件:\includes\modules\pages\product_reviews_write\header_php.php
//功能:保存客户IP,客户EMAIL(修正原版本BUG)

$customers_ip =   $_SESSION['customers_ip_address'];



$sql = "INSERT INTO " . TABLE_REVIEWS . " (products_id, customers_id,customers_email,review_title,customers_name, reviews_rating, date_added, status,customers_ip)
VALUES (:productsID, :customersID,:customers_email,:review_title, :customersName, :rating, now(), " . $review_status . ",:customers_ip)";

$sql = $db->bindVars($sql, ':productsID', $_GET['products_id'], 'integer');
$sql = $db->bindVars($sql, ':customersID', (isset($_SESSION['customer_id']) || $_SESSION['customer_id']=="")?0:$_SESSION['customer_id'], 'integer');
// $sql = $db->bindVars($sql, ':customersName', $customer->fields['customers_firstname'] . ' ' . $customer->fields['customers_lastname'], 'string');
$sql = $db->bindVars($sql, ':customers_email', $customer_email, 'string');
$sql = $db->bindVars($sql, ':review_title', $review_title, 'string');
$sql = $db->bindVars($sql, ':customersName',$customer_name, 'string');
$sql = $db->bindVars($sql, ':rating', $rating, 'string');
$sql = $db->bindVars($sql, ':customers_ip', $customers_ip, 'string');

$db->Execute($sql);




//文件:\includes\templates\ezppt\templates\tpl_product_reviews_default.php
//功能:显示reviews_reply内容

<br />
<?php if($reviews['reviewsReply'] != null){?>
<?php echo '<DIV class="reviews_reply">Reply: '.$reviews['reviewsReply'] .'</DIV>'?>
<?php }?>





//文件:\includes\modules\pages\product_info\header_php.php
//功能:读取reviews_reply字段并赋值


$reviews_query_raw = "SELECT r.reviews_id, left(rd.reviews_text, 400) as reviews_text, r.reviews_rating, r.date_added, r.customers_name,rd.reviews_reply                       

FROM " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd
WHERE r.products_id = :productsID
AND r.reviews_id = rd.reviews_id
AND rd.languages_id = :languagesID " . $review_status . "
ORDER BY r.reviews_id desc";

$reviews_query_raw = $db->bindVars($reviews_query_raw, ':productsID', $_GET['products_id'], 'integer');
$reviews_query_raw = $db->bindVars($reviews_query_raw, ':languagesID', $_SESSION['languages_id'], 'integer');
$reviews_split = new splitPageResults($reviews_query_raw, MAX_DISPLAY_NEW_REVIEWS);
$reviews = $db->Execute($reviews_split->sql_query);
$reviewsArray = array();
while (!$reviews->EOF) {
$reviewsArray[] = array('id'=>$reviews->fields['reviews_id'],
'customersName'=>$reviews->fields['customers_name'],
'dateAdded'=>$reviews->fields['date_added'],
'reviewsText'=>$reviews->fields['reviews_text'],
'reviewsReply'=>$reviews->fields['reviews_reply'],//@steven added
'reviewsRating'=>$reviews->fields['reviews_rating']);
$reviews->MoveNext();
}


//注意,以上代码并非连续的,请在适当位置进行修改.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值