Привет,
Я искал что-то подобное, но с исключением определённых групп, поэтому решил попробовать ChatGPT, и вот что он ответил:
Чтобы создать HTML-тему в Discourse, которая запускает скрипт с исключением определённых групп, вам нужно использовать возможности кастомизации тем Discourse вместе с JavaScript для обработки исключений групп. Discourse предоставляет
api.getCurrentUser()для получения данных пользователя, включая его группы, что может быть полезно для условного запуска вашего скрипта.Вот пример того, как это можно реализовать в секции
</head>вашей темы или компонента:
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
// Получаем данные текущего пользователя
const currentUser = api.getCurrentUser();
if (currentUser) {
// Список названий групп, которые нужно исключить из выполнения скрипта
const excludedGroups = ['group1', 'group2'];
// Получаем группы пользователя
const userGroups = currentUser.groups.map(group => group.name);
// Проверяем, состоит ли пользователь в какой-либо из исключённых групп
const isExcluded = excludedGroups.some(group => userGroups.includes(group));
if (!isExcluded) {
// Здесь ваш собственный код скрипта
console.log('Скрипт выполнен для этого пользователя.');
// Пример: запуск любой пользовательской логики для пользователей, не входящих в исключённые группы
// customScriptFunction();
} else {
console.log('Пользователь состоит в исключённой группе, скрипт не выполнен.');
}
}
});
</script>
Пояснение:
- api.onPageChange(): Запускает скрипт при каждом изменении страницы.
- api.getCurrentUser(): Получает данные текущего вошедшего пользователя.
- excludedGroups: Список групп, которые нужно исключить.
- userGroups.includes(group): Проверяет, состоит ли пользователь в какой-либо из исключённых групп.
- Условное выполнение скрипта: Скрипт будет выполнен только если пользователь не входит ни в одну из исключённых групп.
Вы можете заменить customScriptFunction(); на любой скрипт, который вам нужно запустить. Дайте знать, если потребуются дополнительные изменения!
Я просто в шоке от этого
. Я ещё не пробовал, но правильный ли этот код от ChatGPT?