С Новым годом, друзья!
Я хочу динамически менять тему на своём сайте (на базе Discourse).
Хочу, чтобы тема менялась каждые несколько часов или для разных доменов (я уже импортировал несколько тем).
Возможно ли это?
Если да, прошу тех, кто разбирается в этом, помочь мне с реализацией.
Или подскажите, какую функцию нужно изменить для внедрения этой функции?
Спасибо.
Интересный вопрос.
Только предположение. Я думаю, вы можете создать скрипт, который будет использовать API Discourse, выполняя PUT-запрос на https://yourdiscourse.com/admin/themes/[id_theme] с телом {"theme":{"enabled":false}} (false для отключения или true для включения).
Я могу попробовать сегодня вечером.
Извините за долгое ожидание. Был напряжённый день ![]()
Итак, вы действительно можете включить или отключить тему или компонент с помощью простого API-запроса.
Вам нужно создать ключ API с нужными учётными данными и назначить ему пользователя-администратора.
-
в панели администратора Discourse: admin panel → API → + Новый ключ API
-
в скрипте, который вы будете использовать, как уже упоминалось, выполните PUT-запрос на
https://yourdiscourse.com/admin/themes/[id_theme]с правильными заголовками (см. раздел аутентификации на https://docs.discourse.org/) и телом в формате JSON, например:{"theme":{"enabled":false}}
Это отключит выбранную тему или компонент. Пример видео с использованием Insomnia: