Рекомендуемые темы

:discourse2: Краткое описание Темы с фичами на основе тегов.
:hammer_and_wrench: Ссылка на репозиторий Manuel Kostka / Discourse / Components / Featured Topics · GitLab
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

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

Настройки


Среди прочего вы можете выбрать несколько тегов для отображения тем и выбрать один из двух вариантов макета: Карточки или Список.

Шаблон


.featured-topics {
  &__wrapper {
  }
  &__container {
  }
  &__heading {
  }
  &__topic-wrapper {
  }
  &__topic-container {
  }
  &__topic-tag {
  }
  &__topic-thumbnail {
  }
  &__topic-details {
    .topic-author {
    }
    .topic-title {
    }
    .topic-excerpt {
    }
  }
}
35 лайков

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

2 лайка

Спасибо! Изображение взято из первого сообщения темы.

2 лайка

Честно говоря, мне очень понравился бы #theme-component вроде этого, но для трендовых тем (хотя такая функциональность, вероятно, потребовала бы #плагина).

Возможно, это можно будет реализовать гораздо проще, когда в версии 2.9 в Discourse появится опция сортировки тем по категории «горячее»? :thinking:

Что касается возможности отображения тега в карточке избранных тем: как система обрабатывает тему с несколькими тегами? Отображаются ли теги вообще в карточках избранных тем в мобильном режиме?

2 лайка

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

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

Чем трендовые темы будут отличаться от «Топ-день» или «Топ-неделя»? В любом случае, когда в ядре Discourse появится новый алгоритм сортировки и фильтрации, например упомянутый «Горячее», он должен корректно работать и в этом компоненте.

1 лайк

Ну, они не обязательно должны быть ограничены каким-то определённым периодом. Трендовые темы могут быть из прошлого часа, дня, недели и так далее…

Жаль, что мне трудно выразить свои мысли… :sweat_smile:

Также возможно ли иметь несколько строк с карточками избранных тем?

2 лайка

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

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

1 лайк

Хорошо, это справедливо. :+1:

Я хотел связать этот #theme-component с концепцией, над которой сейчас работают.

Кроме того, опция сортировки тем по категории «горячее», о которой я упоминал ранее, уже (в некоторой степени) существует в виде #plugin:broken-plugin.

1 лайк

Понятно… Вы просто заставили меня переформулировать :wink: Я дважды написал «feed», но заменил его на «column». Цель этого компонента — представлять конкретные выбранные темы. Я не сомневаюсь, что его можно адаптировать и для работы в режиме динамической ленты. Однако, если ваша цель именно это, я бы предпочёл просто стилизовать существующие списки тем. Например, использовать такой компонент, как Topic List Previews или Topic List Thumbnails, и оформить элементы списка в виде карточек. Работа напрямую со списками полностью интегрирована с элементами навигации и фильтрами в Discourse. С этим компонентом такого не добиться.

1 лайк

Да, верно. Я просто пытаюсь рассмотреть все доступные мне варианты. Эта тема была опубликована как раз тогда, когда я просматривал Discourse Meta, поэтому она привлекла моё внимание.

2 лайка

Хм, миниатюра почему-то не отображается :frowning:

1 лайк

Хм, я вижу его внешний вид только когда снимаю выделение со всего контента :upside_down_face:

Вы пробовали другие браузеры? Если проблема не в браузере (а если всё-таки в нём, пожалуйста, сообщите мне о вашей конфигурации), я смогу проверить CSS на вашем сайте. Но для этого вам нужно будет поделиться ссылкой, здесь или в личном сообщении.

1 лайк

Этот компонент всё ещё работает?

Почему оно больше не должно работать? Оно не помечено как сломанное или что-то в этом роде, и ему всего три месяца.

4 лайка

Восхищаюсь этим компонентом, большое спасибо! :tada:

Было бы здорово, если бы можно было закрепить одну тему (например, «Добро пожаловать на этот форум»), которая всегда отображалась бы, даже если темы из #featured выбираются случайно. Думаю, это было бы действительно здорово, и не только для моего случая использования, но и для многих других. Можно ли это реализовать?

1 лайк

Помогите, @manuel?
Мне очень нравится этот компонент! Но у меня возникла небольшая проблема. :point_down:

На моём аккаунте администратора карточки отображаются отлично.

На моём аккаунте «обычного» пользователя остаётся пустое пространство, и карточки не отображаются.

Любая помощь или предложения будут очень кстати, прежде чем мне придётся искать другое решение :smiley:

1 лайк

Похоже, вы используете тег, который не виден обычным пользователям?

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

3 лайка

:woman_facepalming:
Это помогло.
Я просто отредактировал(а) свои группы тегов и подумал(а), что скрою этот один, чтобы никто, кроме администратора, не знал о его существовании. Спасибо!!

1 лайк

Спасибо за предложение, @diabolicvincent! Хотя, думаю, я не буду реализовывать это как отдельную функцию. Одна из причин в том, что (как упоминалось в разделе «Об авторах»), я не писал логику этого компонента. Она уже достаточно сложна для моего вкуса, и я не хочу в неё лезть.

В более общем смысле, с философской и концептуальной точек зрения :nerd_face: я считаю, что это лучшее решение для интерфейса, когда официальный контент легко отличим от созданного пользователями. В этом отношении я уже не сторонник закрепления тем в otherwise динамическом списке пользовательских тем.

Есть ли способ автоматически показывать последние посты без использования тега? Я не хочу использовать тег для ручного добавления постов в раздел «Рекомендуемое».