Создана сортировка тем

:information_source: Краткое описание Добавляет в список тем сортируемую колонку с датой создания
:eyeglasses: Предпросмотр https://discourse.theme-creator.io/theme/Alteras/created-topic-sort
:hammer_and_wrench: Репозиторий GitHub - Alteras1/discourse-created-topic-sort: Discourse theme component adds topic sorting by created date · GitHub
:question: Руководство по установке Как установить тему или компонент темы
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

Этот компонент добавляет в список тем сортируемую колонку с датой создания. Также добавляет необязательную вкладку «Создано» в строку навигации.

В режиме рабочего стола добавляется целая колонка. На мобильных устройствах дата создания отображается только в строке с датой активности, когда выбрана сортировка «Создано» (см. скриншоты ниже).

:information_source: Перед использованием этого компонента рекомендуется оценить потребность вашего сообщества в знании даты создания. В системе уже есть встроенный механизм автоматической пометки недавно созданных тем в течение определенного периода времени (настраивается пользователями в разделе Настройки > Отслеживание > Темы).

Настройки

Включить элемент навигации «Сортировать по дате создания»

Добавляет в меню навигации элемент «Сортировать по дате создания». По умолчанию: true

Скриншоты

Рабочий стол

Мобильное устройство

Отображать колонку с датой создания только при фильтре по дате создания

Предотвращает отображение колонки с датой создания вне фильтра по дате создания. Требует, чтобы параметр «Включить элемент навигации «Сортировать по дате создания»» был установлен в true. По умолчанию: false

Включить элемент навигации на главной странице

Добавляет элемент навигации «Сортировать по дате создания» на главной странице. По умолчанию: true

Включить колонку «Создано» на главной странице

Добавляет колонку «Создано» на главной странице. По умолчанию: true

Категории для отображения элемента навигации

Список категорий, в которых отображается элемент навигации «Сортировать по дате создания». Оставьте пустым, чтобы отображать во всех категориях. По умолчанию: пусто

Категории для отображения колонки «Создано»

Список категорий, в которых отображается колонка «Создано». Оставьте пустым, чтобы отображать во всех категориях. По умолчанию: пусто

Теги для отображения элемента навигации

Список тегов, для которых отображается элемент навигации «Сортировать по дате создания». Оставьте пустым, чтобы отображать для всех тегов. По умолчанию: пусто

Теги для отображения колонки «Создано»

Список тегов, для которых отображается колонка «Создано». Оставьте пустым, чтобы отображать для всех тегов. По умолчанию: пусто

Позиция элемента навигации

Настройка позиции элемента навигации в списке. По умолчанию: top.

Скриншоты

Сортировка


Мобильный вид

С категориями и тегами

Совместимость и примечания

На мобильных устройствах функциональность сортировки уже сильно ограничена, поэтому дата создания будет выполнять только информационную роль. Дополнительное поле отображается только если дата создания отличается от даты обновления.

Совместимость с Миниатюрами в списке тем ограничена. В стиле списка работает нормально. В стиле блога дата создания перемещается в правый нижний угол. В стиле сетки и стиле «кирпичная кладка» дата создания видна только при выборе фильтра «Создано» и заменяет дату активности. В минималистичном стиле дата создания скрыта.

17 лайков

Вау, еще один идеальный плагин, который меняет форум! Было бы здорово, если бы он мог интегрироваться с плагином «Discourse Nav Item Icon / Emoji».

3 лайка

Думаю, это должно сработать. :slight_smile:
Просто добавьте его, например так:
emoji:created_date:twitter:spiral_calendar:filter

4 лайка

Могу подтвердить: добавление настройки, как у Дона, работает!


5 лайков

Очень здорово! К сожалению, это не очень хорошо сочетается с расширением Topic Thumbnails, по какой-то причине добавляется лишнее время:

Обратите внимание на лишние «7 ч» внизу по центру.

Кажется, я могу просто скрыть это правило .topic-list .topic-list-data:last-of-type, но решил предупредить вас :grin:

РЕДАКТИРОВАНИЕ: Я обнаружил ещё одну странность: когда я нажимаю «Последние», подсвечивается «Создано», а когда нажимаю «Создано», подсвечивается «Последние» :zany_face:

1 лайк

Хм, это интересно. Похоже, это просто странный побочный эффект того, как «Миниатюры тем» и «Сортировка созданных тем» одновременно добавляются в шаблоны. Возможно, проблема в masonry и режиме сетки? Я попробую найти подходящее решение в CSS, вместо того чтобы просто скрывать это, как только пойму, как аккуратно определить использование компонента темы.

Выделение для «Последние» и «Созданные» звучит очень странно. «Созданные» должны подсвечиваться только тогда, когда в URL есть /latest?order=created… хм…

Я обновил некоторые компоненты, чтобы сделать их более привлекательными (или хотя бы соответствующими) компоненту «Миниатюры тем».\n\nhttps://github.com/Alteras1/discourse-created-topic-sort/pull/4\n\nВ стиле блога дата создания перемещена в правый нижний угол. Я не смог найти элегантного способа разместить её рядом с датой обновления, поэтому придётся ограничиться этим. В стилях «сетка» и «кирпичная кладка» дата создания отображается только при выборе фильтра «Создано» и заменяет дату активности. Я пытался вывести одновременно и дату активности, и дату создания, но это делало карточку перегруженной. В минималистичном стиле дата создания скрыта.

Было бы сложно добавить ограничение по категории к этому? Мы бы хотели видеть это в разделе объявлений, но не нужно отображать его в общих обсуждениях и т. д.

1 лайк

Отнюдь! Я только что выпустил обновление, которое добавляет четыре новых параметра для управления отображением элемента навигационной панели и столбца.

  • Включить элемент навигационной панели на главной странице: Добавить элемент навигационной панели «Сортировать по дате создания» на главной странице.
  • Включить столбец на главной странице: Добавить столбец «Создано» на главной странице.
  • Категории для отображения элемента навигационной панели: Список категорий, в которых будет отображаться элемент навигационной панели «Сортировать по дате создания». Оставьте пустым, чтобы отображать во всех категориях.
  • Категории для отображения столбца «Создано»: Список категорий, в которых будет отображаться столбец «Создано». Оставьте пустым, чтобы отображать во всех категориях.

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

2 лайка

Спасибо огромное! :star_struck: Это просто здорово!

Есть способ сделать это страницей по умолчанию? Я видел, что некоторые плагины добавляют опции в настройку сайта «Верхнее меню», поэтому думаю, что это возможно.

Тогда я смогу эффективно заменить стандартную страницу «Последние» на эту, скрыв стандартную с помощью CSS.

Страницу по умолчанию можно задать с помощью небольшого JS-кода:

import { setDefaultHomepage } from "discourse/lib/utilities";
setDefaultHomepage("/latest?order=created");

Конечно, предпочтительнее добавить эту опцию в настройки верхнего меню, но, насколько я помню, сделать это через TC невозможно. Мне нужно будет проверить, не изменилось ли что-то с тех пор.

2 лайка

Спасибо! Это должно сработать, но к URL добавляется %3F_discourse_homepage_rewrite, что мешает сортировке. :confounded_face:

2 лайка

Мне удалось обойти это, используя setDefaultHomepage("latest?order=created&");
Но теперь проблема в том, что, несмотря на все индикаторы, сортировка на самом деле не применяется.

Поэтому я попробовал тот же URL через Custom Homepage for Groups, и это сработало :tada: Не понимаю, почему перенаправление этого компонента работает иначе, ведь я почти уверен, что используется тот же метод.

2 лайка

разобрался, нужно было очистить PreloadStore

Так что можно отредактировать вашу тему по умолчанию или создать новый компонент, чтобы добавить это в JS:

import { apiInitializer } from "discourse/lib/api";
import { setDefaultHomepage } from "discourse/lib/utilities";
import PreloadStore from "discourse/lib/preload-store";

export default apiInitializer((api) => {
  setDefaultHomepage("latest?order=created&");
  PreloadStore.remove("topic_list");
});

и этот CSS, чтобы скрыть вкладку «Последнее»:

li.nav-item_latest {
    display: none;
}

Хотелось бы, чтобы это оставалось на корневом URL главной страницы, но для этого, вероятно, потребуется плагин.

3 лайка

В итоге я создал этот плагин: Created as Default Sort Order
Так что моя главная страница теперь чисто отсортирована по дате создания. Я всё ещё использую этот компонент для добавления столбца.

4 лайка

Спасибо за этот отличный компонент темы!

Я сделал очень маленький и простой PR, который позволяет настроить место появления элемента панели навигации.

2 лайка

Спасибо за PR! Я уже принял его и обновил описание настроек в первом посте.

1 лайк

Возможно ли, чтобы это работало в представлении тегов? В настоящее время при просмотре тега опция меню «Создать» исчезает. Спасибо!

Обновлено! Добавлены настройки tags_to_display_nav_bar_item и tags_to_display_created_column.

3 лайка