CMS PrestaShop
Модуль: blocklayered
Добрый день, встал вопрос, который не могу никак решить ни сам, ни с помощью гугла.
Видел много похожих вопросов, но ни одной реализации.
Ситуация:
На сайте есть фильтр. При фильтрации он выдает следующий url:
/catalog#/type-kurtka_ukor_bryuki/gost-124280_2014
В url содержится # (решетка). Моя задача убрать ее оттуда. Что бы url был одним из следующих вариантов:
/catalog/type-kurtka_ukor_bryuki/gost-124280_2014
/catalog/filter/type-kurtka_ukor_bryuki/gost-124280_2014
Пробовал делать следующее:
Файл /modules/blocklayered/blocklayered.php
Менял
$type_filter['values'][$key]['link'] = $categorie_link.'#'.ltrim($parameters, '/');
на
$type_filter['values'][$key]['link'] = $categorie_link.'/filter'.ltrim($parameters, '/');
Менял
'current_friendly_url' => '#'.$filter_block['current_friendly_url']/*((int)$n == (int)$nb_products) ? '#/show-all': '#'.$filter_block['current_friendly_url']*/,
на
'current_friendly_url' => '/filter'.$filter_block['current_friendly_url']/*((int)$n == (int)$nb_products) ? '#/show-all': '#'.$filter_block['current_friendly_url']*/,
Файл /themes/custom/js/modules/blocklayered/blocklayered.js
Менял
if (current_friendly_url != '#'){
window.location.href = current_friendly_url;
}
на
if (current_friendly_url != '/filter'){
window.location.href = current_friendly_url;
}
Менял
if (current_friendly_url != '#/show-all')
$('div.clearfix.selector1').show();
на
if (current_friendly_url != '/filter/show-all')
$('div.clearfix.selector1').show();
Файл modules/blocklayered/blocklayered.js
Менял
if (window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '')
{
var params = window.location.href.split('#')[1];
reloadContent('&selected_filters='+params);
}
на
if (window.location.href.split('/filter').length == 2 && window.location.href.split('/filter')[1] != '')
{
var params = window.location.href.split('/filter')[1];
reloadContent('&selected_filters='+params);
}
Что я добился этим.
По идее я ожидал увидеть url следующего вида:
/catalog/filter/type-kyrtka
Но получал редирект на
/filter/type-kyrtka
и 404 ошибку.
Как решить данную ситуацию... не знаю.
По идее нужно где-то как-то переписать управление url. Что бы он не перекидывал куда мне не нужно...
Проверил я вручную url
/catalog/filter/type-kyrtka
Отдает 404 ошибку.
----
Зачем это нужно?
Нужно для СЕО.
Вариант с #! не пройдет, так как такое игнорирует гугл. Уже проверяли.