saish
05.Сентябрь.2025 10:06:59
1
Я хотел бы настроить разные пользовательские домашние страницы для авторизованных и неавторизованных пользователей. Хотя я знаю, что это можно реализовать с помощью JavaScript, меня интересует, можно ли этого добиться с помощью компонента или плагина Discourse.
Я наткнулся на компонент Домашняя страница Discourse для конкретных пользователей , который позволяет создавать новый маршрут и добавлять шаблон, но я предпочитаю не использовать этот подход.
Если есть какие-либо альтернативные предложения или рекомендуемые лучшие практики, я буду очень признателен за ваши рекомендации.
merefield
(Robert)
05.Сентябрь.2025 11:23:15
3
Компонент Discourse написан на JavaScript
Существует поддержка кастомной домашней страницы для разработчиков, и вы можете различать эти типы пользователей.
main ← dynamic-route-exp
merged 03:05PM - 02 Apr 24 UTC
This PR adds a theme modifier and route so that custom themes can opt to show th… eir own homepage. To use it, do the following:
### 1. Add a modifier to your theme (or component) for `custom_homepage`
```json
{
"name": "Your theme name",
"component": true,
"modifiers": {
"custom_homepage": "true"
}
}
```
### 2. add a component in the `custom-homepage` connector.
By default, when the modifier is added, admins will see an info alert as the homepage:
<img width="1419" alt="image" src="https://github.com/discourse/discourse/assets/368961/4102c4e8-0111-4bc5-af82-74d4440d0559">
Themes or plugins can add elements to the `custom-homepage` plugin outlet. For example, a theme can add a file under `javascripts/connectors/custom-homepage/home.hbs` containing "Hey there!", and the homepage will display that component:
<img width="1348" alt="image" src="https://github.com/discourse/discourse/assets/368961/72e900f6-1361-4419-a49d-190395a5d4e5">
Note that this theme modifier respects the user's selected homepage (from Preferences > Interface), if the user has picked a specific route as their homepage, that route will be shown to them.
saish
05.Сентябрь.2025 13:37:19
4
Спасибо за ваш ответ. Я попробовал подход, описанный в репозитории GitHub, добавив "custom-homepage": true в файл about.json моей темы, но это, похоже, не работает. Не могли бы вы подтвердить, что это правильный метод?
merefield
(Robert)
05.Сентябрь.2025 13:38:19
5
Я предлагаю создать тему в Development
Если у вас возникают трудности, рассмотрите возможность нанять опытного разработчика Discourse в Marketplace
Это правильный метод. Вы выполнили все шаги? После добавления
"modifiers": {
"custom_homepage": "true"
}
и включения вашей темы, видите ли вы это как вашу главную страницу?
saish
05.Сентябрь.2025 13:44:22
7
Да, я выполнил шаги, указанные в теме. В частности, сначала я добавил "custom-homepage": "true" в модификаторы, а затем создал компонент по пути javascripts/discourse/connectors/custom-homepage/home.gjs.
Вы всё ещё видите домашнюю страницу по умолчанию или видите пустую домашнюю страницу? Есть ли ошибки в консоли?
saish
05.Сентябрь.2025 13:58:21
9
Да, я вижу свою домашнюю страницу по умолчанию, и в консоли нет ошибок.
merefield
(Robert)
05.Сентябрь.2025 14:16:28
10
Скорее всего, вам нужно изменить этот параметр:
в настройках
saish
05.Сентябрь.2025 14:16:59
11
Теперь я понял: нужно установить «Главная страница по умолчанию» в значение «по умолчанию», и всё заработало.
saish
05.Сентябрь.2025 14:19:52
13
Спасибо за ваш ответ, это сработало. Мне просто нужно было установить настройку «Страница по умолчанию» в значение по умолчанию.