Anasayfa Otomatik (Rastgele) Ürün Değişimi

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

mirac

OpenCart-TR
Katılım
7 Şub 2010
Mesajlar
1,383
Tepkime puanı
0
Puanları
36
Yaş
43
Konum
Beykoz____
Web sitesi
www.notebook-cantasi.com
Forumda bu soruyu hatırlıyorum ama konu farklı yere açıldığı için buraya açmak istedim unutmadan:angel::angel:

Anasayfanızdaki son eklenen ürünlerin sayfa yenilenmesi ile (F5) otomatik olarak değişiyor..
1.3.4 sistemde denedim sorunsuz çalıştı 1.4.0 ve üst versiyonlara uyarlayamadım.. Belki bir ışık olur amacıyla yayınlayayım dedim..:)

catalog/model/catalog/product.php dosyasını açın Alttaki işlemi uygulayın..

Bu kodu bul
Kod:
public function getLatestProducts($limit) {
   $product_data = $this->cache->get('product.latest.' . $this->language->getId() . '.' . $limit);

   if (!$product_data) { 
      $query = $this->db->query("SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.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 . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->language->getId() . "' AND ss.language_id = '" . (int)$this->language->getId() . "' ORDER BY p.date_added DESC LIMIT " . (int)$limit);

      $product_data = $query->rows;

      $this->cache->set('product.latest.' . $this->language->getId() . '.' . $limit, $product_data);
   }

   return $product_data;
}

Bu kodla değiştir..
Kod:
public function getLatestProducts($limit) {
   $query = $this->db->query("SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.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 . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->language->getId() . "' AND ss.language_id = '" . (int)$this->language->getId() . "' ORDER BY rand() LIMIT " . (int)$limit);

   return $query->rows;
}

Lütfen yedek almayı unutmayınız..

Yeni sürümler için
http://forum.opencart-tr.com/thread-1993.html
 

red-baron

OpenCart-TR
Katılım
14 Mar 2010
Mesajlar
9
Tepkime puanı
0
Puanları
0
RE: 1.3.4 Anasayfa otomatik ürün değişimi..

1.4.3 versiyonu için bu kod calısmıyor calısan kod verirseniz memnun olurum.
 

aLiCaNSARMAN

OpenCart-TR
Katılım
8 Mar 2010
Mesajlar
12
Tepkime puanı
0
Puanları
0
RE: 1.3.4 Anasayfa otomatik ürün değişimi..

Çok teşekkürler 1.3.4 sorunsuz çalışıyor...... Şiddetle kullanıcılara öneriyorum... :)
 

admira

OpenCart-TR
Katılım
20 Ocak 2010
Mesajlar
248
Tepkime puanı
0
Puanları
16
Web sitesi
www.TrendCorap.com
RE: 1.3.4 Anasayfa otomatik ürün değişimi..

Mirac bu konuyu yakından takip edenlerdenim. 1.4.0 için yapablirsen çok sevineceğim. Bekliyorum...

İşin garip tarafı mail problemleri yüzünden 1-3-4 den 1.4.0 terfi ettim. Şimdi bu modül için geriyemi döneyim..;) Site için önemli bir editleme....
 

mirac

OpenCart-TR
Katılım
7 Şub 2010
Mesajlar
1,383
Tepkime puanı
0
Puanları
36
Yaş
43
Konum
Beykoz____
Web sitesi
www.notebook-cantasi.com
RE: 1.3.4 Anasayfa otomatik ürün değişimi..

Admira farkındayım sen çok istiyordun bu kodu görünce aklıma geldi.. Uyarlamaya çalışıyorum.. Başarırsam yayınlıycam:)


catalog/model/catalog/product.php dosyasını açın ve alttaki kodları bulup değiştirin.. Sistem 1.3.4 teki kadar bağımsız çalışmıyor ama ürünleriniz son eklediğiniz şekle göre görünmekten kurtuluyor.. Ordaki sabit komutu kaldırıyorsunuz yani..

Bul..
Kod:
ORDER BY p.date_added

Değiştir..
Kod:
ORDER BY rand()
 

admira

OpenCart-TR
Katılım
20 Ocak 2010
Mesajlar
248
Tepkime puanı
0
Puanları
16
Web sitesi
www.TrendCorap.com
RE: 1.3.4 Anasayfa otomatik ürün değişimi..

Mirac verdiğin kod değişikliğini uyguladım. ilk F5 yapışımda değişti ama sonraki F5 ler nafile :D Ama bu kodla çok uğraştığın gün gibi aşikar, her zamanki gibi çok teşekkür ederim. Umarım en kısa zamanda bu değişikliği tam manası ile çözebilirsin... ;)
 

mirac

OpenCart-TR
Katılım
7 Şub 2010
Mesajlar
1,383
Tepkime puanı
0
Puanları
36
Yaş
43
Konum
Beykoz____
Web sitesi
www.notebook-cantasi.com
RE: 1.3.4 Anasayfa otomatik ürün değişimi..

Localde çalışıyorsan system\cache klasörünün içeriğini sil yine değişir.. ama dediğim gibi tam anlamıyla çözemedim:)
 

admira

OpenCart-TR
Katılım
20 Ocak 2010
Mesajlar
248
Tepkime puanı
0
Puanları
16
Web sitesi
www.TrendCorap.com
RE: 1.3.4 Anasayfa otomatik ürün değişimi..

Localde değilim. Eka7a da bu işe bi el atsa yada bu işten anlayan diğer üye arkadaşlarında inceleminde fayda var. Mutlaka çözbilecek arkadaşlar vardır...
 

admin

Administrator
Yönetici
Katılım
13 Ağu 2009
Mesajlar
3,200
Tepkime puanı
1
Puanları
38
Yaş
39
Konum
Bursa
Web sitesi
www.opencart-tr.com
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

OC 1.4.0 versiyonunda anasayfa da otomatik ürün değişimi yapmak için

catalog\model\catalog\product.php da bulun
Kod:
public function getLatestProducts($limit) {
		$product_data = $this->cache->get('product.latest.' . $this->config->get('config_language_id') . '.' . $limit);

		if (!$product_data) { 
			$query = $this->db->query("SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.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 . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY p.date_added DESC LIMIT " . (int)$limit);
		 	 
			$product_data = $query->rows;

			$this->cache->set('product.latest.' . $this->config->get('config_language_id') . '.' . $limit, $product_data);
		}
		
		return $product_data;
	}

Değiştirin
Kod:
public function getRandomProduct($limit) {

			$query = $this->db->query("SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.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 . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY RAND() LIMIT " . (int)$limit);
		 	 
		$product_data = $query->rows;
		
		return $product_data;
	}

catalog\controller\common\home.php dosyasında bulun
Kod:
foreach ($this->model_catalog_product->getLatestProducts(8) as $result) {			
			if ($result['image']) {
				$image = $result['image'];
			} else {
				$image = 'no_image.jpg';
			}

Değiştirin
Kod:
foreach ($this->model_catalog_product->getRandomProduct(8) as $result) {			
			if ($result['image']) {
				$image = $result['image'];
			} else {
				$image = 'no_image.jpg';
			}

OC 1.4.3 için

catalog\model\catalog\product.php da bulun
Kod:
public function getLatestProducts($limit) {
		$product_data = $this->cache->get('product.latest.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $limit);

		if (!$product_data) { 
			$query = $this->db->query("SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.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) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY p.date_added DESC LIMIT " . (int)$limit);
		 	 
			$product_data = $query->rows;

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

Değiştir
Kod:
public function getRandomProduct($limit) {

			$query = $this->db->query("SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.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 . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY RAND() LIMIT " . (int)$limit);
		 	 
		$product_data = $query->rows;
		
		return $product_data;
	}

catalog\controller\common\home.php dosyasında bulun
Kod:
foreach ($this->model_catalog_product->getLatestProducts(8) as $result) {			
			if ($result['image']) {
				$image = $result['image'];
			} else {
				$image = 'no_image.jpg';
			}

Değiştirin
Kod:
foreach ($this->model_catalog_product->getRandomProduct(8) as $result) {			
			if ($result['image']) {
				$image = $result['image'];
			} else {
				$image = 'no_image.jpg';
			}
 

admira

OpenCart-TR
Katılım
20 Ocak 2010
Mesajlar
248
Tepkime puanı
0
Puanları
16
Web sitesi
www.TrendCorap.com
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

Merhaba Eka7a, 1.4.0 da,
catalog\model\catalog\product.php dosyasında belittiğin yeri bir türlü bulamadım. Benzeri var ama aynı değil. Yinede denedim site tamamen gitti yedekten koydum yerine. Bir yanlışlık olmasın. Bi incelersen sevinirim...
 

mirac

OpenCart-TR
Katılım
7 Şub 2010
Mesajlar
1,383
Tepkime puanı
0
Puanları
36
Yaş
43
Konum
Beykoz____
Web sitesi
www.notebook-cantasi.com
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

1.4.0 da test ettim sorunsuz çalışıyor.. Ellerine sağlık Eka7a..

1.4.0 için satır yerleri;
catalog\model\catalog\product.php deki kodun satırı 217 ile 229 satırlar
catalog\controller\common\home.php deki kodun satırı 21 ile 26 satırlar..

Sisteminizde değişim yaptıysanız satır yerleri değişebilir.. Kodun içindeki bir bölümü CTRL+F ile arama yapın kontrol edip değiştirin..
 

admira

OpenCart-TR
Katılım
20 Ocak 2010
Mesajlar
248
Tepkime puanı
0
Puanları
16
Web sitesi
www.TrendCorap.com
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

Eka7a ve Mirac kardeşime bir kez daha sonsuz teşekkürlerimi sunuyorum. Allah razı olsun...
 

red-baron

OpenCart-TR
Katılım
14 Mar 2010
Mesajlar
9
Tepkime puanı
0
Puanları
0
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

1.4.3 için varmı ?
 

comondx

OpenCart-TR
Katılım
20 Mar 2010
Mesajlar
19
Tepkime puanı
0
Puanları
0
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

1.4.4 için lazım ama kardeş. o daha yok mu?
 

mirac

OpenCart-TR
Katılım
7 Şub 2010
Mesajlar
1,383
Tepkime puanı
0
Puanları
36
Yaş
43
Konum
Beykoz____
Web sitesi
www.notebook-cantasi.com
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

OC 1.4.3 için yazan 1.4.4.'ede uyması lazım.. Değişiklik yapacağın dosyaların yedeğini alıp denemen gerek..
 

comondx

OpenCart-TR
Katılım
20 Mar 2010
Mesajlar
19
Tepkime puanı
0
Puanları
0
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

mirac' Alıntı:
OC 1.4.3 için yazan 1.4.4.'ede uyması lazım.. Değişiklik yapacağın dosyaların yedeğini alıp denemen gerek..

denedim çalışmıyo.nedenide 1.4.4 e modül eklemiştim ana sayfadaki ilan sayısını arttırmıştım.
kodlara baktımda üst kısmı aynen değiştirdim alt kısmı random yaptım ama maalesef olmadı.

yardımlarınızı bekliyorum
 

kadan_adam

OpenCart-TR
Katılım
29 Mar 2010
Mesajlar
20
Tepkime puanı
0
Puanları
0
Yaş
44
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

Teşekkürler
catalog\model\catalog\product.php
catalog\controller\common\home.php
Dediğiiz olayları yaptım ve sorunsuz her F5 de değişiyor elinize sağlık
Versiyon 1.4.0
 

mirac

OpenCart-TR
Katılım
7 Şub 2010
Mesajlar
1,383
Tepkime puanı
0
Puanları
36
Yaş
43
Konum
Beykoz____
Web sitesi
www.notebook-cantasi.com
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

1,4,5 te test ettiğim farklı bi yöntem.. Sorunsuz çalıştı..

catalog/model/catalog/product.php dosyasını aç..

Bul..
Kod:
ORDER BY p.date_added DESC LIMIT " . (int)$limit);

Değiştir..
Kod:
ORDER BY rand() DESC LIMIT " . (int)$limit);

Bul..
Kod:
$product_data = $this->cache->get('product.latest.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $limit);

Değiştir..
Kod:
$product_data = '';
 

öz_ak

OpenCart-TR
Katılım
21 Ocak 2010
Mesajlar
211
Tepkime puanı
0
Puanları
16
Yaş
45
Web sitesi
www.bitkiselsağlık.com
RE: Anasayfa Otomatik(Rasgele) Ürün Değişimi

sağolasın kardeşim güzel bir paylaşım en kısa zamanda denicem
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst