Lashchevsky 2 Опубликовано: 6 мая 2014 Рассказать Опубликовано: 6 мая 2014 (изменено) Здравствуйте! Есть необходимость сделать порядок сортировки в 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", пытался поставить все через "," или "|". Продублировал решение с указанием каждой категории отдельно. Менял DESC на ASC и снова наоборот и т.д. не помгло. Видимо - материал уже не актуален. Пытался выставить порядок сортировки по возрастанию в настройках категории. Пытался выставить для родительской категории, для каждой из дочерних. Тоже безрезультатно. Скажите, пожалуйста, что же делать? Спасибо. Сайт: 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]. При этом, благодаря предыдущему шагу, как мне кажется (вот этого я не проверял) сортировка будет именно по дате, даже если в глобальных настройках скрипта указать что-то другое. Всё ли я сделал правильно? Не всплывут ли потом подводные камни? Изменено 6 мая 2014 пользователем Lashchevsky Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.