PowerPartners.ru

Форум партнерской программы
Текущее время: 28 мар 2024, 11:55

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 08 фев 2021, 00:48 
Не в сети

Зарегистрирован: 02 июн 2020, 00:39
Сообщения: 106
Добрый день.
После изменения адресов на ЧПУ перестал работать поиск на внутренних страницах. На главной странице работает, выдаёт результаты. Но если зайти на любую другую страницу, то никаких результатов не выдаёт. На ЧПУ поменял уже давно, всё сделал правильно, всё работает нормально (уже месяцев восемь), кроме поиска. Сейчас захотелось, всё же, решить эту проблему. Куда лезть, где искать?
По идее, думаю, в search.js нужно тут изменения внести:
result_items += '<li><a href="product.php?product=' + $product[0].code + '">' + $product[0].category + ' ' + $product[0].trademark + ' ' + $product[0].model + '<small class="search-prod-price">' + $product[0].fprice + ' руб.</small></a></li>';
Но как ни пытался, результатов ноль. Что можно придумать?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 08 фев 2021, 01:51 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 2478
Да, все верно, нужно ковырять search.js, и строчку вы правильно нашли:
Код:
result_items += '<li><a href="product.php?product=' + $product[0].code + '">' + $product[0].category + ' ' + $product[0].trademark + ' ' + $product[0].model + '<small class="search-prod-price">' + $product[0].fprice + ' руб.</small></a></li>';
Здесь как раз формируется строка списка инкрементального поиска. И формируется она по правилу
Код:
<a href="product.php?product=' + $product[0].code + '">
Ваша же задача - изменить формирование ссылки таким образом, чтобы оно соответствовало правилам формирования ссылки вашего ЧПУ.

Например, у вас ЧПУ-ссылка на товар формируется так: /goods-<code>.html, тогда строку надо поменять на
Код:
result_items += '<li><a href="/goods-' + $product[0].code + '.html">' + $product[0].category + ' ' + $product[0].trademark + ' ' + $product[0].model + '<small class="search-prod-price">' + $product[0].fprice + ' руб.</small></a></li>';


Если испытываете затруднения - напишите правила формирования URL-товара в вашем варианте ЧПУ, а мы подскажем как изменить search.js


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 08 фев 2021, 03:09 
Не в сети

Зарегистрирован: 02 июн 2020, 00:39
Сообщения: 106
admin писал(а):
Если испытываете затруднения - напишите правила формирования URL-товара в вашем варианте ЧПУ, а мы подскажем как изменить search.js


У меня в файле cat.tmpl ссылка формируется так: <a href="/elektrooborudovanie/<TMPL_VAR NAME='code'>">
Попробовал изменить на:
result_items += '<li><a href="/elektrooborudovanie-' + $product[0].code + '.html">' + $product[0].category + ' ' + $product[0].trademark + ' ' + $product[0].model + '<small class="search-prod-price">' + $product[0].fprice + ' руб.</small></a></li>';
и на:
result_items += '<li><a href="/elektrooborudovanie-' + $product[0].code + '">' + $product[0].category + ' ' + $product[0].trademark + ' ' + $product[0].model + '<small class="search-prod-price">' + $product[0].fprice + ' руб.</small></a></li>';

Всё равно не работает.
Может что-то не так в .htaccess? Там у меня полностью такая запись:
AddDefaultCharset UTF-8
php_value default_charset UTF-8

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteRule ^informatsiya/(.*)$ page.php?page=$1 [L]
RewriteRule ^katalog/(.*)$ cat.php?cat=$1 [L]
RewriteRule ^elektrooborudovanie/(.*)$ product.php?product=$1 [L]

RewriteCond %{THE_REQUEST} //
# Проверяем, повторяется ли слэш (//) более двух раз.
RewriteRule .* /$0 [R=301,L]
# Исключаем все лишние слэши.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 08 фев 2021, 12:03 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 2478
У вас все сделано абсолютно правильно. Давайте тогда уточним вопрос, а что ИМЕННО не работает? Ссылка, которая получается в выпадающем меню совпадает со ссылкой на страницу товара?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 08 фев 2021, 12:40 
Не в сети

Зарегистрирован: 02 июн 2020, 00:39
Сообщения: 106
admin писал(а):
У вас все сделано абсолютно правильно. Давайте тогда уточним вопрос, а что ИМЕННО не работает? Ссылка, которая получается в выпадающем меню совпадает со ссылкой на страницу товара?

Там дело в том, что выпадающее меню выпадает только лишь на главной странице. На любой другой оно попросту вообще не выпадает.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 08 фев 2021, 13:40 
Не в сети
Администратор

Зарегистрирован: 12 дек 2008, 01:50
Сообщения: 2478
Ну, тогда проблема явно не в формировании ссылки. Тут скорее дело в js. Он либо вообще не подгружается (возможно из-за относительного пути), либо ajax запрос не проходит (опять же из за относительного пути). Сделайте
Код:
            $.ajax({
                type: 'POST',
                url: '/ajax-get-products.php',
Добавив / к url-у ajax-get-products.php

Запустите отладчик в хроме/файерфоксе, гляньте какие там ошибки в консоле отображаются.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 08 фев 2021, 14:25 
Не в сети

Зарегистрирован: 02 июн 2020, 00:39
Сообщения: 106
Вот тут я немножко торможу.
Итак, создал файл 1.php

В нём этот код:
Код:
$.ajax({
                type: 'POST',
                url: '/ajax-get-products.php',
});


При обработке файла 1.php от мне его же и выдаёт:
$.ajax({ type: 'POST', url: '/ajax-get-products.php', });

Попробовал запустить сам файл ajax-get-products.php
Выдаёт: {"result":0}

Но в любом случае, даже если ajax-запрос не проходит, возникает вопрос, почему же тогда на главной странице всё нормально работает и выпадающее меню нормально выпадает, и ссылки все правильно выдаёт?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 08 фев 2021, 16:43 
Не в сети

Зарегистрирован: 22 апр 2013, 11:34
Сообщения: 492
Это JS. Должно быть в тэгах <script>. Лучше не в отдельном файле 1.php делать, он же будет без Вашего ЧПУ, а в шаблон каталогов, вставить, например.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 08 фев 2021, 16:46 
Не в сети

Зарегистрирован: 22 апр 2013, 11:34
Сообщения: 492
petyann писал(а):
Но в любом случае, даже если ajax-запрос не проходит, возникает вопрос, почему же тогда на главной странице всё нормально работает и выпадающее меню нормально выпадает, и ссылки все правильно выдаёт?

Дык на главной нет ЧПУ, потому и работает. А на тех страницах, где есть, из-за неправильного понимания относительного/абсолютного пути - нет.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 08 фев 2021, 17:30 
Не в сети

Зарегистрирован: 02 июн 2020, 00:39
Сообщения: 106
newz писал(а):
Это JS. Должно быть в тэгах <script>. Лучше не в отдельном файле 1.php делать, он же будет без Вашего ЧПУ, а в шаблон каталогов, вставить, например.


Вставил этот код в шаблон cat.tmpl и открыл страницу каталога: /katalog/shtyl-sw
Вот, что выдаёт консоль. И если без вставки этого кода, то тоже самое, только отсутствует строка shtyl-sw:29 Uncaught ReferenceError: $ is not defined at shtyl-sw:29


Вложения:
2.jpg
2.jpg [ 32.18 КБ | Просмотров: 4419 ]
1.jpg
1.jpg [ 52.7 КБ | Просмотров: 4420 ]
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB