Google Search - Opencart Alternatif Google Özel Site İçi Arama Motoru

Gökhan TAYLAN

OpenCart-TR
Katılım
14 Tem 2010
Mesajlar
826
Tepkime puanı
0
Puanları
16
Konum
İzmir
Test : 1.5.1.3.1 Başarılı

Adresten Sitenize Özel ve Sizin Belirlediğiniz Kriterlere Uygun Arama Google Özel Arama Motoru Kodunuzu Oluşturun :

http://www.google.com.tr/cse/manage/create

catalog/view/theme/SizinTemanız/template/product/search.tpl içindeki kodlarla aşagıdaki kodları değiştirin.


"GOOGLE ARAMA KODLARINIZ BURAYA EKLENECEK" kısmına kodlarınızı ekleyin


Kod:
<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content"><?php echo $content_top; ?>
  <div class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>
  </div>
  <h1><?php echo $heading_title; ?></h1>
  <b><?php echo $text_critea; ?></b>
  <div class="content">
    <p><?php echo $entry_search; ?>
      <?php if ($filter_name) { ?>
      <input type="text" name="filter_name" value="<?php echo $filter_name; ?>" />
      <?php } else { ?>
      <input type="text" name="filter_name" value="<?php echo $filter_name; ?>" onclick="this.value = '';" onkeydown="this.style.color = '000000'" style="color: #999;" />
      <?php } ?>
      <select name="filter_category_id">
        <option value="0"><?php echo $text_category; ?></option>
        <?php foreach ($categories as $category_1) { ?>
        <?php if ($category_1['category_id'] == $filter_category_id) { ?>
        <option value="<?php echo $category_1['category_id']; ?>" selected="selected"><?php echo $category_1['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_1['category_id']; ?>"><?php echo $category_1['name']; ?></option>
        <?php } ?>
        <?php foreach ($category_1['children'] as $category_2) { ?>
        <?php if ($category_2['category_id'] == $filter_category_id) { ?>
        <option value="<?php echo $category_2['category_id']; ?>" selected="selected">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_2['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_2['category_id']; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_2['name']; ?></option>
        <?php } ?>
        <?php foreach ($category_2['children'] as $category_3) { ?>
        <?php if ($category_3['category_id'] == $filter_category_id) { ?>
        <option value="<?php echo $category_3['category_id']; ?>" selected="selected">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_3['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_3['category_id']; ?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $category_3['name']; ?></option>
        <?php } ?>
        <?php } ?>
        <?php } ?>
        <?php } ?>
      </select>
      <?php if ($filter_sub_category) { ?>
      <input type="checkbox" name="filter_sub_category" value="1" id="sub_category" checked="checked" />
      <?php } else { ?>
      <input type="checkbox" name="filter_sub_category" value="1" id="sub_category" />
      <?php } ?>
      <label for="sub_category"><?php echo $text_sub_category; ?></label>
    </p>
    <?php if ($filter_description) { ?>
    <input type="checkbox" name="filter_description" value="1" id="description" checked="checked" />
    <?php } else { ?>
    <input type="checkbox" name="filter_description" value="1" id="description" />
    <?php } ?>
    <label for="description"><?php echo $entry_description; ?></label>
  </div>
  <div class="buttons">
    <div class="right"><a id="button-search" class="button"><span><?php echo $button_search; ?></span></a></div>
  </div>
  <h2><?php echo $text_search; ?></h2>
  <?php if ($products) { ?>
  <div class="product-filter">
    <div class="display"><b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display('grid');"><?php echo $text_grid; ?></a></div>
    <div class="limit"><?php echo $text_limit; ?>
      <select onchange="location = this.value;">
        <?php foreach ($limits as $limits) { ?>
        <?php if ($limits['value'] == $limit) { ?>
        <option value="<?php echo $limits['href']; ?>" selected="selected"><?php echo $limits['text']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $limits['href']; ?>"><?php echo $limits['text']; ?></option>
        <?php } ?>
        <?php } ?>
      </select>
    </div>
    <div class="sort"><?php echo $text_sort; ?>
      <select onchange="location = this.value;">
        <?php foreach ($sorts as $sorts) { ?>
        <?php if ($sorts['value'] == $sort . '-' . $order) { ?>
        <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option>
        <?php } ?>
        <?php } ?>
      </select>
    </div>
  </div>
  <div class="product-compare"><a href="<?php echo $compare; ?>" id="compare_total"><?php echo $text_compare; ?></a></div>
  <div class="product-list">
    <?php foreach ($products as $product) { ?>
    <div>
      <?php if ($product['thumb']) { ?>
      <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
      <?php } ?>
      <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
      <div class="description"><?php echo $product['description']; ?></div>
      <?php if ($product['price']) { ?>
      <div class="price">
        <?php if (!$product['special']) { ?>
        <?php echo $product['price']; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
        <?php } ?>
        <?php if ($product['tax']) { ?>
        <br />
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
        <?php } ?>
      </div>
      <?php } ?>
      <?php if ($product['rating']) { ?>
      <div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>
      <?php } ?>
      <div class="cart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>
      <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
      <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
    </div>
    <?php } ?>
  </div>
  <div class="pagination"><?php echo $pagination; ?></div>
  <?php } else { ?>
  <div class="content"><?php echo $text_empty; ?>
  
	<br /><br />En İyi Sonuç İçin 
	<font size="4"><font size="4" color ="#0000FF">G</font><font size="4" color ="#FF1000">o</font><font size="4" color ="#FFA000">o</font><font size="4" color ="#0FAA0F">g</font><font size="4" color ="#0000FF">l</font><font size="4" color ="#FF0000">e</font> Arama Sistemini</font>
	Kullanın. <br />
	</p>
	
	
	<table class ="gcse">
	<tr>

GOOGLE ARAMA KODLARINIZ BURAYA EKLENECEK 
	
  
  </div>
  <?php }?>
  <?php echo $content_bottom; ?></div>
<script type="text/javascript"><!--
$('#content input[name=\'filter_name\']').keydown(function(e) {
	if (e.keyCode == 13) {
		$('#button-search').trigger('click');
	}
});

$('#button-search').bind('click', function() {
	url = 'index.php?route=product/search';
	
	var filter_name = $('#content input[name=\'filter_name\']').attr('value');
	
	if (filter_name) {
		url += '&filter_name=' + encodeURIComponent(filter_name);
	}

	var filter_category_id = $('#content select[name=\'filter_category_id\']').attr('value');
	
	if (filter_category_id > 0) {
		url += '&filter_category_id=' + encodeURIComponent(filter_category_id);
	}
	
	var filter_sub_category = $('#content input[name=\'filter_sub_category\']:checked').attr('value');
	
	if (filter_sub_category) {
		url += '&filter_sub_category=true';
	}
		
	var filter_description = $('#content input[name=\'filter_description\']:checked').attr('value');
	
	if (filter_description) {
		url += '&filter_description=true';
	}

	location = url;
});

function display(view) {
	if (view == 'list') {
		$('.product-grid').attr('class', 'product-list');
		
		$('.product-list > div').each(function(index, element) {
			html  = '<div class="right">';
			html += '  <div class="cart">' + $(element).find('.cart').html() + '</div>';
			html += '  <div class="wishlist">' + $(element).find('.wishlist').html() + '</div>';
			html += '  <div class="compare">' + $(element).find('.compare').html() + '</div>';
			html += '</div>';			
			
			html += '<div class="left">';
			
			var image = $(element).find('.image').html();
			
			if (image != null) { 
				html += '<div class="image">' + image + '</div>';
			}
			
			var price = $(element).find('.price').html();
			
			if (price != null) {
				html += '<div class="price">' + price  + '</div>';
			}
						
			html += '  <div class="name">' + $(element).find('.name').html() + '</div>';
			html += '  <div class="description">' + $(element).find('.description').html() + '</div>';
			
			var rating = $(element).find('.rating').html();
			
			if (rating != null) {
				html += '<div class="rating">' + rating + '</div>';
			}
				
			html += '</div>';

						
			$(element).html(html);
		});		
		
		$('.display').html('<b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display(\'grid\');"><?php echo $text_grid; ?></a>');
		
		$.cookie('display', 'list'); 
	} else {
		$('.product-list').attr('class', 'product-grid');
		
		$('.product-grid > div').each(function(index, element) {
			html = '';
			
			var image = $(element).find('.image').html();
			
			if (image != null) {
				html += '<div class="image">' + image + '</div>';
			}
			
			html += '<div class="name">' + $(element).find('.name').html() + '</div>';
			html += '<div class="description">' + $(element).find('.description').html() + '</div>';
			
			var price = $(element).find('.price').html();
			
			if (price != null) {
				html += '<div class="price">' + price  + '</div>';
			}	
					
			var rating = $(element).find('.rating').html();
			
			if (rating != null) {
				html += '<div class="rating">' + rating + '</div>';
			}
						
			html += '<div class="cart">' + $(element).find('.cart').html() + '</div>';
			html += '<div class="wishlist">' + $(element).find('.wishlist').html() + '</div>';
			html += '<div class="compare">' + $(element).find('.compare').html() + '</div>';
			
			$(element).html(html);
		});	
					
		$('.display').html('<b><?php echo $text_display; ?></b> <a onclick="display(\'list\');"><?php echo $text_list; ?></a> <b>/</b> <?php echo $text_grid; ?>');
		
		$.cookie('display', 'grid');
	}
}

view = $.cookie('display');

if (view) {
	display(view);
} else {
	display('list');
}
//--></script> 
<?php echo $footer; ?>


Sonuç :
wnvy.png
 

bilgikent

OpenCart-TR
Katılım
6 Ara 2012
Mesajlar
4
Tepkime puanı
0
Puanları
0
Selamlar sayın üstadım,

1.5.5.1'e update ederek OC'yi son haliyle kullanmaya başladık. Bir sürü sıkıntı var.

Sizin önerdiğiniz Opencart Alternatif Google Özel Site İçi Arama Motoru'nu ekledik. Bunun için çok teşekkür ederiz.

Çözemediğimiz sorun şu:

Site içi arama (Search) script’i düzgün çalışmıyor. Öncelikle sadece ürünün adından arıyor, meta, kategori veya diğer alanlarda aramıyor. Ve mutlaka büyük/küçük harfe duyarlı aranmak zorunda.

Örneğin ürünün adı “Vichy ….” İle başlıyor. Arama kutusuna “vichy” yazarsak bulamıyor. Mutlaka “Vichy” yazmak gerekiyor.

Sitemiz:

http://www.eczanemdenal.com/

Tahmin edersiniz ki siteyi gezen müşteri kategorilerde gezinerek boğulmamalı. Vichy yazsa da, VİCHY yazsa da, vichy yazsa da, VICHY yazsa da ilgili ürünleri bulmalı …

Herhangi bir yorumunuz olabilir mi bu sorun hakkında?

İyi çalışmalar dileklerimizle...
 

Gökhan TAYLAN

OpenCart-TR
Katılım
14 Tem 2010
Mesajlar
826
Tepkime puanı
0
Puanları
16
Konum
İzmir
1.5.5.1 search alanlarında bug olması muhtemel vakit bulur bulmaz ilgilenmeye çalışacagım .
Örnek bir konu : http://forum.opencart.com/viewtopic.php?f=20&t=97128

/catalog/model/catalog/product.php

Kod:
if (!empty($data['filter_description'])) {
					$sql .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'";
				}
			}

Altına ekleyin,
Kod:
$search_words = explode(" ", $data['filter_name']);
					foreach ($search_words as $i=>$keyword) {
					  if($i>0) $sql .= "AND ";
					  if (!empty($data['filter_description'])) {
						  $sql .= "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($keyword)) . "%' OR MATCH(pd.description) AGAINST('" . $this->db->escape(utf8_strtolower($keyword)) . "')";
					  } else {
						  $sql .= "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($keyword)) . "%'";
					  }
					}


Not : yedekli çalışın . bir kontrol edin .







bilgikent' Alıntı:
Selamlar sayın üstadım,

1.5.5.1'e update ederek OC'yi son haliyle kullanmaya başladık. Bir sürü sıkıntı var.

Sizin önerdiğiniz Opencart Alternatif Google Özel Site İçi Arama Motoru'nu ekledik. Bunun için çok teşekkür ederiz.

Çözemediğimiz sorun şu:

Site içi arama (Search) script’i düzgün çalışmıyor. Öncelikle sadece ürünün adından arıyor, meta, kategori veya diğer alanlarda aramıyor. Ve mutlaka büyük/küçük harfe duyarlı aranmak zorunda.

Örneğin ürünün adı “Vichy ….” İle başlıyor. Arama kutusuna “vichy” yazarsak bulamıyor. Mutlaka “Vichy” yazmak gerekiyor.

Sitemiz:

http://www.eczanemdenal.com/

Tahmin edersiniz ki siteyi gezen müşteri kategorilerde gezinerek boğulmamalı. Vichy yazsa da, VİCHY yazsa da, vichy yazsa da, VICHY yazsa da ilgili ürünleri bulmalı …

Herhangi bir yorumunuz olabilir mi bu sorun hakkında?

İyi çalışmalar dileklerimizle...
 

bilgikent

OpenCart-TR
Katılım
6 Ara 2012
Mesajlar
4
Tepkime puanı
0
Puanları
0
Selamlar tekrar;

if (!empty($data['filter_description'])) {
$sql .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'";
}
}

Yukarıdaki kodun altına belirttiğiniz 9 satırlık kodu eklediğimizde aşağıdaki hatayı veriyor:

Notice: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LCASE(pd.name) LIKE '%vichy%' OR pd.tag LIKE '%vichy%' OR LCASE(p.model) = 'vich' at line 1
Error No: 1064
SELECT COUNT(DISTINCT p.product_id) AS total FROM levo_product p LEFT JOIN levo_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN levo_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ( pd.name LIKE '%vichy%'LCASE(pd.name) LIKE '%vichy%' OR pd.tag LIKE '%vichy%' OR LCASE(p.model) = 'vichy' OR LCASE(p.sku) = 'vichy' OR LCASE(p.upc) = 'vichy' OR LCASE(p.ean) = 'vichy' OR LCASE(p.jan) = 'vichy' OR LCASE(p.isbn) = 'vichy' OR LCASE(p.mpn) = 'vichy') in /home/eczanemd/public_html/system/database/mysql.php on line 50


İlginiz için çok teşekkürler...
 

Gökhan TAYLAN

OpenCart-TR
Katılım
14 Tem 2010
Mesajlar
826
Tepkime puanı
0
Puanları
16
Konum
İzmir
profil imzamızdaki hemen hızlı destek alabilirsiniz alanından iletişime geçermisiniz. kontrol edelim.
mesaj alanına site bilgilerinizide gönderirseniz.
 
Üst