Защо не работи търсенето в OpenCart?

HouseSoul

Member
Здравейте,
Сърч полето, което е от дясната страна на главното меню не работи като напиша конкретна дума. Сайта е mlgroup.bg
Някакви съвеи как да го подкарам?
 
От: Защо не работи търсенето в OpenCart?

Обърни внимание, че подробното търсене си бачка нормално.
Да не си инсталирал някой модул който влиза в противоречие с друг?
 
От: Защо не работи търсенето в OpenCart?

Прецакан ти е джаваскрипта който хваща думата в импута и я добавя в линка

Не точно прецакан, просто някои теми не са оправени от по-старите версии където този инпут имаше име search, сега е filter_name.
В хедъра намери този код:
<input type="text" name="search" placeholder="Търсене" value="" />
и странно защо търсенето работи с това име
http://mlgroup.bg/index.php?route=product/search&search=nokia
а джаваскрипта ти е с новото filter_name:
в javascript-а в common.js
/* Search */
$('.button-search').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'filter_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

location = url;
});
Оправи си js файла и виж как е.
Иначе това е проблем на темата и се вижда как е ъпдейтната от по-стара версия за по-нова.
 
От: Защо не работи търсенето в OpenCart?

Не точно прецакан, просто някои теми не са оправени от по-старите версии където този инпут имаше име search, сега е filter_name.
...
и странно защо търсенето работи с това име
Точно обратното е. В новите версии името е "search", а в старите "filter_name". Затова и търсенето си работи с get параметър "search". Иначе за другото си абсолютно права. :wink:
 
От: Защо не работи търсенето в OpenCart?

Възможно е да е от друг модул. Инсталирал съм допълнителен sidebar search модул, който е сложен на категориите и продуктите. Деинсталирах го, но нямаше ефект.
 
От: Защо не работи търсенето в OpenCart?

Не точно прецакан, просто някои теми не са оправени от по-старите версии където този инпут имаше име search, сега е filter_name.
В хедъра намери този код:
<input type="text" name="search" placeholder="Търсене" value="" />
и странно защо търсенето работи с това име
http://mlgroup.bg/index.php?route=product/search&search=nokia
а джаваскрипта ти е с новото filter_name:
в javascript-а в common.js
/* Search */
$('.button-search').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'filter_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

location = url;
});
Оправи си js файла и виж как е.
Иначе това е проблем на темата и се вижда как е ъпдейтната от по-стара версия за по-нова.
Понеже не хващам много js. Трябва да заменя filter_name със search така ли?
 
От: Защо не работи търсенето в OpenCart?

Голямо мазало!
Този файл http://mlgroup.bg/catalog/view/javascript/common.js започва така:
$(document).ready(function() {
/* Search */
$('.button-search').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'filter_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

location = url;
});

$('#header input[name=\'filter_name\']').bind('keydown', function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'filter_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

location = url;
}
});

/* Sidebar Search */
$('.button-sidebarsearch').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'sidebarsearch_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

var filter_category_id = $('select[name=\'filter_category_id\']').attr('value');

if (filter_category_id > 0) {
url += '&filter_category_id=' + encodeURIComponent(filter_category_id);
}

var filter_sub_category = $('input[name=\'filter_sub_category\']:checked').attr('value');

if (filter_sub_category) {
url += '&filter_sub_category=true';
}

var filter_description = $('input[name=\'filter_description\']:checked').attr('value');

if (filter_description) {
url += '&filter_description=true';
}

location = url;
});

$('input[name=\'sidebarsearch_name\']').bind('keydown', function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'sidebarsearch_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

var filter_category_id = $('select[name=\'filter_category_id\']').attr('value');

if (filter_category_id > 0) {
url += '&filter_category_id=' + encodeURIComponent(filter_category_id);
}

var filter_sub_category = $('input[name=\'filter_sub_category\']:checked').attr('value');

if (filter_sub_category) {
url += '&filter_sub_category=true';
}

var filter_description = $('input[name=\'filter_description\']:checked').attr('value');

if (filter_description) {
url += '&filter_description=true';
}

location = url;
}
});


И е добавен кода за сайдбар търсенето.
А трябва да бъде така без сайдбара:



$(document).ready(function() {
/* Search */
$('.button-search').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var search = $('input[name=\'search\']').attr('value');

if (search) {
url += '&search=' + encodeURIComponent(search);
}

location = url;
});

$('#header input[name=\'search\']').bind('keydown', function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';

var search = $('input[name=\'search\']').attr('value');

if (search) {
url += '&search=' + encodeURIComponent(search);
}

location = url;
}
});

Проблема идва от кода за сйдбара, който вероятно е писан за по-стара версия. И не би трчбвало да е в този файл за да не стават именно такива работи.
Първо си оправи търсенето по дефо, а после си оправи и другия модул ако може да се оправи за новата версия.
То може да се оправи ама не знам дали ти ще можеш. Зависи как е направено.
 
От: Защо не работи търсенето в OpenCart?

Голямо мазало!
Този файл http://mlgroup.bg/catalog/view/javascript/common.js започва така:
$(document).ready(function() {
/* Search */
$('.button-search').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'filter_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

location = url;
});

$('#header input[name=\'filter_name\']').bind('keydown', function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'filter_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

location = url;
}
});

/* Sidebar Search */
$('.button-sidebarsearch').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'sidebarsearch_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

var filter_category_id = $('select[name=\'filter_category_id\']').attr('value');

if (filter_category_id > 0) {
url += '&filter_category_id=' + encodeURIComponent(filter_category_id);
}

var filter_sub_category = $('input[name=\'filter_sub_category\']:checked').attr('value');

if (filter_sub_category) {
url += '&filter_sub_category=true';
}

var filter_description = $('input[name=\'filter_description\']:checked').attr('value');

if (filter_description) {
url += '&filter_description=true';
}

location = url;
});

$('input[name=\'sidebarsearch_name\']').bind('keydown', function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';

var filter_name = $('input[name=\'sidebarsearch_name\']').attr('value');

if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}

var filter_category_id = $('select[name=\'filter_category_id\']').attr('value');

if (filter_category_id > 0) {
url += '&filter_category_id=' + encodeURIComponent(filter_category_id);
}

var filter_sub_category = $('input[name=\'filter_sub_category\']:checked').attr('value');

if (filter_sub_category) {
url += '&filter_sub_category=true';
}

var filter_description = $('input[name=\'filter_description\']:checked').attr('value');

if (filter_description) {
url += '&filter_description=true';
}

location = url;
}
});


И е добавен кода за сайдбар търсенето.
А трябва да бъде така без сайдбара:



$(document).ready(function() {
/* Search */
$('.button-search').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var search = $('input[name=\'search\']').attr('value');

if (search) {
url += '&search=' + encodeURIComponent(search);
}

location = url;
});

$('#header input[name=\'search\']').bind('keydown', function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';

var search = $('input[name=\'search\']').attr('value');

if (search) {
url += '&search=' + encodeURIComponent(search);
}

location = url;
}
});

Проблема идва от кода за сйдбара, който вероятно е писан за по-стара версия. И не би трчбвало да е в този файл за да не стават именно такива работи.
Първо си оправи търсенето по дефо, а после си оправи и другия модул ако може да се оправи за новата версия.
То може да се оправи ама не знам дали ти ще можеш. Зависи как е направено.
Замених ги, но нищо не се случи. Да изтрия ли кода със Sidebar Search-a от common.js файла?
Колкото до модула, беше последна версия. Ето този е модула: http://www.opencart.com/index.php?route=extension/extension/info&extension_id=17584&filter_search=search%20module&filter_license=1
 
От: Защо не работи търсенето в OpenCart?

Не не го трий. Просто това, което виждам в браузъра е грешния код замени го със оригиналния.

/* Search */
$('.button-search').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var search = $('input[name=\'search\']').attr('value');

if (search) {
url += '&search=' + encodeURIComponent(search);
}

location = url;
});

$('#header input[name=\'search\']').bind('keydown', function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';

var search = $('input[name=\'search\']').attr('value');

if (search) {
url += '&search=' + encodeURIComponent(search);
}

location = url;
}
});

Втората част е за когато натиснеш ентър.
 
От: Защо не работи търсенето в OpenCart?

Върнах по-ранна версия и се получи :) Всичко работи ! :D
Колкото до това, какво върнах, ето кода:
$(document).ready(function() {
/* Search */
$('.button-search').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';

var search = $('input[name=\'search\']').attr('value');

if (search) {
url += '&search=' + encodeURIComponent(search);
}

location = url;
});

$('#header input[name=\'search\']').bind('keydown', function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';

var search = $('input[name=\'search\']').attr('value');

if (search) {
url += '&search=' + encodeURIComponent(search);
}

location = url;
}
});

/* Ajax Cart */
$('#cart > .heading a').live('click', function() {
$('#cart').addClass('active');

$('#cart').load('index.php?route=module/cart #cart > *');

$('#cart').live('mouseleave', function() {
$(this).removeClass('active');
});
});

/* Mega Menu */
$('#menu ul > li > a + div').each(function(index, element) {
// IE6 & IE7 Fixes
if ($.browser.msie && ($.browser.version == 7 || $.browser.version == 6)) {
var category = $(element).find('a');
var columns = $(element).find('ul').length;

$(element).css('width', (columns * 143) + 'px');
$(element).find('ul').css('float', 'left');
}

var menu = $('#menu').offset();
var dropdown = $(this).parent().offset();

i = (dropdown.left + $(this).outerWidth()) - (menu.left + $('#menu').outerWidth());

if (i > 0) {
$(this).css('margin-left', '-' + (i + 5) + 'px');
}
});

// IE6 & IE7 Fixes
if ($.browser.msie) {
if ($.browser.version <= 6) {
$('#column-left + #column-right + #content, #column-left + #content').css('margin-left', '195px');

$('#column-right + #content').css('margin-right', '195px');

$('.box-category ul li a.active + ul').css('display', 'block');
}

if ($.browser.version <= 7) {
$('#menu > ul > li').bind('mouseover', function() {
$(this).addClass('active');
});

$('#menu > ul > li').bind('mouseout', function() {
$(this).removeClass('active');
});
}
}

$('.success img, .warning img, .attention img, .information img').live('click', function() {
$(this).parent().fadeOut('slow', function() {
$(this).remove();
});
});
});

function getURLVar(key) {
var value = [];

var query = String(document.location).split('?');

if (query[1]) {
var part = query[1].split('&');

for (i = 0; i < part.length; i++) {
var data = part.split('=');

if (data[0] && data[1]) {
value[data[0]] = data[1];
}
}

if (value[key]) {
return value[key];
} else {
return '';
}
}
}

function addToCart(product_id, quantity) {
quantity = typeof(quantity) != 'undefined' ? quantity : 1;

$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: 'product_id=' + product_id + '&quantity=' + quantity,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information, .error').remove();

if (json['redirect']) {
location = json['redirect'];
}

if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

$('.success').fadeIn('slow');

$('#cart-total').html(json['total']);

$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
});
}
function addToWishList(product_id) {
$.ajax({
url: 'index.php?route=account/wishlist/add',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information').remove();

if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

$('.success').fadeIn('slow');

$('#wishlist-total').html(json['total']);

$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
});
}

function addToCompare(product_id) {
$.ajax({
url: 'index.php?route=product/compare/add',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information').remove();

if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

$('.success').fadeIn('slow');

$('#compare-total').html(json['total']);

$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
});
}
 

Горе