Другой способ — установка плагина Custom Top Navigation Links. Он позволил мне добавить ссылки в панель навигации, но маршрут «/» (корневой) по-прежнему ведет на «Последние».
Третий способ — изменение файла discourse/app/routes/app-route-map.js, где определены «фильтры». Но и это не помогло.
this.route("discovery", { path: "/", resetNamespace: true }, function () {
Моя цель:
Изменить список тем, который отображается по адресу «http://localhost:3000/», с «Последние» на «Подписки». Это возможно благодаря плагину Discourse Follow. Поскольку этот маршрут уже существует, переход по «/following» работает, но я хочу, чтобы этот функционал был доступен по пути «/».
Не сработало. Я думал, что с этими изменениями станет возможным выбрать настройки сайта “Top menu”. Поэтому, если требуется “latest”, я бы поставил последовательность “following” - “latest”, чтобы главная страница перенаправляла на “following”.
Во время разработки я нашёл способ через:
import { setDefaultHomepage } from 'discourse/lib/utilities';
Так что в начале моего компонента я добавил:
setDefaultHomepage("following");
Потому что в Rails Console я обнаружил переменную SiteSetting.homepage, которая имела значение “latest”.
И это сработало !
Ты видишь какие-либо проблемы?
Я беспокоюсь о загрузке “latest” с бэкенда и об инициализаторе, который загружается на стороне клиента.
Нет, вы не сможете напрямую изменить файл Ruby. Это была лишь подсказка. В конце концов, вы не будете отправлять PR в основную ветку, как это делал я в том случае. Скорее всего, вам придётся найти способ внести изменения из инициализатора плагина в файле plugin.rb… Это будет изменение самого плагина, а не основной части.
Ха-ха, ну это один из способов, но на самом деле вам стоит добавить это как опцию и всегда давать пользователю возможность её изменить… по крайней мере, если вы хотите, чтобы это было включено в плагин
Но да, отличная работа, продолжайте развивать проект.