Подскажите, пожалуйста, есть ли где-нибудь руководство или пример по этому вопросу?
Например, если я использую компонент темы для создания боковой колонки, как можно отобразить в ней 20 последних публично видимых тем (или, если проще, тем из категорий, указанных в запросе)?
Есть несколько способов сделать это. Самый простой — использовать AJAX-запрос к конечной точке в Rails API, которая возвращает данные, которые вы хотите отобразить. Если вам нужны последние 20 тем, попробуйте запросить /latest.json.
Сложность возникает, если вам нужно объединить информацию из нескольких конечных точек: тогда приходится ждать завершения нескольких запросов, что может значительно замедлить производительность компонента темы.
Есть ли простой способ просто повторно использовать ленты/данные, которые уже предоставляет Discourse? (Чтобы они также учитывали настройки пользователя).
Например, в боковой колонке у нас может быть:
Последние 10 тем (лента со страницы «Последние», но также учитывает скрытые категории)
Популярные темы на этой неделе (со страницы /top)
Популярные темы в этом месяце
Популярные темы в этом году
Самые активные пользователи в этом месяце (со страницы /u?period=monthly)
На других платформах для форумов это делается довольно легко, и я очень скучаю по этому в Discourse
Как вы думаете, это будет примерно то же самое, что и просто выполнять запросы к базе данных, которые выполняют эти конечные точки? (Или это потребует значительно больше ресурсов, поскольку это может быть равносильно загрузке 5 дополнительных страниц — по одной для каждой конечной точки).
В любом случае я бы хотел поэкспериментировать с этим — есть ли какие-либо руководства или уроки, показывающие, как получать данные из конечной точки в компонент темы? (Или лучше/эффективнее создать плагин?)
Я знаю, как создать компонент темы и «заглушку» плагина, но не нашел руководств, показывающих, как получать данные из БД в них.