uawdijnntqw1x1x1
IP : 216.73.216.93
Hostname : panel.codeskitter.com
Kernel : Linux panel.codeskitter.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
Disable Function : apache_child_terminate, apache_note, apache_setenv, define_syslog_variables, dl, link, opcache_get_status, openlog, pcntl_exec, pcntl_fork, pcntl_setpriority, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid
OS : Linux
PATH:
/
home
/
users
/
unlimited
/
www
/
eshop.codeskitter.site
/
application
/
models
/
Rating_model.php
/
/
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Rating_model extends CI_Model { public function set_rating($data) { $data = escape_array($data); $rating = array( 'user_id' => $data['user_id'], 'product_id' => $data['product_id'], ); if (isset($data['rating']) && !empty($data['rating'])) { $rating['rating'] = $data['rating']; } if (isset($data['comment']) && !empty($data['comment'])) { $rating['comment'] = $data['comment']; } if (isset($data['images']) && !empty($data['images'])) { $rating['images'] = json_encode($data['images']); } if ($this->db->where(['user_id' => $data['user_id'], 'product_id' => $data['product_id']])->get('product_rating')->num_rows() > 0) { $this->db->where(['user_id' => $data['user_id'], 'product_id' => $data['product_id']])->update('product_rating', $rating); } else { $this->db->insert('product_rating', $rating); } if (isset($data['rating']) && !empty($data['rating'])) { // updateing product rating $product_rating = $this->db->select('rating,(select count(rating) from product_rating where product_id=' . $data['product_id'] . ')as no_of_ratings,(select sum(rating) from product_rating where product_id=' . $data['product_id'] . ') as sum_of_rating')->where('id', $data['product_id'])->get('products')->result_array(); $totalrating = ($product_rating[0]['sum_of_rating'] != null) ? $product_rating[0]['sum_of_rating'] : $data['rating']; $no_of_rating = intval($product_rating[0]['no_of_ratings']); if ($no_of_rating > 0) { $newrating = round($totalrating / $no_of_rating, 1, PHP_ROUND_HALF_UP); } else { $newrating = 0; } $this->db->set(['rating' => $newrating, 'no_of_ratings' => $no_of_rating])->where('id', $data['product_id'])->update('products'); // updateing seller rating $seller_id = fetch_details('products', ['id' => $data['product_id']], 'seller_id'); $seller_id = $seller_id[0]['seller_id']; $where = "seller_id = $seller_id and rating > 0"; $seller_rating = $this->db->select('rating,count(rating) as no_of_ratings,sum(rating) as sum_of_rating')->where($where)->get('products')->result_array(); $total_rating = ($seller_rating[0]['sum_of_rating'] != null) ? $seller_rating[0]['sum_of_rating'] : $data['rating']; $no_of_ratings = intval($seller_rating[0]['no_of_ratings']); if ($no_of_ratings > 0) { $new_rating = round($total_rating / $no_of_ratings, 1, PHP_ROUND_HALF_UP); } else { $new_rating = 0; } $this->db->set(['rating' => $new_rating, 'no_of_ratings' => $no_of_ratings])->where('user_id', $seller_id)->update('seller_data'); } } public function delete_rating($rating_id) { $rating_id = escape_array($rating_id); $rating_details = fetch_details('product_rating', ['id' => $rating_id], '*'); $images = json_decode($rating_details[0]['images'], 1); if (!empty($images)) { for ($i = 0; $i < count($images); $i++) { unlink(FCPATH . $images[$i]); } } $this->db->delete('product_rating', ['id' => $rating_id]); $product_rating = $this->db->select('rating,(select count(rating) from product_rating where product_id=' . $rating_details[0]['product_id'] . ')as no_of_ratings,(select sum(rating) from product_rating where product_id=' . $rating_details[0]['product_id'] . ') as sum_of_rating')->where('id', $rating_details[0]['product_id'])->get('products')->result_array(); $totalrating = ($product_rating[0]['sum_of_rating'] != null) ? $product_rating[0]['sum_of_rating'] : 0; $no_of_rating = intval($product_rating[0]['no_of_ratings']); if ($no_of_rating > 0) { $newrating = round($totalrating / $no_of_rating, 1, PHP_ROUND_HALF_UP); } else { $newrating = 0; } $this->db->set(['rating' => $newrating, 'no_of_ratings' => $no_of_rating])->where('id', $rating_details[0]['product_id'])->update('products'); $seller_id = fetch_details('products', ['id' => $rating_details[0]['product_id']], 'seller_id'); $seller_id = $seller_id[0]['seller_id']; $where = "seller_id = $seller_id and rating > 0"; $seller_rating = $this->db->select('rating,count(rating) as no_of_ratings,sum(rating) as sum_of_rating')->where($where)->get('products')->result_array(); $total_rating = ($seller_rating[0]['sum_of_rating'] != null) ? $seller_rating[0]['sum_of_rating'] : 0; $no_of_ratings = intval($seller_rating[0]['no_of_ratings']); if ($no_of_ratings > 0) { $new_rating = round($total_rating / $no_of_ratings, 1, PHP_ROUND_HALF_UP); } else { $new_rating = 0; } $this->db->set(['rating' => $new_rating, 'no_of_ratings' => $no_of_ratings])->where('user_id', $seller_id)->update('seller_data'); } function fetch_rating($product_id = NULL, $user_id = NULL, $limit = Null, $offset = Null, $sort = Null, $order = Null, $rating_id = null, $has_images = null) { $t = &get_instance(); $where = $images = []; if (isset($product_id) && !empty($product_id)) { $t->db->select('pr.*,u.username as user_name,u.image as user_profile'); $where['product_id'] = $product_id; } if (isset($user_id) && !empty($user_id)) { $where['user_id'] = $user_id; } if (isset($rating_id) && !empty($rating_id)) { $where['id'] = $rating_id; } $t->db->order_by((string)$sort, (string)$order); if (!empty($limit && $offset != "")) { $t->db->limit($limit, $offset); } if (isset($has_images) && $has_images == 1) { $where['pr.images !='] = null; } $t->db->where($where); $product_rating = $t->db->join('users u', 'u.id = pr.user_id', 'left')->get('product_rating pr')->result_array(); if (!empty($product_rating)) { $total_rating = $t->db->select(' count(pr.id) as no_of_rating ')->join('users u', 'u.id=pr.user_id')->where('product_id', $product_id)->get('product_rating pr')->result_array(); $total_images = $t->db->select(' ROUND (((LENGTH(`images`) - LENGTH(REPLACE(`images`, ",", ""))) / LENGTH(","))+1) as total ')->where('product_id', $product_id)->get('product_rating pr')->result_array(); $total_review_with_images = $t->db->select(' count(pr.id) as total ')->where('product_id', $product_id)->where('pr.images !=', null)->get('product_rating pr')->result_array(); $total_reviews = $t->db->select(' count(pr.id) as total,sum(case when CEILING(rating) = 1 AND product_id = ' . $product_id . ' then 1 else 0 end) as rating_1,sum(case when CEILING(rating) = 2 AND product_id = ' . $product_id . ' then 1 else 0 end) as rating_2,sum(case when CEILING(rating) = 3 AND product_id = ' . $product_id . ' then 1 else 0 end) as rating_3,sum(case when CEILING(rating) = 4 AND product_id = ' . $product_id . ' then 1 else 0 end) as rating_4,sum(case when CEILING(rating) = 5 AND product_id = ' . $product_id . ' then 1 else 0 end) as rating_5 ')->where('product_id', $product_id)->get('product_rating pr')->result_array(); for ($i = 0; $i < count($product_rating); $i++) { $product_rating[$i] = output_escaping($product_rating[$i]); if (isset($product_rating[$i]['images']) && ($product_rating[$i]['images'] != null || !empty($product_rating[$i]['images']))) { $images = json_decode($product_rating[$i]['images'], 1); for ($k = 0; $k < count($images); $k++) { $images[$k] = base_url() . $images[$k]; } $product_rating[$i]['images'] = (!empty($images)) ? $images : array(); } else { $product_rating[$i]['images'] = array(); } if (isset($product_rating[$i]['user_profile']) && !empty($product_rating[$i]['user_profile'])) { $product_rating[$i]['user_profile'] = base_url() . USER_IMG_PATH . $product_rating[$i]['user_profile']; } } if (!$total_images) { $res['total_images'] = $total_rating[0]['no_of_rating']; } else { $res['total_images'] = $total_images[0]['total']; } $res['total_images'] = isset($res['total_images']) && !empty($res['total_images']) ? $res['total_images'] : ''; $res['total_reviews_with_images'] = $total_review_with_images[0]['total']; $res['no_of_rating'] = $total_rating[0]['no_of_rating']; $res['total_reviews'] = $total_reviews[0]['total']; $res['star_1'] = $total_reviews[0]['rating_1']; $res['star_2'] = $total_reviews[0]['rating_2']; $res['star_3'] = $total_reviews[0]['rating_3']; $res['star_4'] = $total_reviews[0]['rating_4']; $res['star_5'] = $total_reviews[0]['rating_5']; $res['product_rating'] = $product_rating; return $res; } } public function get_rating() { $offset = 0; $limit = 10; $sort = 'id'; $order = 'DESC'; $multipleWhere = ''; if (isset($offset)) $offset = $_GET['offset']; if (isset($limit)) $limit = $_GET['limit']; if (isset($_GET['sort'])) if ($sort == 'id') { $sort = "id"; } else { $sort = $sort; } if (isset($order) and $order != '') { $search = $order; } if (isset($_GET['product_id']) && $_GET['product_id'] != null) { $where['product_id'] = $_GET['product_id']; } if (isset($_GET['user_id']) && $_GET['user_id'] != null) { $where['user_id'] = $_GET['user_id']; } $count_res = $this->db->select(' COUNT(pr.id) as total ')->join('users u', 'u.id=pr.user_id'); if (isset($_GET['search']) && trim($_GET['search'])) { $search = trim($_GET['search']); $multipleWhere = ['u.username' => $search, 'pr.comment' => $search, 'pr.rating' => $search]; } if (isset($multipleWhere) && !empty($multipleWhere)) { $this->db->group_start(); $count_res->or_like($multipleWhere); $this->db->group_end(); } if (isset($where) && !empty($where)) { $count_res->where($where); } $rating_count = $count_res->get('product_rating pr')->result_array(); foreach ($rating_count as $row) { $total = $row['total']; } $search_res = $this->db->select('pr.*,u.username as user_name')->join('users u', 'u.id=pr.user_id'); if (isset($multipleWhere) && !empty($multipleWhere)) { $this->db->group_start(); $search_res->or_like($multipleWhere); $this->db->group_end(); } if (isset($where) && !empty($where)) { $search_res->where($where); } $rating_search_res = $search_res->order_by($sort, $order)->limit($limit, $offset)->get('product_rating pr')->result_array(); $bulkData = array(); $bulkData['total'] = $total; $rows = array(); $tempRow = array(); $i = 0; foreach ($rating_search_res as $row) { $row = output_escaping($row); $date = new DateTime($row['data_added']); $operate = '<a class="btn btn-danger btn-xs mr-1 mb-1 delete-product-rating" href="javascript:void(0)" title="Delete" data-id="' . $row['id'] . '" ><i class="fa fa-trash"></i></a>'; $tempRow['id'] = $row['id']; $tempRow['username'] = $row['user_name']; if (isset($row['images']) && !empty($row['images'])) { $images = json_decode($row['images']); $tempRow['images'] = ''; for ($j = 0; $j < count($images); $j++) { $image_unique_name = 'rating-image-' . $i; $image_url = get_image_url($images[$j], 'thumb', 'sm'); if ($j == 0) { $counter = count($images) - 1; $counter = (count($images) > 1) ? '+ ' . $counter : ' '; $tempRow['images'] = '<div class="row"><div class="col-md-6"><div class="mx-auto product-image "><a href=' . $image_url . ' data-toggle="lightbox" data-gallery=' . $image_unique_name . '> <img src=' . $image_url . ' class="img-fluid rounded"> </a></div></div><div class="col-md-6 my-auto "> <span class="text-primary"> ' . $counter . '</span></div></div>'; } else { $tempRow['images'] .= '<div class="mx-auto product-image d-none"><a href=' . $image_url . ' data-toggle="lightbox" data-gallery=' . $image_unique_name . '><img src=' . $image_url . ' class="img-fluid rounded"></a></div>'; } } } else { $tempRow['images'] = '-'; } $tempRow['rating'] = '<input type="text" class="kv-fa rating-loading" value="' . $row['rating'] . '" data-size="xs" title="" readonly>'; $tempRow['comment'] = $row['comment']; $tempRow['data_added'] = $date->format('d-M-Y g:i A'); $tempRow['operate'] = $operate; $rows[] = $tempRow; $i++; } $bulkData['rows'] = $rows; print_r(json_encode($bulkData)); } }
/home/users/unlimited/www/eshop.codeskitter.site/application/models/Rating_model.php