Перейти к публикации

Сортировка в custom по убыванию/возрастанию


Рекомендованные сообщения

Здравствуйте!

Есть необходимость сделать порядок сортировки в custom отличный от глобальных настроек модуля. По умолчанию сортировка на сайте осуществляется по дате по убыванию. В данном custom необходимо сделать её по дате по возрастанию.

Категории 2,3,4,5 являются дочерними по отношению к категории 1 (категория 1 не имеет публикаций).

Есть несколько тегов custom, для которых необходимо применить данную настройку:

{custom category="2,3,4,5"}

{custom category="2,3,4"}

{custom category="2,3"}

{custom category="2"}
Как я пытался решить эту проблему:
  1. Вот этим методом. Не помогло. Пытался в значение категории поставить "1", пытался поставить все через "," или "|". Продублировал решение с указанием каждой категории отдельно. Менял DESC на ASC и снова наоборот и т.д. не помгло. Видимо - материал уже не актуален.
  2. Пытался выставить порядок сортировки по возрастанию в настройках категории. Пытался выставить для родительской категории, для каждой из дочерних. Тоже безрезультатно.
Скажите, пожалуйста, что же делать? Спасибо. Сайт: poef.ru (DLE 10.2) UPD: В ожидании ответа попытался вопрос решить самостоятельно. В общем что-то я получил, правда не уверен, что правильно. Но хотя бы работает. Раз уж вопрос снять и удалить самостоятельно тему я не могу, то прошу прокомментировать мой способ решения и предложить лучше, если мой слишком уж кривой. В custom прописал order="date_asc". Такого order стандартно нет, но почему бы и не создать? В engine/modules/functions.php в 686 строке (DLE 10.2)
$allowed_sort = array ('date' => 'date', 'rating' => 'rating', 'reads' => 'news_read', 'comments' => 'comm_num','title' => 'title', 'rand' => 'RAND()' );
сразу после 'date' => 'date', я прописал 'date_asc' => 'date', Я не знаю, что это на самом деле такое, на как мне показалось, здесь мы приравниваем различные значения, которые можем прописать в order="" к уже прописанным в этом файле стандартные сортировки. Затем после 691 строчки я добавил (по аналогии с 691-ой):
if ($match[1] == "date_asc" ) $news_msort = "ASC";[/code]

Этого я тоже не до конца понимаю, но, судя по результату, могу резулировать, что в этой строчке я указал упорядочивание по возрастанию для тех [b]custom[/b], у которых [b]order[/b] стоит [b]date_asc[/b]. При этом, благодаря предыдущему шагу, как мне кажется (вот этого я не проверял) сортировка будет именно по дате, даже если в глобальных настройках скрипта указать что-то другое.

Всё ли я сделал правильно? Не всплывут ли потом подводные камни?

Изменено пользователем Lashchevsky
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...