Поиск v1.10.5 -next

 
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2781
antondmsamarin закрыл тему а я тут "допосмотрел": кажется что было бы логичным в компоненте сортировку по дате несколько изменить:
1. в model.php строку 46:
Код PHP:
  1. $this->order_by_date = cmsCore::inRequest('order_by_date') ? cmsCore::request('order_by_date', 'int', 0) : 1;
изменить на:
Код PHP:
  1. $this->order_by_date = cmsCore::inRequest('order_by_date') ? cmsCore::request('order_by_date', 'int', 1) : 0;
2. в frontend.php условие:
Код PHP:
  1. if($model->order_by_date){
  2. $inDB->orderBy('pubdate', 'DESC');
  3. } else {
  4. $inDB->orderBy('id', 'ASC');
  5. }
изменить на:
Код PHP:
  1. if($model->order_by_date){
  2. $inDB->orderBy('pubdate', 'DESC');
  3. } else {
  4. $inDB->orderBy('pubdate', 'ASC');
  5. }
3. ну и текст:
Код PHP:
  1. $_LANG['SORT_BY_PUBDATE'] ='сортировать по дате публикации';
изменить на
Код PHP:
  1. $_LANG['SORT_BY_PUBDATE'] ='показать сначала новые';
Мне кажется, что так логичнее быдет выглядеть.
Что думаете?
Украинский для инстант
Посетитель
small user social cms
Сообщений: 43
Если так поменять frontend.php, то поиск не ранжирует по полю price

У меня ещё раньше было изменение, чтобы ранжировать по полю price. Эти изменения были сделаны в предыдущей версии v1.10.4 и до обновления до v1.10.5 они работали как надо.

В файле /components/shop/psearch.php блок

Код PHP:
  1. $sql = "SELECT DISTINCT con.*,
  2. cat.title cat_title,
  3. cat.seolink as cat_seolink
  4. FROM cms_shop_items con, cms_shop_cats cat
  5. WHERE MATCH(con.title, con.shortdesc, con.description) AGAINST ('$query' IN BOOLEAN MODE) AND con.category_id = cat.id AND con.published=1";

заменено на

Код PHP:
  1. $sql = "SELECT DISTINCT con.*,
  2. cat.title cat_title,
  3. cat.seolink as cat_seolink
  4. FROM cms_shop_items con, cms_shop_cats cat
  5. WHERE MATCH(con.title, con.shortdesc, con.description) AGAINST ('$query' IN BOOLEAN MODE) AND con.category_id = cat.id AND con.published=1
  6. ORDER BY con.price ASC";
может изменения frontend.php конфликтуют с этим?
Реклама
cms
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2781
Я всё же не о частном случае, а о дефолтом функционале.
Ещё до 1.10.5 предлагалось сортировать или по дате (по убыванию), если отмечен чекбокс или по id (по возрастанию), если не отмечен. Какую информативность несёт сортировка по id, если применён поиск по разным компонентам? Путаница одна!
В 1.10.5 и того лучше - с багом: сортировка по дате независимо от того отмечен пользователем чекбокс или не отмечен.
Вот я и предлагаю устранить баг и изменить возможность сортировки по дате: от последней или от первой
Редактировалось: 2 раз (Последний: 11 декабря 2014 в 22:05)
Украинский для инстант
Посетитель
small user social cms
Сообщений: 43
Олег Васильевич я:
Вот я и предлагаю устранить баг и изменить возможность сортировки по дате: от последней или от первой или в обратном порядке
Это да, может быть это и правильно. Просто в моем частном случае ранжирование по дате добавления товара для меня лишний и ненужный функционал.
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2781
Олег Васильевич я:
Что думаете?
Никто ничего не думает? cry
Украинский для инстант
Посетитель
small user social cms
Медаль
Сообщений: 848
Олег Васильевич я:
Что думаете?
Согласен,так было бы логичнее. +
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
Код PHP:
  1. $inDB->orderBy('id', 'ASC');
Это и есть:
Код PHP:
  1. $inDB->orderBy('pubdate', 'ASC');
Только по id работает быстрее.
Нормальный хостинг, сервера быстрые - пользуюсь сам.
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2781
lokanaft:
Это и есть:
Если выбран поиск по одному компонету, то - да, а если из всех, то сортровка по id превращается в "куча мала". Или не понимаю чего-то?
Украинский для инстант
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 692

... изменить на: .... cmsCore::request('order_by_date', 'int', 1) ....
Если чекбокс не отмечен, то в POST ничего не передается, следовательно изменив на приеме 0 на 1 вы всегда и при любых условиях получаете на выходе 1. В данном случае (код первого сообщения) это роли не играет, но лучше бы к плохому не привыкать, грабли те еще могут возникнуть.
Skype: pasha--g
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2781
Pasha, спасибо за урок!
Проблема в том, что если оставить как строку в моделе без изменений, атрибут checked становится = checked всегда после нажатия "найти" (даже с предварительно снятой отметкой с флажка)
Редактировалось: 1 раз (Последний: 13 декабря 2014 в 17:13)
Украинский для инстант
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 692
Ну это просто техническая опечатка. Откройте модель и строку
Код PHP:
  1. $this->order_by_date = cmsCore::inRequest('order_by_date') ? cmsCore::request('order_by_date', 'int', 0) : 1;
Измените на
Код PHP:
  1. $this->order_by_date = cmsCore::request('order_by_date', 'int', 0);
Skype: pasha--g
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2781
Pasha:
Измените на stuk
Другое дело! Спасибо!
Украинский для инстант
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 692
Да не за что. В багтрекере зафиксируй, а то так и останется.
Skype: pasha--g
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2781
Pasha:
В багтрекере зафиксируй
написал
Украинский для инстант
Модератор
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форума
Сообщений: 1422
Олег Васильевич я:
написал
сортировать по дате бубликации
facepalm
Нормальный хостинг, сервера быстрые - пользуюсь сам.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.