Привет, есть ли способ скрыть результаты опроса от анонимных пользователей? Я создаю форум для решения экзаменационных вопросов, где пользователи могут выбирать ответы. Мне не нужно, чтобы участники давали ложные ответы просто для того, чтобы увидеть ответы других, но я также хочу предотвратить возможность просмотра результатов анонимными пользователями.
Ещё один момент: я пытался найти способ скрыть ответы от анонимов, но ничего не нашёл. Существует ли такая функция?
Привет, я только что разобрался. Если кто-то хочет попробовать, можно создать компонент темы и добавить это в секцию head:
<script type="text/discourse-plugin" version="0.8">api.onPageChange(() => {
if (!Discourse.User.current()) {
const pollContainers = document.querySelectorAll('.poll');
pollContainers.forEach(poll => {
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.type === 'childList') {
const resultsButton = poll.querySelector('.toggle-results');
if (resultsButton) {
resultsButton.remove();
}
}
});
});
observer.observe(poll, { attributes: false, childList: true, subtree: true });
// Удалить существующие кнопки, если они есть
const existingButton = poll.querySelector('.toggle-results');
if (existingButton) {
existingButton.remove();
}
});
}
});
</script>
Это также предотвратит появление кнопки «Результаты» после того, как кто-то проголосует.