Пытаюсь отображать темы в пользовательском пункте меню

Чтобы изучить и применить различные концепции дискурса, я создаю плагин, который будет отображать все «Горячие темы». Я ещё не определил критерии того, что считать горячей темой, но вот с какими проблемами я сталкиваюсь.

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

Я создал новый пункт меню с помощью api.addNavigationBarItem.
Также я создал пользовательский маршрут /hot-topics во фронтенде и бэкенде.
Сейчас на маршруте /hot-topics я отображаю простой заголовок h3.

  1. Моя первая задача: после нажатия на пункт навигации панель навигации должна оставаться видимой, а вкладка «Горячие темы» — подсвечиваться.
    Я думаю, это возможно реализовать с помощью компонента {{navigation-bar}}, но, вероятно, мне нужно возвращать элементы навигации в методе модели объекта маршрута, чтобы передать их в шаблон.
    Я возвращал из метода модели жёстко заданный массив, но без успеха.

  2. Моя вторая задача: получить так называемые «Горячие темы» и отобразить их на вкладке «Горячие темы».
    Для этого я использую компонент {{categories-topic-list}}. Мне трудно понять, как правильно передать данные этому компоненту, чтобы отобразить нужные темы.

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

Спасибо, что пытаетесь освоить Discourse!

Понимаю, что это процесс обучения, но у меня сразу возник вопрос: в чём разница между «Hot» и переходом по адресу /top, чтобы увидеть то, что мы считаем лучшим? Вы можете отфильтровать по неделе или даже по дню, если хотите. Это и должно быть нашим «Hot».

Возможно, стоит добавить свой маршрут как часть маршрутов discovery., как это сделано для latest, new, top и т. д. Эти маршруты уже автоматически отображают панель навигации. Рекомендую изучить код Discourse, чтобы понять, как создаются другие маршруты. Там есть примеры того, как получать данные для списков тем.

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

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

Большое спасибо за ваше время, @eviltrout.