0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 92 Просмотров
*

slepoy

  • Давно я тут
  • 739
  • 23 / 0
  • Тотальная шизофазия
Здравствуйте. В результатах "Умного поиска" элементы отображаются в странном порядке (предположительно, по алфавиту).
Из коробки нет возможности сделать сортировку "По дате" (новые сначала).

Рекомендуют открыть файл .../components/com_finder/models/search.php и поработать с getResultsData.

Можете что-нибудь подсказать?
Спасибо.

Фрагменты из файла ниже:

Код
// Get the row data.
$items = $this->getResultsData();

Может быть здесь в AS ordering?
Код
protected function getResultsData()
{
// Get the store id.
$store = $this->getStoreId('getResultsData', false);

// Use the cached data if possible.
if ($this->retrieve($store))
{
return $this->retrieve($store);
}

// Get the result ordering and direction.
$ordering = $this->getState('list.ordering', 'l.start_date');
$direction = $this->getState('list.direction', 'DESC');

// Get the base query and add the ordering information.
$base = $this->getListQuery();
$base->select($this->_db->escape($ordering). ' AS ordering');
$base->order($this->_db->escape($ordering). ' ' . $this->_db->escape($direction));

/*
* If there are no optional or required search terms in the query, we
* can get the results in one relatively simple database query.
*/
if (empty($this->includedTerms))
{
// Get the results from the database.
$this->_db->setQuery($base, (int) $this->getState('list.start'), (int) $this->getState('list.limit'));
$return = $this->_db->loadObjectList('link_id');

// Get a new store id because this data is page specific.
$store = $this->getStoreId('getResultsData', true);

// Push the results into cache.
$this->store($store, $return);

// Return the results.
return $this->retrieve($store);
}

Код
// Create a storage key for this set.
$setId = $this->getStoreId('getResultsData:' . serialize(array_values($ids)). ':' . $start . ':' . $limit);

Код
// Create a storage key for this set.
$setId = $this->getStoreId('getResultsData:required:' . serialize(array_values($required)). ':' . $start . ':' . $limit);
Помог? Поставь(те) плюс в репутацию.
*

sivers

  • Завсегдатай
  • 1428
  • 195 / 0
элементы отображаются в странном порядке (предположительно, по алфавиту)
Примечательная там вот эта строка:
Код
$order = $input->getWord('filter_order', $params->get('sort_order', 'relevance'));
Т.е., для получения поля сортировки он читает переданный в запросе параметр filter_order, а если его нет, то пытается взять из настроек (компонента или пункта меню?) параметр sort_order.
На связи в телеге @sivers
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить произвольные поля в умный поиск?

Автор Dolphin4ik_1

Ответов: 0
Просмотров: 90
Последний ответ 09.09.2020, 16:54:35
от Dolphin4ik_1
Умный поиск не ищет контент по фрагменту слова

Автор slepoy

Ответов: 8
Просмотров: 738
Последний ответ 13.07.2020, 19:16:53
от slepoy
Добавить дате +1 месяц

Автор lgmax

Ответов: 2
Просмотров: 204
Последний ответ 16.06.2020, 15:01:31
от lgmax
дата + время создания материала

Автор Hufflepuff

Ответов: 8
Просмотров: 1143
Последний ответ 12.06.2020, 14:20:20
от xpank
FLYandexTurbo - плагин для создания турбостраниц в Яндекс -как добавить модуль?

Автор gonzergonzer

Ответов: 10
Просмотров: 409
Последний ответ 29.05.2020, 20:50:15
от khan-alex