tr-opencart

     
avatar Şuanki Zaman: 11-16-2024, 12:57 AMHoşgeldin Misafir !
  Şifremi Hatırlat   kayıt ol
opencart temaları

1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ?

Konuyu görüntüleyenler: 1 Misafir
 
Değerlendir:
  • 1 Oy - 1 Yüzde
  • 1
  • 2
  • 3
  • 4
  • 5
%
Cevapla  Gönder 
v  v
Yazar  orhansa - Görüntüleme - Okunma  7732 - Yorum  10

orhansav
Üye
***
Üye user avatar
Çevrimdışı

Mesajlar: 101
Konular: 47
Katılma Tarihi: Apr 2012
Rep Puanı: 0
Teşekkürler: 3
4 Mesajına, 4 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-29-2013 03:09 AM

versiyon 1.5.3.1
Kampanyalı ürünler alfabetik olarak görünüyor.
Kampanyalı ürünleri modülün rastgele göstermesi için nasıl bir işlem yapılmaladır.
Alıntı Yaparak Cevapla
Paylaş!
ITECHINNv
Sadece PHP
****
Üye user avatar
Çevrimdışı

Mesajlar: 557
Konular: 17
Katılma Tarihi: May 2012
Rep Puanı: 15
Teşekkürler: 275
189 Mesajına, 333 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-29-2013 10:47 AM
(01-29-2013 03:09 AM)orhansa Yazılan:  versiyon 1.5.3.1
Kampanyalı ürünler alfabetik olarak görünüyor.
Kampanyalı ürünleri modülün rastgele göstermesi için nasıl bir işlem yapılmaladır.

Selamlar

Catalog/model/catalog/product.php dosyasında

PHP Kod:
public function getProductSpecials($data = array()) { 

Bulun,

Bunun altlarına doğru göreceğiniz

PHP Kod:
$sort_data = array(
            
'pd.name',
            
'p.model',
            
'ps.price',
            
'rating',
            
'p.sort_order'
        
);
        
        if (isset(
$data['sort']) && in_array($data['sort'], $sort_data)) {
            if (
$data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                
$sql .= " ORDER BY priority asc, LCASE(" $data['sort'] . ") collate utf8_turkish_ci";
            } else {
                
$sql .= " ORDER BY  priority asc," $data['sort'];
            }
        } else {
            
$sql .= " ORDER BY priority asc, p.sort_order collate utf8_turkish_ci";    
        }
        
        
        if (isset(
$data['order']) && ($data['order'] == 'DESC')) {
            
$sql .= " DESC";
        } else {
            
$sql .= " ASC";
        } 

Kod kısmını silerek, yerine
PHP Kod:
$sql .= " Order by RAND()"


ekleyin, istediğiniz işlem sorunsuzca gerçekleşecektir.
Alıntı Yaparak Cevapla
Paylaş!
 Teşekkür Edenler: e-ticaretdersleri , nokta
orhansav
Üye
***
Üye user avatar
Çevrimdışı

Mesajlar: 101
Konular: 47
Katılma Tarihi: Apr 2012
Rep Puanı: 0
Teşekkürler: 3
4 Mesajına, 4 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-29-2013 12:56 PM
Dediğinizi aynen yaptım, Olmadı, hata verdi, site açılmadı.
Alıntı Yaparak Cevapla
Paylaş!
e-ticaretdersleriv
Osmanlı Torunu
******
Süper Moderator user avatar
Çevrimdışı

Mesajlar: 3,225
Konular: 520
Katılma Tarihi: Jan 2012
Rep Puanı: 102
Teşekkürler: 1169
1060 Mesajına, 2133 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-29-2013 01:03 PM
hata kodlarını yazarmısınız
e-ticaretdersleri
Alıntı Yaparak Cevapla
Paylaş!
orhansav
Üye
***
Üye user avatar
Çevrimdışı

Mesajlar: 101
Konular: 47
Katılma Tarihi: Apr 2012
Rep Puanı: 0
Teşekkürler: 3
4 Mesajına, 4 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-29-2013 01:14 PM
Parse error: syntax error, unexpected T_STRING in /home/xxxxxx/public_html/catalog/model/catalog/product.php on line 1

product.php dosyasının orjinal içeriği aşağıdaki gibidir.

PHP Kod:
<?php

class ModelCatalogProduct extends Model {

    public function 
updateViewed($product_id) {

        
$this->db->query("UPDATE " DB_PREFIX "product SET viewed = (viewed + 1) WHERE product_id = '" . (int)$product_id "'");

    }

    

    public function 
getProduct($product_id) {

        if (
$this->customer->isLogged()) {

            
$customer_group_id $this->customer->getCustomerGroupId();

        } else {

            
$customer_group_id $this->config->get('config_customer_group_id');

        }    

                

        
$query $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " DB_PREFIX "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " DB_PREFIX "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM " DB_PREFIX "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id "') AS reward, (SELECT ss.name FROM " DB_PREFIX "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " DB_PREFIX "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " DB_PREFIX "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " DB_PREFIX "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " DB_PREFIX "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " DB_PREFIX "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

        

        if (
$query->num_rows) {

            
$query->row['price'] = ($query->row['discount'] ? $query->row['discount'] : $query->row['price']);

            
$query->row['rating'] = (int)$query->row['rating'];

            

            return 
$query->row;

        } else {

            return 
false;

        }

    }



    public function 
getProducts($data = array()) {

        if (
$this->customer->isLogged()) {

            
$customer_group_id $this->customer->getCustomerGroupId();

        } else {

            
$customer_group_id $this->config->get('config_customer_group_id');

        }    

        

        
$cache md5(http_build_query($data));

        

        
$product_data $this->cache->get('product.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id '.' $cache);

        

        if (!
$product_data) {

            
$sql "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " DB_PREFIX "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id)"

            

            if (!empty(
$data['filter_tag'])) {

                
$sql .= " LEFT JOIN " DB_PREFIX "product_tag pt ON (p.product_id = pt.product_id)";            

            }

                        

            if (!empty(
$data['filter_category_id'])) {

                
$sql .= " LEFT JOIN " DB_PREFIX "product_to_category p2c ON (p.product_id = p2c.product_id)";            

            }

            

            
$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"

            

            if (!empty(
$data['filter_name']) || !empty($data['filter_tag'])) {

                
$sql .= " AND (";

                                            

                if (!empty(
$data['filter_name'])) {

                    
$implode = array();

                    

                    
$words explode(' 'trim(preg_replace('/\s\s+/'' '$data['filter_name'])));

                    

                    foreach (
$words as $word) {

                        if (!empty(
$data['filter_description'])) {

                            
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%' OR LCASE(pd.description) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";

                        } else {

                            
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";

                        }                

                    }

                    

                    if (
$implode) {

                        
$sql .= " " implode(" OR "$implode) . "";

                    }

                }

                

                if (!empty(
$data['filter_name']) && !empty($data['filter_tag'])) {

                    
$sql .= " OR ";

                }

                

                if (!empty(
$data['filter_tag'])) {

                    
$implode = array();

                    

                    
$words explode(' 'trim(preg_replace('/\s\s+/'' '$data['filter_tag'])));

                    

                    foreach (
$words as $word) {

                        
$implode[] = "LCASE(pt.tag) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";

                    }

                    

                    if (
$implode) {

                        
$sql .= " " implode(" OR "$implode) . " AND pt.language_id = '" . (int)$this->config->get('config_language_id') . "'";

                    }

                }

            

                
$sql .= ")";

            }

            

            if (!empty(
$data['filter_category_id'])) {

                if (!empty(
$data['filter_sub_category'])) {

                    
$implode_data = array();

                    

                    
$implode_data[] = "p2c.category_id = '" . (int)$data['filter_category_id'] . "'";

                    

                    
$this->load->model('catalog/category');

                    

                    
$categories $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);

                                        

                    foreach (
$categories as $category_id) {

                        
$implode_data[] = "p2c.category_id = '" . (int)$category_id "'";

                    }

                                

                    
$sql .= " AND (" implode(' OR '$implode_data) . ")";            

                } else {

                    
$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";

                }

            }        

                    

            if (!empty(
$data['filter_manufacturer_id'])) {

                
$sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";

            }

            

            
$sql .= " GROUP BY p.product_id";

            

            
$sort_data = array(

                
'pd.name',

                
'p.model',

                
'p.quantity',

                
'p.price',

                
'rating',

                
'p.sort_order',

                
'p.date_added'

            
);    

            

            if (isset(
$data['sort']) && in_array($data['sort'], $sort_data)) {

                if (
$data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {

                    
$sql .= " ORDER BY LCASE(" $data['sort'] . ")";

                } else {

                    
$sql .= " ORDER BY " $data['sort'];

                }

            } else {

                
$sql .= " ORDER BY p.sort_order";    

            }

            

            if (isset(
$data['order']) && ($data['order'] == 'DESC')) {

                
$sql .= " DESC, LCASE(pd.name) DESC";

            } else {

                
$sql .= " ASC, LCASE(pd.name) ASC";

            }

        

            if (isset(
$data['start']) || isset($data['limit'])) {

                if (
$data['start'] < 0) {

                    
$data['start'] = 0;

                }                

    

                if (
$data['limit'] < 1) {

                    
$data['limit'] = 20;

                }    

            

                
$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];

            }

            

            
$product_data = array();

                    

            
$query $this->db->query($sql);

        

            foreach (
$query->rows as $result) {

                
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);

            }

            

            
$this->cache->set('product.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id '.' $cache$product_data);

        }

        

        return 
$product_data;

    }

    

    public function 
getProductSpecials($data = array()) {

        if (
$this->customer->isLogged()) {

            
$customer_group_id $this->customer->getCustomerGroupId();

        } else {

            
$customer_group_id $this->config->get('config_customer_group_id');

        }    

                

        
$sql "SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM " DB_PREFIX "review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " DB_PREFIX "product_special ps LEFT JOIN " DB_PREFIX "product p ON (ps.product_id = p.product_id) LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ps.customer_group_id = '" . (int)$customer_group_id "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id";



        
$sort_data = array(

            
'pd.name',

            
'p.model',

            
'ps.price',

            
'rating',

            
'p.sort_order'

        
);

        

        if (isset(
$data['sort']) && in_array($data['sort'], $sort_data)) {

            if (
$data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {

                
$sql .= " ORDER BY LCASE(" $data['sort'] . ")";

            } else {

                
$sql .= " ORDER BY " $data['sort'];

            }

        } else {

            
$sql .= " ORDER BY p.sort_order";    

        }

        

        if (isset(
$data['order']) && ($data['order'] == 'DESC')) {

            
$sql .= " DESC, LCASE(pd.name) DESC";

        } else {

            
$sql .= " ASC, LCASE(pd.name) ASC";

        }

    

        if (isset(
$data['start']) || isset($data['limit'])) {

            if (
$data['start'] < 0) {

                
$data['start'] = 0;

            }                



            if (
$data['limit'] < 1) {

                
$data['limit'] = 20;

            }    

        

            
$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];

        }



        
$product_data = array();

        

        
$query $this->db->query($sql);

        

        foreach (
$query->rows as $result) {         

            
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);

        }

        

        return 
$product_data;

    }

        

    public function 
getLatestProducts($limit) {

        if (
$this->customer->isLogged()) {

            
$customer_group_id $this->customer->getCustomerGroupId();

        } else {

            
$customer_group_id $this->config->get('config_customer_group_id');

        }    

                

        
$product_data $this->cache->get('product.latest.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' $customer_group_id '.' . (int)$limit);



        if (!
$product_data) { 

            
$query $this->db->query("SELECT p.product_id FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.date_added DESC LIMIT " . (int)$limit);

              

            foreach (
$query->rows as $result) {

                
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);

            }

            

            
$this->cache->set('product.latest.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'). '.' $customer_group_id '.' . (int)$limit$product_data);

        }

        

        return 
$product_data;

    }

    

    public function 
getPopularProducts($limit) {

        
$product_data = array();

        

        
$query $this->db->query("SELECT p.product_id FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.viewed, p.date_added DESC LIMIT " . (int)$limit);

        

        foreach (
$query->rows as $result) {         

            
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);

        }

                                  

        return 
$product_data;

    }



    public function 
getBestSellerProducts($limit) {

        if (
$this->customer->isLogged()) {

            
$customer_group_id $this->customer->getCustomerGroupId();

        } else {

            
$customer_group_id $this->config->get('config_customer_group_id');

        }    

                

        
$product_data $this->cache->get('product.bestseller.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'). '.' $customer_group_id '.' . (int)$limit);



        if (!
$product_data) { 

            
$product_data = array();

            

            
$query $this->db->query("SELECT op.product_id, COUNT(*) AS total FROM " DB_PREFIX "order_product op LEFT JOIN `" DB_PREFIX "order` o ON (op.order_id = o.order_id) LEFT JOIN `" DB_PREFIX "product` p ON (op.product_id = p.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);

            

            foreach (
$query->rows as $result) {         

                
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);

            }

            

            
$this->cache->set('product.bestseller.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'). '.' $customer_group_id '.' . (int)$limit$product_data);

        }

        

        return 
$product_data;

    }

    

    public function 
getProductAttributes($product_id) {

        
$product_attribute_group_data = array();

        

        
$product_attribute_group_query $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " DB_PREFIX "product_attribute pa LEFT JOIN " DB_PREFIX "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " DB_PREFIX "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " DB_PREFIX "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name");

        

        foreach (
$product_attribute_group_query->rows as $product_attribute_group) {

            
$product_attribute_data = array();

            

            
$product_attribute_query $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " DB_PREFIX "product_attribute pa LEFT JOIN " DB_PREFIX "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " DB_PREFIX "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY a.sort_order, ad.name");

            

            foreach (
$product_attribute_query->rows as $product_attribute) {

                
$product_attribute_data[] = array(

                    
'attribute_id' => $product_attribute['attribute_id'],

                    
'name'         => $product_attribute['name'],

                    
'text'         => $product_attribute['text']             

                );

            }

            

            
$product_attribute_group_data[] = array(

                
'attribute_group_id' => $product_attribute_group['attribute_group_id'],

                
'name'               => $product_attribute_group['name'],

                
'attribute'          => $product_attribute_data

            
);            

        }

        

        return 
$product_attribute_group_data;

    }

            

    public function 
getProductOptions($product_id) {

        
$product_option_data = array();



        
$product_option_query $this->db->query("SELECT * FROM " DB_PREFIX "product_option po LEFT JOIN `" DB_PREFIX "option` o ON (po.option_id = o.option_id) LEFT JOIN " DB_PREFIX "option_description od ON (o.option_id = od.option_id) WHERE po.product_id = '" . (int)$product_id "' AND od.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.sort_order");

        

        foreach (
$product_option_query->rows as $product_option) {

            if (
$product_option['type'] == 'select' || $product_option['type'] == 'radio' || $product_option['type'] == 'checkbox' || $product_option['type'] == 'image') {

                
$product_option_value_data = array();

            

                
$product_option_value_query $this->db->query("SELECT * FROM " DB_PREFIX "product_option_value pov LEFT JOIN " DB_PREFIX "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " DB_PREFIX "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.product_id = '" . (int)$product_id "' AND pov.product_option_id = '" . (int)$product_option['product_option_id'] . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY ov.sort_order");

                

                foreach (
$product_option_value_query->rows as $product_option_value) {

                    
$product_option_value_data[] = array(

                        
'product_option_value_id' => $product_option_value['product_option_value_id'],

                        
'option_value_id'         => $product_option_value['option_value_id'],

                        
'name'                    => $product_option_value['name'],

                        
'image'                   => $product_option_value['image'],

                        
'quantity'                => $product_option_value['quantity'],

                        
'subtract'                => $product_option_value['subtract'],

                        
'price'                   => $product_option_value['price'],

                        
'price_prefix'            => $product_option_value['price_prefix'],

                        
'weight'                  => $product_option_value['weight'],

                        
'weight_prefix'           => $product_option_value['weight_prefix']

                    );

                }

                                    

                
$product_option_data[] = array(

                    
'product_option_id' => $product_option['product_option_id'],

                    
'option_id'         => $product_option['option_id'],

                    
'name'              => $product_option['name'],

                    
'type'              => $product_option['type'],

                    
'option_value'      => $product_option_value_data,

                    
'required'          => $product_option['required']

                );

            } else {

                
$product_option_data[] = array(

                    
'product_option_id' => $product_option['product_option_id'],

                    
'option_id'         => $product_option['option_id'],

                    
'name'              => $product_option['name'],

                    
'type'              => $product_option['type'],

                    
'option_value'      => $product_option['option_value'],

                    
'required'          => $product_option['required']

                );                

            }

          }

        

        return 
$product_option_data;

    }

    

    public function 
getProductDiscounts($product_id) {

        if (
$this->customer->isLogged()) {

            
$customer_group_id $this->customer->getCustomerGroupId();

        } else {

            
$customer_group_id $this->config->get('config_customer_group_id');

        }    

        

        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_discount WHERE product_id = '" . (int)$product_id "' AND customer_group_id = '" . (int)$customer_group_id "' AND quantity > 1 AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY quantity ASC, priority ASC, price ASC");



        return 
$query->rows;        

    }

        

    public function 
getProductImages($product_id) {

        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_image WHERE product_id = '" . (int)$product_id "' ORDER BY sort_order ASC");



        return 
$query->rows;

    }

    

    public function 
getProductRelated($product_id) {

        
$product_data = array();



        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_related pr LEFT JOIN " DB_PREFIX "product p ON (pr.related_id = p.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pr.product_id = '" . (int)$product_id "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

        

        foreach (
$query->rows as $result) { 

            
$product_data[$result['related_id']] = $this->getProduct($result['related_id']);

        }

        

        return 
$product_data;

    }

        

    public function 
getProductTags($product_id) {

        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_tag WHERE product_id = '" . (int)$product_id "' AND language_id = '" . (int)$this->config->get('config_language_id') . "'");



        return 
$query->rows;

    }

        

    public function 
getProductLayoutId($product_id) {

        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_to_layout WHERE product_id = '" . (int)$product_id "' AND store_id = '" . (int)$this->config->get('config_store_id') . "'");

        

        if (
$query->num_rows) {

            return 
$query->row['layout_id'];

        } else {

            return  
$this->config->get('config_layout_product');

        }

    }

    

    public function 
getCategories($product_id) {

        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_to_category WHERE product_id = '" . (int)$product_id "'");

        

        return 
$query->rows;

    }    

        

    public function 
getTotalProducts($data = array()) {

        
$sql "SELECT COUNT(DISTINCT p.product_id) AS total FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id)";



        if (!empty(
$data['filter_category_id'])) {

            
$sql .= " LEFT JOIN " DB_PREFIX "product_to_category p2c ON (p.product_id = p2c.product_id)";            

        }

        

        if (!empty(
$data['filter_tag'])) {

            
$sql .= " LEFT JOIN " DB_PREFIX "product_tag pt ON (p.product_id = pt.product_id)";            

        }

                    

        
$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

        

        if (!empty(
$data['filter_name']) || !empty($data['filter_tag'])) {

            
$sql .= " AND (";

                                

            if (!empty(
$data['filter_name'])) {

                
$implode = array();

                

                
$words explode(' 'trim(preg_replace('/\s\s+/'' '$data['filter_name'])));

                

                foreach (
$words as $word) {

                    if (!empty(
$data['filter_description'])) {

                        
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%' OR LCASE(pd.description) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";

                    } else {

                        
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";

                    }                

                }

                

                if (
$implode) {

                    
$sql .= " " implode(" OR "$implode) . "";

                }

            }

            

            if (!empty(
$data['filter_name']) && !empty($data['filter_tag'])) {

                
$sql .= " OR ";

            }

            

            if (!empty(
$data['filter_tag'])) {

                
$implode = array();

                

                
$words explode(' 'trim(preg_replace('/\s\s+/'' '$data['filter_tag'])));

                

                foreach (
$words as $word) {

                    
$implode[] = "LCASE(pt.tag) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";

                }

                

                if (
$implode) {

                    
$sql .= " " implode(" OR "$implode) . " AND pt.language_id = '" . (int)$this->config->get('config_language_id') . "'";

                }

            }

        

            
$sql .= ")";

        }

        

        if (!empty(
$data['filter_category_id'])) {

            if (!empty(
$data['filter_sub_category'])) {

                
$implode_data = array();

                

                
$implode_data[] = "p2c.category_id = '" . (int)$data['filter_category_id'] . "'";

                

                
$this->load->model('catalog/category');

                

                
$categories $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);

                    

                foreach (
$categories as $category_id) {

                    
$implode_data[] = "p2c.category_id = '" . (int)$category_id "'";

                }

                            

                
$sql .= " AND (" implode(' OR '$implode_data) . ")";            

            } else {

                
$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";

            }

        }        

        

        if (!empty(
$data['filter_manufacturer_id'])) {

            
$sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";

        }

        

        
$query $this->db->query($sql);

        

        return 
$query->row['total'];

    }

            

    public function 
getTotalProductSpecials() {

        if (
$this->customer->isLogged()) {

            
$customer_group_id $this->customer->getCustomerGroupId();

        } else {

            
$customer_group_id $this->config->get('config_customer_group_id');

        }        

        

        
$query $this->db->query("SELECT COUNT(DISTINCT ps.product_id) AS total FROM " DB_PREFIX "product_special ps LEFT JOIN " DB_PREFIX "product p ON (ps.product_id = p.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ps.customer_group_id = '" . (int)$customer_group_id "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))");

        

        if (isset(
$query->row['total'])) {

            return 
$query->row['total'];

        } else {

            return 
0;    

        }

    }    

}

?>
Alıntı Yaparak Cevapla
Paylaş!
ITECHINNv
Sadece PHP
****
Üye user avatar
Çevrimdışı

Mesajlar: 557
Konular: 17
Katılma Tarihi: May 2012
Rep Puanı: 15
Teşekkürler: 275
189 Mesajına, 333 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-29-2013 03:25 PM
(01-29-2013 01:14 PM)orhansa Yazılan:  Parse error: syntax error, unexpected T_STRING in /home/xxxxxx/public_html/catalog/model/catalog/product.php on line 1

product.php dosyasının orjinal içeriği aşağıdaki gibidir.

Merhabalar;

Hiç bir ekleme vs yapmadıysanız, aşağıdaki kodları kendi product.php dosya içeriğinizle değiştirdiğinizde çalışması gerekiyor.

Not: Denendi

PHP Kod:
<?php
class ModelCatalogProduct extends Model {
    public function 
updateViewed($product_id) {
        
$this->db->query("UPDATE " DB_PREFIX "product SET viewed = (viewed + 1) WHERE product_id = '" . (int)$product_id "'");
    }
    
    public function 
getProduct($product_id) {
        if (
$this->customer->isLogged()) {
            
$customer_group_id $this->customer->getCustomerGroupId();
        } else {
            
$customer_group_id $this->config->get('config_customer_group_id');
        }    
                
        
$query $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " DB_PREFIX "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " DB_PREFIX "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM " DB_PREFIX "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id "') AS reward, (SELECT ss.name FROM " DB_PREFIX "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " DB_PREFIX "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " DB_PREFIX "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " DB_PREFIX "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " DB_PREFIX "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " DB_PREFIX "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
        
        if (
$query->num_rows) {
            
$query->row['price'] = ($query->row['discount'] ? $query->row['discount'] : $query->row['price']);
            
$query->row['rating'] = (int)$query->row['rating'];
            
            return 
$query->row;
        } else {
            return 
false;
        }
    }

    public function 
getProducts($data = array()) {
        if (
$this->customer->isLogged()) {
            
$customer_group_id $this->customer->getCustomerGroupId();
        } else {
            
$customer_group_id $this->config->get('config_customer_group_id');
        }    
        
        
$cache md5(http_build_query($data));
        
        
$product_data $this->cache->get('product.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id '.' $cache);
        
        if (!
$product_data) {
            
$sql "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " DB_PREFIX "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id)"
            
            if (!empty(
$data['filter_tag'])) {
                
$sql .= " LEFT JOIN " DB_PREFIX "product_tag pt ON (p.product_id = pt.product_id)";            
            }
                        
            if (!empty(
$data['filter_category_id'])) {
                
$sql .= " LEFT JOIN " DB_PREFIX "product_to_category p2c ON (p.product_id = p2c.product_id)";            
            }
            
            
$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"
            
            if (!empty(
$data['filter_name']) || !empty($data['filter_tag'])) {
                
$sql .= " AND (";
                                            
                if (!empty(
$data['filter_name'])) {
                    
$implode = array();
                    
                    
$words explode(' 'trim(preg_replace('/\s\s+/'' '$data['filter_name'])));
                    
                    foreach (
$words as $word) {
                        if (!empty(
$data['filter_description'])) {
                            
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%' OR LCASE(pd.description) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";
                        } else {
                            
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";
                        }                
                    }
                    
                    if (
$implode) {
                        
$sql .= " " implode(" OR "$implode) . "";
                    }
                }
                
                if (!empty(
$data['filter_name']) && !empty($data['filter_tag'])) {
                    
$sql .= " OR ";
                }
                
                if (!empty(
$data['filter_tag'])) {
                    
$implode = array();
                    
                    
$words explode(' 'trim(preg_replace('/\s\s+/'' '$data['filter_tag'])));
                    
                    foreach (
$words as $word) {
                        
$implode[] = "LCASE(pt.tag) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";
                    }
                    
                    if (
$implode) {
                        
$sql .= " " implode(" OR "$implode) . " AND pt.language_id = '" . (int)$this->config->get('config_language_id') . "'";
                    }
                }
            
                
$sql .= ")";
            }
            
            if (!empty(
$data['filter_category_id'])) {
                if (!empty(
$data['filter_sub_category'])) {
                    
$implode_data = array();
                    
                    
$implode_data[] = "p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
                    
                    
$this->load->model('catalog/category');
                    
                    
$categories $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);
                                        
                    foreach (
$categories as $category_id) {
                        
$implode_data[] = "p2c.category_id = '" . (int)$category_id "'";
                    }
                                
                    
$sql .= " AND (" implode(' OR '$implode_data) . ")";            
                } else {
                    
$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
                }
            }        
                    
            if (!empty(
$data['filter_manufacturer_id'])) {
                
$sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";
            }
            
            
$sql .= " GROUP BY p.product_id";
            
            
$sort_data = array(
                
'pd.name',
                
'p.model',
                
'p.quantity',
                
'p.price',
                
'rating',
                
'p.sort_order',
                
'p.date_added'
            
);    
            
            if (isset(
$data['sort']) && in_array($data['sort'], $sort_data)) {
                if (
$data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                    
$sql .= " ORDER BY LCASE(" $data['sort'] . ")";
                } else {
                    
$sql .= " ORDER BY " $data['sort'];
                }
            } else {
                
$sql .= " ORDER BY p.sort_order";    
            }
            
            if (isset(
$data['order']) && ($data['order'] == 'DESC')) {
                
$sql .= " DESC, LCASE(pd.name) DESC";
            } else {
                
$sql .= " ASC, LCASE(pd.name) ASC";
            }
        
            if (isset(
$data['start']) || isset($data['limit'])) {
                if (
$data['start'] < 0) {
                    
$data['start'] = 0;
                }                
    
                if (
$data['limit'] < 1) {
                    
$data['limit'] = 20;
                }    
            
                
$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
            }
            
            
$product_data = array();
                    
            
$query $this->db->query($sql);
        
            foreach (
$query->rows as $result) {
                
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
            }
            
            
$this->cache->set('product.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id '.' $cache$product_data);
        }
        
        return 
$product_data;
    }
    
    public function 
getProductSpecials($data = array()) {
        if (
$this->customer->isLogged()) {
            
$customer_group_id $this->customer->getCustomerGroupId();
        } else {
            
$customer_group_id $this->config->get('config_customer_group_id');
        }    
                
        
$sql "SELECT DISTINCT ps.product_id, (SELECT AVG(rating) FROM " DB_PREFIX "review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " DB_PREFIX "product_special ps LEFT JOIN " DB_PREFIX "product p ON (ps.product_id = p.product_id) LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ps.customer_group_id = '" . (int)$customer_group_id "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) GROUP BY ps.product_id";

        
$sql .= " Order By RAND()";
    
        if (isset(
$data['start']) || isset($data['limit'])) {
            if (
$data['start'] < 0) {
                
$data['start'] = 0;
            }                

            if (
$data['limit'] < 1) {
                
$data['limit'] = 20;
            }    
        
            
$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
        }

        
$product_data = array();
        
        
$query $this->db->query($sql);
        
        foreach (
$query->rows as $result) {         
            
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
        }
        
        return 
$product_data;
    }
        
    public function 
getLatestProducts($limit) {
        if (
$this->customer->isLogged()) {
            
$customer_group_id $this->customer->getCustomerGroupId();
        } else {
            
$customer_group_id $this->config->get('config_customer_group_id');
        }    
                
        
$product_data $this->cache->get('product.latest.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' $customer_group_id '.' . (int)$limit);

        if (!
$product_data) { 
            
$query $this->db->query("SELECT p.product_id FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.date_added DESC LIMIT " . (int)$limit);
              
            foreach (
$query->rows as $result) {
                
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
            }
            
            
$this->cache->set('product.latest.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'). '.' $customer_group_id '.' . (int)$limit$product_data);
        }
        
        return 
$product_data;
    }
    
    public function 
getPopularProducts($limit) {
        
$product_data = array();
        
        
$query $this->db->query("SELECT p.product_id FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.viewed, p.date_added DESC LIMIT " . (int)$limit);
        
        foreach (
$query->rows as $result) {         
            
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
        }
                                  
        return 
$product_data;
    }

    public function 
getBestSellerProducts($limit) {
        if (
$this->customer->isLogged()) {
            
$customer_group_id $this->customer->getCustomerGroupId();
        } else {
            
$customer_group_id $this->config->get('config_customer_group_id');
        }    
                
        
$product_data $this->cache->get('product.bestseller.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'). '.' $customer_group_id '.' . (int)$limit);

        if (!
$product_data) { 
            
$product_data = array();
            
            
$query $this->db->query("SELECT op.product_id, COUNT(*) AS total FROM " DB_PREFIX "order_product op LEFT JOIN `" DB_PREFIX "order` o ON (op.order_id = o.order_id) LEFT JOIN `" DB_PREFIX "product` p ON (op.product_id = p.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE o.order_status_id > '0' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' GROUP BY op.product_id ORDER BY total DESC LIMIT " . (int)$limit);
            
            foreach (
$query->rows as $result) {         
                
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
            }
            
            
$this->cache->set('product.bestseller.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'). '.' $customer_group_id '.' . (int)$limit$product_data);
        }
        
        return 
$product_data;
    }
    
    public function 
getProductAttributes($product_id) {
        
$product_attribute_group_data = array();
        
        
$product_attribute_group_query $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " DB_PREFIX "product_attribute pa LEFT JOIN " DB_PREFIX "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " DB_PREFIX "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " DB_PREFIX "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name");
        
        foreach (
$product_attribute_group_query->rows as $product_attribute_group) {
            
$product_attribute_data = array();
            
            
$product_attribute_query $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " DB_PREFIX "product_attribute pa LEFT JOIN " DB_PREFIX "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " DB_PREFIX "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY a.sort_order, ad.name");
            
            foreach (
$product_attribute_query->rows as $product_attribute) {
                
$product_attribute_data[] = array(
                    
'attribute_id' => $product_attribute['attribute_id'],
                    
'name'         => $product_attribute['name'],
                    
'text'         => $product_attribute['text']             
                );
            }
            
            
$product_attribute_group_data[] = array(
                
'attribute_group_id' => $product_attribute_group['attribute_group_id'],
                
'name'               => $product_attribute_group['name'],
                
'attribute'          => $product_attribute_data
            
);            
        }
        
        return 
$product_attribute_group_data;
    }
            
    public function 
getProductOptions($product_id) {
        
$product_option_data = array();

        
$product_option_query $this->db->query("SELECT * FROM " DB_PREFIX "product_option po LEFT JOIN `" DB_PREFIX "option` o ON (po.option_id = o.option_id) LEFT JOIN " DB_PREFIX "option_description od ON (o.option_id = od.option_id) WHERE po.product_id = '" . (int)$product_id "' AND od.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.sort_order");
        
        foreach (
$product_option_query->rows as $product_option) {
            if (
$product_option['type'] == 'select' || $product_option['type'] == 'radio' || $product_option['type'] == 'checkbox' || $product_option['type'] == 'image') {
                
$product_option_value_data = array();
            
                
$product_option_value_query $this->db->query("SELECT * FROM " DB_PREFIX "product_option_value pov LEFT JOIN " DB_PREFIX "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " DB_PREFIX "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.product_id = '" . (int)$product_id "' AND pov.product_option_id = '" . (int)$product_option['product_option_id'] . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY ov.sort_order");
                
                foreach (
$product_option_value_query->rows as $product_option_value) {
                    
$product_option_value_data[] = array(
                        
'product_option_value_id' => $product_option_value['product_option_value_id'],
                        
'option_value_id'         => $product_option_value['option_value_id'],
                        
'name'                    => $product_option_value['name'],
                        
'image'                   => $product_option_value['image'],
                        
'quantity'                => $product_option_value['quantity'],
                        
'subtract'                => $product_option_value['subtract'],
                        
'price'                   => $product_option_value['price'],
                        
'price_prefix'            => $product_option_value['price_prefix'],
                        
'weight'                  => $product_option_value['weight'],
                        
'weight_prefix'           => $product_option_value['weight_prefix']
                    );
                }
                                    
                
$product_option_data[] = array(
                    
'product_option_id' => $product_option['product_option_id'],
                    
'option_id'         => $product_option['option_id'],
                    
'name'              => $product_option['name'],
                    
'type'              => $product_option['type'],
                    
'option_value'      => $product_option_value_data,
                    
'required'          => $product_option['required']
                );
            } else {
                
$product_option_data[] = array(
                    
'product_option_id' => $product_option['product_option_id'],
                    
'option_id'         => $product_option['option_id'],
                    
'name'              => $product_option['name'],
                    
'type'              => $product_option['type'],
                    
'option_value'      => $product_option['option_value'],
                    
'required'          => $product_option['required']
                );                
            }
          }
        
        return 
$product_option_data;
    }
    
    public function 
getProductDiscounts($product_id) {
        if (
$this->customer->isLogged()) {
            
$customer_group_id $this->customer->getCustomerGroupId();
        } else {
            
$customer_group_id $this->config->get('config_customer_group_id');
        }    
        
        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_discount WHERE product_id = '" . (int)$product_id "' AND customer_group_id = '" . (int)$customer_group_id "' AND quantity > 1 AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY quantity ASC, priority ASC, price ASC");

        return 
$query->rows;        
    }
        
    public function 
getProductImages($product_id) {
        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_image WHERE product_id = '" . (int)$product_id "' ORDER BY sort_order ASC");

        return 
$query->rows;
    }
    
    public function 
getProductRelated($product_id) {
        
$product_data = array();

        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_related pr LEFT JOIN " DB_PREFIX "product p ON (pr.related_id = p.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pr.product_id = '" . (int)$product_id "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
        
        foreach (
$query->rows as $result) { 
            
$product_data[$result['related_id']] = $this->getProduct($result['related_id']);
        }
        
        return 
$product_data;
    }
        
    public function 
getProductTags($product_id) {
        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_tag WHERE product_id = '" . (int)$product_id "' AND language_id = '" . (int)$this->config->get('config_language_id') . "'");

        return 
$query->rows;
    }
        
    public function 
getProductLayoutId($product_id) {
        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_to_layout WHERE product_id = '" . (int)$product_id "' AND store_id = '" . (int)$this->config->get('config_store_id') . "'");
        
        if (
$query->num_rows) {
            return 
$query->row['layout_id'];
        } else {
            return  
$this->config->get('config_layout_product');
        }
    }
    
    public function 
getCategories($product_id) {
        
$query $this->db->query("SELECT * FROM " DB_PREFIX "product_to_category WHERE product_id = '" . (int)$product_id "'");
        
        return 
$query->rows;
    }    
        
    public function 
getTotalProducts($data = array()) {
        
$sql "SELECT COUNT(DISTINCT p.product_id) AS total FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id)";

        if (!empty(
$data['filter_category_id'])) {
            
$sql .= " LEFT JOIN " DB_PREFIX "product_to_category p2c ON (p.product_id = p2c.product_id)";            
        }
        
        if (!empty(
$data['filter_tag'])) {
            
$sql .= " LEFT JOIN " DB_PREFIX "product_tag pt ON (p.product_id = pt.product_id)";            
        }
                    
        
$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
        
        if (!empty(
$data['filter_name']) || !empty($data['filter_tag'])) {
            
$sql .= " AND (";
                                
            if (!empty(
$data['filter_name'])) {
                
$implode = array();
                
                
$words explode(' 'trim(preg_replace('/\s\s+/'' '$data['filter_name'])));
                
                foreach (
$words as $word) {
                    if (!empty(
$data['filter_description'])) {
                        
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%' OR LCASE(pd.description) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";
                    } else {
                        
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";
                    }                
                }
                
                if (
$implode) {
                    
$sql .= " " implode(" OR "$implode) . "";
                }
            }
            
            if (!empty(
$data['filter_name']) && !empty($data['filter_tag'])) {
                
$sql .= " OR ";
            }
            
            if (!empty(
$data['filter_tag'])) {
                
$implode = array();
                
                
$words explode(' 'trim(preg_replace('/\s\s+/'' '$data['filter_tag'])));
                
                foreach (
$words as $word) {
                    
$implode[] = "LCASE(pt.tag) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";
                }
                
                if (
$implode) {
                    
$sql .= " " implode(" OR "$implode) . " AND pt.language_id = '" . (int)$this->config->get('config_language_id') . "'";
                }
            }
        
            
$sql .= ")";
        }
        
        if (!empty(
$data['filter_category_id'])) {
            if (!empty(
$data['filter_sub_category'])) {
                
$implode_data = array();
                
                
$implode_data[] = "p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
                
                
$this->load->model('catalog/category');
                
                
$categories $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);
                    
                foreach (
$categories as $category_id) {
                    
$implode_data[] = "p2c.category_id = '" . (int)$category_id "'";
                }
                            
                
$sql .= " AND (" implode(' OR '$implode_data) . ")";            
            } else {
                
$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
            }
        }        
        
        if (!empty(
$data['filter_manufacturer_id'])) {
            
$sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";
        }
        
        
$query $this->db->query($sql);
        
        return 
$query->row['total'];
    }
            
    public function 
getTotalProductSpecials() {
        if (
$this->customer->isLogged()) {
            
$customer_group_id $this->customer->getCustomerGroupId();
        } else {
            
$customer_group_id $this->config->get('config_customer_group_id');
        }        
        
        
$query $this->db->query("SELECT COUNT(DISTINCT ps.product_id) AS total FROM " DB_PREFIX "product_special ps LEFT JOIN " DB_PREFIX "product p ON (ps.product_id = p.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ps.customer_group_id = '" . (int)$customer_group_id "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW()))");
        
        if (isset(
$query->row['total'])) {
            return 
$query->row['total'];
        } else {
            return 
0;    
        }
    }    
    
    public function 
getProductsToSlide($data = array()) {
        if (
$this->customer->isLogged()) {
            
$customer_group_id $this->customer->getCustomerGroupId();
        } else {
            
$customer_group_id $this->config->get('config_customer_group_id');
        }    
        
        
$cache md5(http_build_query($data));
        
        
            
$sql "SELECT p.product_id,pd.description, (SELECT AVG(rating) AS total FROM " DB_PREFIX "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " DB_PREFIX "product p LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " DB_PREFIX "product_to_store p2s ON (p.product_id = p2s.product_id)"
            
            if (!empty(
$data['filter_tag'])) {
                
$sql .= " LEFT JOIN " DB_PREFIX "product_tag pt ON (p.product_id = pt.product_id)";            
            }
                        
            if (!empty(
$data['filter_category_id'])) {
                
$sql .= " LEFT JOIN " DB_PREFIX "product_to_category p2c ON (p.product_id = p2c.product_id)";            
            }
            
            
$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"
            
            if (!empty(
$data['filter_name']) || !empty($data['filter_tag'])) {
                
$sql .= " AND (";
                                            
                if (!empty(
$data['filter_name'])) {
                    
$implode = array();
                    
                    
$words explode(' '$data['filter_name']);
                    
                    foreach (
$words as $word) {
                        if (!empty(
$data['filter_description'])) {
                            
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%' OR LCASE(pd.description) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";
                        } else {
                            
$implode[] = "LCASE(pd.name) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%'";
                        }                
                    }
                    
                    if (
$implode) {
                        
$sql .= " " implode(" OR "$implode) . "";
                    }
                }
                
                if (!empty(
$data['filter_name']) && !empty($data['filter_tag'])) {
                    
$sql .= " OR ";
                }
                
                if (!empty(
$data['filter_tag'])) {
                    
$implode = array();
                    
                    
$words explode(' '$data['filter_tag']);
                    
                    foreach (
$words as $word) {
                        
$implode[] = "LCASE(pt.tag) LIKE '%" $this->db->escape(utf8_strtolower($word)) . "%' AND pt.language_id = '" . (int)$this->config->get('config_language_id') . "'";
                    }
                    
                    if (
$implode) {
                        
$sql .= " " implode(" OR "$implode) . "";
                    }
                }
            
                
$sql .= ")";
            }
            
            if (!empty(
$data['filter_category_id'])) {
                if (!empty(
$data['filter_sub_category'])) {
                    
$implode_data = array();
                    
                    
$implode_data[] = "p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
                    
                    
$this->load->model('catalog/category');
                    
                    
$categories $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);
                                        
                    foreach (
$categories as $category_id) {
                        
$implode_data[] = "p2c.category_id = '" . (int)$category_id "'";
                    }
                                
                    
$sql .= " AND (" implode(' OR '$implode_data) . ")";            
                } else {
                    
$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
                }
            }        
            
$sql .= " GROUP BY p.product_id";
            
            
                
$sql .= " ORDER  BY RAND()";    
                
$sql .= " LIMIT " . (int)$data['start'] . ",4";
    
            
            
$slayt_data = array();
                    
            
$query $this->db->query($sql);
        
            foreach (
$query->rows as $sonuclar) {
                
$slayt_data[$sonuclar['product_id']] = $this->getProduct($sonuclar['product_id']);
            }
        
        return 
$slayt_data;
    } 
}
?>
Alıntı Yaparak Cevapla
Paylaş!
orhansav
Üye
***
Üye user avatar
Çevrimdışı

Mesajlar: 101
Konular: 47
Katılma Tarihi: Apr 2012
Rep Puanı: 0
Teşekkürler: 3
4 Mesajına, 4 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-30-2013 01:35 AM
olmuyor malesef
Alıntı Yaparak Cevapla
Paylaş!
ITECHINNv
Sadece PHP
****
Üye user avatar
Çevrimdışı

Mesajlar: 557
Konular: 17
Katılma Tarihi: May 2012
Rep Puanı: 15
Teşekkürler: 275
189 Mesajına, 333 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-30-2013 02:53 AM
(01-30-2013 01:35 AM)orhansa Yazılan:  olmuyor malesef

Ne gibi bir hata almaktasınız ?
Alıntı Yaparak Cevapla
Paylaş!
orhansav
Üye
***
Üye user avatar
Çevrimdışı

Mesajlar: 101
Konular: 47
Katılma Tarihi: Apr 2012
Rep Puanı: 0
Teşekkürler: 3
4 Mesajına, 4 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-30-2013 03:20 AM
Site açılmıyor, hata mesajını üst tarafta belirtmiştim.
aşağıdaki gibi bir mesaj çıkıyor, siteyi açtığım zaman.

Parse error: syntax error, unexpected T_STRING in /home/xxxxxx/public_html/catalog/model/catalog/product.php on line 1
Alıntı Yaparak Cevapla
Paylaş!
ITECHINNv
Sadece PHP
****
Üye user avatar
Çevrimdışı

Mesajlar: 557
Konular: 17
Katılma Tarihi: May 2012
Rep Puanı: 15
Teşekkürler: 275
189 Mesajına, 333 Teşekkür edildi.



Kişisel Bilgileri: v
Konu Tarihi: 01-30-2013 10:20 AM
Merhabalar;

1.5.3.1 kullandığınıza emin misiniz? Size gönderdiğim bu kodları ben 1.5.3.1'de denedim, sorunsuz çalıştı.

Sürüm farklılığına kurban gidiyor olabilirsiniz şuan Smile
Alıntı Yaparak Cevapla
Paylaş!

« Önceki | Sonraki »
Cevapla  Gönder 

1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? Konusunun Linki Direk Link
1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? Konusunun HTML Kodu HTML Link
1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? Konusu BBCode Linki BBCode Link
1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? Konusunu Paylaş Sosyal Paylaş

Benzeyen Konular
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Müşteri Ürün Yorumları Slide Modülü 1 .5. x osdem66 5 4,378 05-15-2021 12:25 AM
Son Mesaj: osman
  1564 kullanıyorum ürünler euro fiyat Tl gösterme atesanit 4 1,599 10-23-2019 02:31 PM
Son Mesaj: serajans
  Son Bakılan Ürünler Modülü Muzir 15 11,647 10-23-2019 01:04 AM
Son Mesaj: emir28
  Ücretsiz detayda resim zoom modülü ? openyeni7 11 7,687 08-31-2019 01:09 PM
Son Mesaj: by_falcon
  Opencart 1.5. x Ödeme Bildirim Modülü osdem66 6 4,834 04-14-2019 03:17 PM
Son Mesaj: Blogizma
  Kategori ürünleri tab modülü ürün görüntüleri osman 1 1,365 03-29-2019 03:37 PM
Son Mesaj: osman
  [Mod] Facebook yorumları modülü osdem66 3 5,003 11-29-2018 12:16 AM
Son Mesaj: ferdem
  RSS Feed Modülü 1.5.x afroma 8 8,326 10-22-2018 08:56 AM
Son Mesaj: emir28
  Temaya özel font nasıl eklenir? Hovsanli 3 4,544 10-08-2018 03:37 PM
Son Mesaj: emir28
  [Mod] Ürün Gösterim Tab modülü sabitertan 144 95,566 12-20-2017 11:38 PM
Son Mesaj: bucayer6

1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? indir, 1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? Videosu, 1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? online izle, 1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? Bedava indir, 1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? Yükle, 1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? Hakkında, 1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? nedir, 1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? Free indir, 1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? oyunu, 1.5.3.1'de Kampanyalı ürünler modülü rastgele nasıl değişir ? download


Forum Atla: