|
Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /var/www/laciasmara.com/public_html/shop/application/models/ |
Upload File : |
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Badge_m extends CI_Model
{
private $table = 'badges';
public function get_all_badges()
{
return $this->db->get($this->table)->result();
}
public function get_badge_by_id($badge_id)
{
return $this->db->get_where($this->table, ['id' => $badge_id])->row();
}
public function get_badge_name_by_id($badge_id)
{
$query = $this->db->select('name')
->get_where($this->table, ['id' => $badge_id])
->row();
return $query ? $query->name : null;
}
public function get_products_by_badge_id($badge_id)
{
$this->db->select('
products.id_products,
products.title,
products.alias,
product_badges.badge_id,
product_badges.position,
product_badges.priority,
product_badges.start_date,
product_badges.end_date,
pi.image as image,
pd.id as product_detail_id,
MIN(pd.price) as min_price,
MAX(pd.price) as max_price,
badges.*
');
$this->db->from('product_badges');
$this->db->join('products', 'products.id_products = product_badges.product_id');
$this->db->join('product_details pd', 'pd.product_id = products.id_products', 'left');
$this->db->join('product_images pi', 'pi.product_details_id = pd.id AND pi.priority = 1 AND pi.status = 1', 'left');
$this->db->join('badges', 'badges.id = product_badges.badge_id', 'left');
$this->db->where('product_badges.badge_id', $badge_id);
$this->db->where('product_badges.is_active', 1);
$this->db->group_by('products.id_products, product_badges.id');
$this->db->order_by('product_badges.priority', 'ASC');
$results = $this->db->get()->result();
// Process image URLs and price formatting
foreach ($results as &$product) {
// Handle image URL
if (!empty($product->image)) {
$product->image_url = base_url('uploads/product/') . $product->image;
} else {
$product->image_url = base_url('assets/images/product-placeholder.png');
}
// Format price display
if ($product->min_price == $product->max_price) {
$product->price_display = 'Rp ' . number_format($product->min_price, 0, ',', '.');
} else {
$product->price_display = 'Rp ' . number_format($product->min_price, 0, ',', '.') .
' - Rp ' . number_format($product->max_price, 0, ',', '.');
}
// Format position untuk display
$positions = [
'top-left' => 'Kiri Atas',
'top-right' => 'Kanan Atas',
'bottom-left' => 'Kiri Bawah',
'bottom-right' => 'Kanan Bawah',
'center' => 'Tengah'
];
$product->position_display = $positions[$product->position] ?? $product->position;
}
return $results;
}
public function remove_badge_from_product($badge_id, $product_id)
{
$this->db->where('badge_id', $badge_id);
$this->db->where('product_id', $product_id);
return $this->db->delete('product_badges');
}
}