���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /proc/self/root/var/www/html/tien-dien/code/product/ |
<?php global $DB,$INFO,$print,$v_lang; $id = isset($CORE->input['id']) ? intval($CORE->input['id']) : 0; if($id == 0) { $print->refresh('?act=product'); exit(); } // Get product details $product = $DB->fetch_row($DB->query("SELECT * FROM tb_product WHERE id='$id' AND status=0")); if(!$product) { $print->refresh('?act=product'); exit(); } // Get product categories $product_categories = array(); $query_categories = $DB->query("SELECT c.* FROM tb_product_categories c INNER JOIN tb_product_category pc ON c.category_id = pc.category_id WHERE pc.product_id = '$id' AND c.category_status = 0 ORDER BY c.category_pos ASC"); while ($row_category = $DB->fetch_row($query_categories)) { $product_categories[] = $row_category; } // Get primary category (first one) $primary_category = !empty($product_categories) ? $product_categories[0] : null; // Get related products $related_products = array(); $query = $DB->query("SELECT p.* FROM tb_product p INNER JOIN tb_product_category pc1 ON p.id = pc1.product_id INNER JOIN tb_product_category pc2 ON pc1.category_id = pc2.category_id WHERE pc2.product_id = '$id' AND p.id != '$id' AND p.status=0 GROUP BY p.id ORDER BY p.noibat DESC, p.pos ASC LIMIT 4"); while ($row = $DB->fetch_row($query)){ $related_products[] = $row; } $CORE->title_page = $product['title'] . ' | '; include 'layout/'.$INFO['path_skin'].'/header.php'; include 'layout/'.$INFO['path_skin'].'/menu.php'; ?> <div class="container mt-4 mb-4"> <div class="row"> <div class="col-md-12"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a href="?">Trang chủ</a></li> <li class="breadcrumb-item"><a href="?act=product">Sản phẩm</a></li> <?php if($primary_category): ?> <li class="breadcrumb-item"><a href="?act=product&category=<?php echo $primary_category['category_id']; ?>"><?php echo $primary_category['category_name']; ?></a></li> <?php endif; ?> <li class="breadcrumb-item active" aria-current="page"><?php echo $product['title']; ?></li> </ol> </nav> </div> </div> <div class="row"> <div class="col-md-6"> <?php if($product['path_img']): ?> <img src="<?php echo $product['path_img']; ?>" class="img-fluid" alt="<?php echo $product['title']; ?>"> <?php endif; ?> </div> <div class="col-md-6"> <h1><?php echo $product['title']; ?></h1> <?php if($v_lang == 'en' && !empty($product['etitle'])): ?> <h2><?php echo $product['etitle']; ?></h2> <?php endif; ?> <!-- Product Rating --> <div class="product-rating mb-3"> <?php // Get average rating for this product $avg_rating = $DB->fetch_row($DB->query("SELECT AVG(rating) as average, COUNT(*) as count FROM tb_product_ratings WHERE product_id='$id'")); $average = $avg_rating['average'] ? round($avg_rating['average'], 1) : 0; $count = $avg_rating['count'] ? $avg_rating['count'] : 0; ?> <div class="rating-display"> <div class="stars-outer"> <div class="stars-inner" style="width: <?php echo ($average / 5) * 100; ?>%"></div> </div> <span class="rating-value"><?php echo $average; ?></span> <span class="rating-count">(<?php echo $count; ?> đánh giá)</span> </div> <div class="rating-form mt-2"> <p>Đánh giá sản phẩm:</p> <div class="star-rating"> <span class="star" data-rating="1">★</span> <span class="star" data-rating="2">★</span> <span class="star" data-rating="3">★</span> <span class="star" data-rating="4">★</span> <span class="star" data-rating="5">★</span> <input type="hidden" id="selected-rating" value="0" data-product-id="<?php echo $id; ?>"> </div> <div id="rating-message" class="mt-1"></div> </div> </div> <?php if(!empty($product_categories)): ?> <div class="product-categories mb-3"> <span>Danh mục: </span> <?php foreach($product_categories as $index => $category): ?> <a href="?act=product&category=<?php echo $category['category_id']; ?>" class="badge badge-primary"><?php echo $category['category_name']; ?></a> <?php if($index < count($product_categories) - 1): ?> <?php endif; ?> <?php endforeach; ?> </div> <?php endif; ?> <div class="product-description mt-3"> <?php if($v_lang == 'en' && !empty($product['eintro'])): ?> <p><?php echo $product['eintro']; ?></p> <?php else: ?> <p><?php echo $product['intro']; ?></p> <?php endif; ?> </div> <div class="product-price mt-3"> <?php if(hasActiveDiscount($product)): ?> <h3 class="text-danger"><?php echo number_format(getDiscountedPrice($product)); ?> VNĐ</h3> <p class="text-muted"><del><?php echo number_format($product['price']); ?> VNĐ</del></p> <p class="badge badge-success">Giảm giá <?php echo number_format($product['discount_amount']); ?> VNĐ</p> <?php if(isset($product['discount_end_date']) && !empty($product['discount_end_date'])): ?> <p class="small text-muted">Thời gian giảm giá: đến <?php echo date('d/m/Y H:i', strtotime($product['discount_end_date'])); ?></p> <?php endif; ?> <?php else: ?> <h3 class="text-danger"><?php echo number_format($product['price']); ?> VNĐ</h3> <?php if($product['old_price'] > 0 && $product['old_price'] > $product['price']): ?> <p class="text-muted"><del><?php echo number_format($product['old_price']); ?> VNĐ</del></p> <?php endif; ?> <?php endif; ?> </div> <?php // Get product attributes $product_attributes = array(); $query_attrs = $DB->query(" SELECT a.attribute_id, a.attribute_name, a.attribute_ename, v.value_id, v.value_name, v.value_ename, v.additional_price, v.quantity, v.path_img, v.is_video FROM tb_product_attributes a JOIN tb_product_attribute_values v ON a.attribute_id = v.attribute_id JOIN tb_product_attribute_mapping m ON v.value_id = m.value_id WHERE m.product_id = '$id' ORDER BY a.attribute_id, v.value_id "); while ($row_attr = $DB->fetch_row($query_attrs)) { if (!isset($product_attributes[$row_attr['attribute_id']])) { $product_attributes[$row_attr['attribute_id']] = array( 'attribute_name' => $v_lang == 'en' && !empty($row_attr['attribute_ename']) ? $row_attr['attribute_ename'] : $row_attr['attribute_name'], 'values' => array() ); } $product_attributes[$row_attr['attribute_id']]['values'][] = array( 'value_id' => $row_attr['value_id'], 'value_name' => $v_lang == 'en' && !empty($row_attr['value_ename']) ? $row_attr['value_ename'] : $row_attr['value_name'], 'additional_price' => $row_attr['additional_price'], 'quantity' => $row_attr['quantity'], 'path_img' => $row_attr['path_img'], 'is_video' => $row_attr['is_video'] ); } // Display product attributes if any if (!empty($product_attributes)) { echo '<div class="product-attributes mt-4">'; foreach ($product_attributes as $attribute) { echo '<div class="attribute-group mb-3">'; echo '<h5>' . $attribute['attribute_name'] . '</h5>'; echo '<div class="attribute-values row">'; foreach ($attribute['values'] as $value) { echo '<div class="col-md-4 mb-2">'; echo '<div class="attribute-value-card card h-100">'; // Display image or video if (!empty($value['path_img'])) { if ($value['is_video'] == 1) { echo '<div class="card-img-top attribute-media">'; echo '<video width="100%" height="120" controls>'; echo '<source src="' . $value['path_img'] . '" type="video/mp4">'; echo 'Your browser does not support the video tag.'; echo '</video>'; echo '</div>'; } else { echo '<img src="' . $value['path_img'] . '" class="card-img-top attribute-media" alt="' . $value['value_name'] . '" style="height: 120px; object-fit: cover;">'; } } echo '<div class="card-body">'; echo '<h6 class="card-title">' . $value['value_name'] . '</h6>'; // Display additional price if any if ($value['additional_price'] > 0) { echo '<p class="card-text text-danger">+' . number_format($value['additional_price']) . ' VNĐ</p>'; } // Display quantity if any if ($value['quantity'] > 0) { echo '<p class="card-text">Số lượng: ' . $value['quantity'] . '</p>'; } echo '</div>'; echo '</div>'; echo '</div>'; } echo '</div>'; echo '</div>'; } echo '</div>'; } ?> <div class="product-actions mt-4"> <?php if($product['price'] > 0): ?> <a href="?act=checkout&action=buy_now&id=<?php echo $product['id']; ?>" class="btn btn-primary btn-lg">Mua ngay</a> <a href="?act=cart&action=add&id=<?php echo $product['id']; ?>" class="btn btn-outline-secondary btn-lg ml-2">Thêm vào giỏ hàng</a> <?php else: ?> <a href="?act=contact&product_id=<?php echo $product['id']; ?>" class="btn btn-info btn-lg">Liên hệ</a> <?php endif; ?> </div> </div> </div> <div class="row mt-5"> <div class="col-md-12"> <ul class="nav nav-tabs" id="productTab" role="tablist"> <li class="nav-item"> <a class="nav-link active" id="description-tab" data-toggle="tab" href="#description" role="tab" aria-controls="description" aria-selected="true">Mô tả chi tiết</a> </li> <li class="nav-item"> <a class="nav-link" id="specification-tab" data-toggle="tab" href="#specification" role="tab" aria-controls="specification" aria-selected="false">Thông số kỹ thuật</a> </li> </ul> <div class="tab-content" id="productTabContent"> <div class="tab-pane fade show active p-3" id="description" role="tabpanel" aria-labelledby="description-tab"> <?php if($v_lang == 'en' && !empty($product['ebody'])): ?> <?php echo html_entity_decode($product['ebody']); ?> <?php else: ?> <?php echo html_entity_decode($product['body']); ?> <?php endif; ?> </div> <div class="tab-pane fade p-3" id="specification" role="tabpanel" aria-labelledby="specification-tab"> <?php if($v_lang == 'en' && !empty($product['especification'])): ?> <?php echo html_entity_decode($product['especification']); ?> <?php else: ?> <?php echo html_entity_decode($product['specification']); ?> <?php endif; ?> </div> </div> </div> </div> <?php if(!empty($related_products)): ?> <div class="row mt-5"> <div class="col-md-12"> <h3>Sản phẩm liên quan</h3> </div> <?php foreach($related_products as $related): ?> <div class="col-md-3 mb-4"> <div class="card h-100"> <?php if($related['path_img']): ?> <img src="<?php echo $related['path_img']; ?>" class="card-img-top" alt="<?php echo $related['title']; ?>"> <?php endif; ?> <div class="card-body"> <h5 class="card-title"><?php echo $related['title']; ?></h5> <?php if(hasActiveDiscount($related)): ?> <p class="card-text text-danger font-weight-bold"><?php echo number_format(getDiscountedPrice($related)); ?> VNĐ</p> <p class="card-text"><small class="text-muted"><del><?php echo number_format($related['price']); ?> VNĐ</del></small></p> <?php else: ?> <p class="card-text text-danger font-weight-bold"><?php echo number_format($related['price']); ?> VNĐ</p> <?php endif; ?> <a href="?act=product&type=detail&id=<?php echo $related['id']; ?>" class="btn btn-primary">Chi tiết</a> </div> </div> </div> <?php endforeach; ?> </div> <?php endif; ?> </div> <?php include 'layout/'.$INFO['path_skin'].'/footer.php'; ?> <!-- Star Rating CSS and JS moved to external files -->