Автор Тема: Перестал работать поиск товаров  (Прочитано 1262 раз)

01 Июль 2017, 10:05:28
Ответ #15
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В js/admin/orders.js стоит такой скрипт (для показа удалил лишние строчки):
$("#add_product_product_name").autocomplete(admin_order_tab_link,
{
minChars: 3,
max: 10,
                        ...
extraParams: {
...
action: 'searchProducts',
                                ...
}
}
)
значит скрипт запускает метод ajaxProcessSearchProducts() контроллера AdminOrdersController.php
добавление p() или d() в этот метод ни к чему не приводит (визуально).
Значит либо метод не выполняется, либо p() выводит данные куда-то в невидимую область.
Установил чистую коробочную версию Престы и проверил
1. поиск товара работает
2. добавление p() или d() в ajaxProcessSearchProducts() контроллера AdminOrdersController.php приводит к тому, что поиск перестает работать (без других визуальных изменений как и в рабочей версии)
3. я хотя бы по факту пропадания поиска (после добавления p()) могу понять, что метод запущен и p() "убивает" поиск.
4. в рабочей версии p() никак не помогает - поиска как не было, так и нет.

Вопрос: как можно поставить какую-нибудь другую точку останова (кроме p() и d()) в этот метод чтобы понять запустился он или нет?
Т.е. сработал скрипт или нет.
01 Июль 2017, 14:26:48
Ответ #16
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Проблема решена.
Причина - файл ObjectModel.php был сохранен с кодировкой UTF8.
Вернул обратно в ANSI - заработало.
Никто не знает причину?
01 Июль 2017, 14:36:36
Ответ #17
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
UTF8 это кодировка которую нужно использовать. А у вас, скорее всего, mysql сервер настроен с другой кодировкой, от этого и проблемы.
01 Июль 2017, 14:38:48
Ответ #18
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я все файлы, которые открываю и меняю, сохраняю как UTF8.
Конкретно этот файл корректно работает только в ANSI или UTF8 без BOM.
Причем я в него не вносил никаких изменений, видимо машинально изменил кодировку после просмотра
02 Июль 2017, 00:56:54
Ответ #19
  • Фрилансер
  • *
  • Сообщений: 189
  • Репутация: +1/-1
  • Сообщество PrestaShop
    • Просмотр профиля
    • Электронный учет коммерческой деятельности
UTF8 без BOM.
Такая кодировка должна быть для всех файлов движка. Иначе ждите сюрпризов.
02 Июль 2017, 10:32:29
Ответ #20
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
UTF8 это кодировка которую нужно использовать. А у вас, скорее всего, mysql сервер настроен с другой кодировкой, от этого и проблемы.
Вам уже написали почему так.
Базу данных создали с другой кодировкой. Соединение с базой данных в другой кодировке. Таблицы, текстовые поля в другой кодировке. Вот причины.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
02 Июль 2017, 10:50:23
Ответ #21
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
UTF8 это кодировка которую нужно использовать. А у вас, скорее всего, mysql сервер настроен с другой кодировкой, от этого и проблемы.
Вам уже написали почему так.
Базу данных создали с другой кодировкой. Соединение с базой данных в другой кодировке. Таблицы, текстовые поля в другой кодировке. Вот причины.
Прошу прощения за нескромность, но позвольте с вами ну никак не согласится:
1. Базу я не создавал, её создает инсталятор Престы
2. База в нормальной кодировке: Сопоставление кодировки соединения с MySQL : utf8_general_ci
3. Поиск перестал работать из-за смены кодировки ObjectModel.php и проблема возникла не из-за того, что запрос вернул пустой результат, а запрос (searchProducts) вообще не был запущен (проверял)
02 Июль 2017, 10:56:20
Ответ #22
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
1. Базу я не создавал, её создает инсталятор Престы
Интересно как? Первый раз с таким сталкиваюсь. Prestashop не может создавать бд, прав у него таких нет. 
02 Июль 2017, 11:00:15
Ответ #23
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
1. Базу я не создавал, её создает инсталятор Престы
Интересно как? Первый раз с таким сталкиваюсь. Prestashop не может создавать бд, прав у него таких нет.
Ну не придирайтесь уж к формулировкам :)
02 Июль 2017, 11:15:38
Ответ #24
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Для поиска и исправления все 3 пункта - мягко говоря, пропускаем.
Базу создаете вы, перед установкой prestashop. При создании нужно выбрать utf8_general_ci
MySQL сервер устанавливает хостер, если у вас не выделенный, проверяются:  collation connection, collation database, collation server.
На шареде у вас кодировка будет отличатся от utf8_general_ci
Если бы запрос (searchProducts) вообще не был запущен (не знаю как проверяли), то выкинуло бы исключение. А вы писали, что ошибок не показыват.

Скачайте файл ObjectModel.php из последней стабильной версии prestashop (та что у вас установлена), замените свой.
Отключите все переопределения и стороннии модули. Отключите мгновенный поиск. Проверьте поиск.

Вы лучше проверьте файлы, которые сами меняли
/js/admin/orders.js
...
Вот в них кодировку и проверьте. А файлы prestashop оставьте в оригинальной кодировке.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
02 Июль 2017, 11:32:24
Ответ #25
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
(searchProducts) вообще не был запущен (не знаю как проверяли)
Первой же строкой метода поставил возврат массива, типа "я отработал".
Начал пошагово "откатываться". Как только восстановил оригинальный ObjectModel.php, сразу же получил "доклад" от searchProducts.
Ну а дальше уже техника
02 Июль 2017, 11:49:41
Ответ #26
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Попробывал у ObjectModel.php сменить кодировку, поиск работает. ANSI или UTF без разницы, ищет и все находит.
02 Июль 2017, 11:55:24
Ответ #27
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Попробывал у ObjectModel.php сменить кодировку, поиск работает. ANSI или UTF без разницы, ищет и все находит.
Я, честно говоря, ждал и надеялся что кто-нибудь проверит это.
У меня именно так и происходит: меняешь кодировку - поиск есть/нет
А также помимо поиска при кодировке UTF на сайте при попытке добавить или удалить товар из корзины выскакивает окно: неверный токен. Но товар добавляется и удаляется.
Это то, что я заметил.
02 Июль 2017, 12:28:41
Ответ #28
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
А также помимо поиска при кодировке UTF на сайте при попытке добавить или удалить товар из корзины выскакивает окно: неверный токен.
Только подтверждает,

Вы лучше проверьте файлы, которые сами меняли
/js/admin/orders.js
...
Вот в них кодировку и проверьте. А файлы prestashop оставьте в оригинальной кодировке.

Менять кодировку файлов prestashop нет смысла. Они изначально в UTF8.
В теме prestashop тоже указано
<meta charset="utf-8">
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.