Jump to content

Знак # в урле при выборе фильтра


Recommended Posts

Здравствуйте!

Подскажите, пожалуйста, как правильно убрать # из урла при выборе фильтрации?

 

у меня получилось убрать следующим способом, но это что не то по ходу:

 

в файле /modules/blocklayered/blocklayered.php

строка 2805:

$type_filter['values'][$key]['link'] = Context::getContext()->link->getCategoryLink($parent, null, null).'#'.ltrim($parameters, '/');

заменяем на:

$type_filter['values'][$key]['link'] = Context::getContext()->link->getCategoryLink($parent, null, null).ltrim($parameters, '/');

 

и строка 3093:

'current_friendly_url' => ((int)$n == (int)$nb_products) ? '#/show-all': '#'.$filter_block['current_friendly_url'],

заменяем на:

'current_friendly_url' => ((int)$n == (int)$nb_products) ? '#/show-all': '.'.$filter_block['current_friendly_url'],

 

Но теперь ошибка появляется при выборе какого-нибудь фильтра, что страница не найдена http://www.uniqroom.ru/matrasy/. Причём сначала фильтр срабатывает нормально, но потом страница обновляется и появляется эта ошибка

 

помогите, пожааалуйста! очень нужно решить эту проблему

уже очень давно с ней парюсь

Link to comment
Share on other sites

В чем смысл убирать решетку вообще? Вот только не пишите что для того чтобы результаты фильтров индексировались...на хрена их индексировать то? правильный ответ незачем! Заморачивайтесь лучше другими вещами, времени что ли много..

Link to comment
Share on other sites

В чем смысл убирать решетку вообще? Вот только не пишите что для того чтобы результаты фильтров индексировались...на хрена их индексировать то? правильный ответ незачем! Заморачивайтесь лучше другими вещами, времени что ли много..

именно для индексирования

 

мне виднее нужно или нет)

Link to comment
Share on other sites

Я уже вижу на сколько Вам виднее..

Если бы Вам нужно было для индексирования и Вы бы не поленились прочитать информацию с этих двух страниц:

https://support.google.com/webmasters/answer/174992?hl=ru

и

https://help.yandex.ru/webmaster/robot-workings/ajax-indexing.xml

То, Вы бы поняли что Вам не удалять решетку надо, а на оборот добавить восклицательный знак после нее #!

Link to comment
Share on other sites

Ну и еще полезно в счетчике метрики установить галку "Отслеживание хеша в адресной строке браузера" при его создании...

 

Подробнее тут:

http://clubs.ya.ru/metrika/replies.xml?item_no=4791

Edited by Kerm (see edit history)
Link to comment
Share on other sites

да, мне уже подсказывали, что можно так сделать

 

а как добавить ! ?

 

 

выглядит это конечно не очень красиво)) заменить хотя бы # на слово filter

Link to comment
Share on other sites

Это ajax запрос, страница не обновляется при выводе контента при таком запросе, чтобы ссылка с хэшом индексировалась нужно чтобы обязательно было #!

Link to comment
Share on other sites

я так сделала:

 

в файле /modules/blocklayered/blocklayered.php

строка 2800:

$type_filter['values'][$key]['link'] = Context::getContext()->link->getCategoryLink($parent, null, null).'#'.ltrim($parameters, '/');

заменяем на:

$type_filter['values'][$key]['link'] = Context::getContext()->link->getCategoryLink($parent, null, null).'#!'.ltrim($parameters, '/');

 

и строка 3093:

'current_friendly_url' => ((int)$n == (int)$nb_products) ? '#/show-all': '#'.$filter_block['current_friendly_url'],

заменяем на:

'current_friendly_url' => ((int)$n == (int)$nb_products) ? '#/show-all': '#!'.$filter_block['current_friendly_url'],

 

 

А чтобы при снятии всех фильтров не оставалась решетка, нужно в файле /themes/default-bootstrap/js/modules/blocklayered/blocklayered.js

 

в строчке 607:

if (current_friendly_url == '#')

current_friendly_url = '#/';

 

меняем на:

if (current_friendly_url == '#!')

current_friendly_url = '';

Link to comment
Share on other sites

×
×
  • Create New...