Гость
01 Нояб 2017 15:34

Мне необходимо сделать своеобразную сортировку статей в разделе: сначала сортировка по своему полю, а в каждой группе (по значению полю) сортировать по алфавиту. Данная сортировка должна работать по-умолчанию при входе в раздел.

Сортировку по своему полю удалось сделать через префильтрованную ссылку: site.ru/razdel?filter_order=field^k2a1596fd84c592286390ccb3d4763b2d^string&filter_order_Dir=ASC Но при этом статьи в каждой группе выстраиваются по id, а не по алфавиту (как в настройках раздела по-умолчанию стоит).

Можно ли как-то применить 2 сортировки в одной ссылке?

Пробовал еще вариант ставить сортировку по умолчанию в разделе по алфавиту, а в шаблоне markup раздела сортировать массив со статьями как мне надо. Работает. Но при включении паджинации (статей очень много) сортировка работает только в рамках лимита паджинации. Т.е. берется первые 20 статей по алфавиту, сортируются по моему полю, затем следующие 20 статей по алфавиту - сортируются по полю. Плучается полный бардак.

Можно ли как-то обойти лимит паджинации?

Или может есть еще какой-то способ сделать двухуровневую сортировку?

Последние изменения: 11 Дек 2017


Sergey
Total posts: 13,748
12 Нояб 2017 06:00

Guest Сортировка статей по двум параметрам

К сожалению подобное не возможно. В коде не предусмотренно 2х позиций в SQL запросе на сортировку. Только по одному параметру.

Guest Можно ли как-то обойти лимит паджинации?

Можно и в настроках шаблоны выствить этот лимит, можно и в урл передать. По моему в тойже статье есть имя параметра. По моему &limit=1000 и все статьи на одной странице.


master81
Total posts: 24
15 Нояб 2017 14:47

C первым способом все понятно. По второму - вопрос был в каком месте можно (или нельзя вообще) вставить свою сортировку массива статей, чтобы сортировались все статьи в разделе, а не кусками с включенной паджинацией. Статей очень много, информации в них еще больше и вывод большого количества на одной странице вызывает ошибки.


Sergey
Total posts: 13,748
07 Дек 2017 15:11

Оно и так сортирует всю выборку прежде чем пагинацию применяет. Иначе не будет пагинации коректной.

А вообще сортировка применяется в файле components/com_cobalt/models/records.php в строках 233-260


master81
Total posts: 24
11 Дек 2017 10:23

Ясно. Просто не хотелось трогать файлы кобальта, чтобы при обновлении все не слетало.

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

Работает на Cobalt