%PDF-1.7 GIF89;
Server IP : 5.161.254.237 / Your IP : 216.73.216.242 Web Server : Apache System : Linux diamond.sialwebvps.com 4.18.0-553.8.1.el8_10.x86_64 #1 SMP Tue Jul 2 07:26:33 EDT 2024 x86_64 User : stellasp ( 1131) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/stellasp/public_html/application/models/ |
Upload File : |
<?php Class Color_model extends CI_Model { // we will store the group discount formula here // and apply it to product prices as they are fetched var $group_discount_formula = false; function __construct() { parent::__construct(); // check for possible group discount $customer = $this->session->userdata('customer'); if(isset($customer['group_discount_formula'])) { $this->group_discount_formula = $customer['group_discount_formula']; } } function get_products($product_id = false) { //sort by alphabetically by default $this->db->where('pro_id', $product_id); $this->db->order_by('name', 'ASC'); $result = $this->db->get('colors'); //apply group discount $return = $result->result(); return $return; } function count_products($id) { return $this->db->select('product_id')->from('category_products')->join('colors', 'category_products.product_id=products.id')->where(array('category_id'=>$id, 'enabled'=>1))->count_all_results(); } function get_product($id, $sub=true) { $result = $this->db->get_where('colors', array('id'=>$id))->row(); if(!$result) { return false; } $result->categories = $this->get_product_categories($result->id); // group discount? if($this->group_discount_formula) { eval('$result->price=$result->price'.$this->group_discount_formula.';'); } return $result; } function get_product_categories($id) { $cats = $this->db->where('product_id', $id)->get('category_products')->result(); $categories = array(); foreach ($cats as $c) { $categories[] = $c->category_id; } return $categories; } function get_slug($id) { return $this->db->get_where('colors', array('id'=>$id))->row()->slug; } function check_slug($str, $id=false) { $this->db->select('slug'); $this->db->from('colors'); $this->db->where('slug', $str); if ($id) { $this->db->where('id !=', $id); } $count = $this->db->count_all_results(); if ($count > 0) { return true; } else { return false; } } function save($product) { if ($product['id']) { $this->db->where('id', $product['id']); $this->db->update('colors', $product); $id = $product['id']; } else { $this->db->insert('colors', $product); $id = $this->db->insert_id(); } //return the product id return $id; } function delete_product($id) { // delete product $this->db->where('id', $id); $this->db->delete('colors'); //delete references in the product to category table $this->db->where('product_id', $id); $this->db->delete('category_products'); // delete coupon reference $this->db->where('product_id', $id); $this->db->delete('coupons_products'); } function add_product_to_category($product_id, $optionlist_id, $sequence) { $this->db->insert('product_categories', array('product_id'=>$product_id, 'category_id'=>$category_id, 'sequence'=>$sequence)); } function search_products($term, $limit=false, $offset=false) { $results = array(); //I know this is the round about way of doing things and is not the fastest. but it is thus far the easiest. //this one counts the total number for our pagination $this->db->like('name', $term); $this->db->or_like('description', $term); $this->db->or_like('excerpt', $term); $this->db->or_like('sku', $term); $results['count'] = $this->db->count_all_results('colors'); //this one gets just the ones we need. $this->db->like('name', $term); $this->db->or_like('description', $term); $this->db->or_like('excerpt', $term); $this->db->or_like('sku', $term); $results['products'] = $this->db->get('colors', $limit, $offset)->result(); return $results; } // Build a cart-ready product array function get_cart_ready_product($id, $quantity=false) { $db_product = $this->get_product($id); if( ! $db_product) { return false; } $product = array(); if ($db_product->saleprice == 0.00) { $product['price'] = $db_product->price; } else { $product['price'] = $db_product->saleprice; } $product['base_price'] = $product['price']; // price gets modified by options, show the baseline still... $product['id'] = $db_product->id; $product['slug'] = $db_product->slug; $product['name'] = $db_product->name; $product['sku'] = $db_product->sku; $product['images'] = $db_product->images; $product['excerpt'] = $db_product->excerpt; $product['weight'] = $db_product->weight; $product['shippable'] = $db_product->shippable; $product['costpersqft'] = $db_product->costpersqft; $product['taxable'] = $db_product->taxable; $product['fixed_quantity'] = $db_product->fixed_quantity; $product['track_stock'] = $db_product->track_stock; $product['options'] = array(); // Some products have n/a quantity, such as downloadables if (!$quantity || $quantity <= 0 || $db_product->fixed_quantity==1) { $product['quantity'] = 1; } else { $product['quantity'] = $quantity; } // attach list of associated downloadables $product['file_list'] = $this->Digital_Product_model->get_associations_by_product($id); return $product; } }