Я новичок, но заинтересован в решении проблемы, поэтому спросил Chat-GPT:
Вот ответ:
Найденный вами скрипт — хорошее начало. Он модифицирует контроллер
poll-ui-builder, устанавливая свойствоpublicPollвtrue, когда вызывается функцияonShow()контроллера. Это действительно должно быть добавлено как компонент темы.Однако код может не работать из-за порядка выполнения. Исходный метод
onShow()устанавливаетpublicPollвfalse, а затем модификация устанавливаетpublicPollвtrue.Правильный способ — сначала вызвать родительский метод
onShow, а затем установитьpublicPollвtrue:
<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
onShow() {
this._super(...arguments);
this.set('publicPoll', true);
}
});
</script>
Вы можете добавить этот скрипт в свою тему, выполнив следующие шаги:
- Перейдите на панель администратора Discourse.
- В разделе «Настройка» нажмите «Темы».
- Выберите тему, которую хотите изменить.
- На экране редактирования темы нажмите «Изменить CSS/HTML».
- В боковой панели слева нажмите «</> Общие».
- Вставьте приведенный выше скрипт в раздел «</> Общие».
- Нажмите кнопку «Сохранить».
Это применит изменения к вашей теме. Помните, что изменения темы применяются только пользователям, использующим эту конкретную тему. Если у вас несколько тем, вам нужно добавить эту модификацию в каждую из них.
Также не забудьте очистить кэш браузера или выполнить полную перезагрузку, чтобы изменения были загружены корректно.
Я попробую выполнить эти шаги вместе с администратором нашего форума, но это займет время. Если кто-то другой здесь захочет попробовать это первым, пожалуйста, дайте обратную связь — я буду очень рад.
Еще одна вещь, которую я хотел бы изменить, — это поведение интерфейса: я хочу пропустить простой экран. Поэтому я снова спросил Chat-GPT:
В вашем текущем коде расширенный вид контролируется свойством
showAdvanced. Если оно установлено вtrue, будет показан расширенный вид.Чтобы всегда показывать расширенный вид, вы можете модифицировать метод
onShow()в контроллереpoll-ui-builder, установивshowAdvancedвtrue. Вы можете добавить эту модификацию в компонент темы, который вы создали ранее. Вот обновленный скрипт:
<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
onShow() {
this._super(...arguments);
this.set('publicPoll', true);
this.set('showAdvanced', true);
}
});
</script>
Помните о шагах, которые я описал ранее, чтобы добавить этот скрипт в вашу тему. После сохранения скрипта расширенный вид должен всегда отображаться при загрузке интерфейса опроса.
Опять же, не забудьте очистить кэш браузера или выполнить полную перезагрузку, чтобы изменения были загружены корректно.
Я очень хотел бы попробовать и протестировать это самостоятельно, но, как упоминалось ранее, я всего лишь модератор, а не администратор нашего сайта, поэтому это займет несколько дней или недель.