Переопределение значения по умолчанию для опроса, чтобы «public=true»

Я новичок, но заинтересован в решении проблемы, поэтому спросил 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>

Вы можете добавить этот скрипт в свою тему, выполнив следующие шаги:

  1. Перейдите на панель администратора Discourse.
  2. В разделе «Настройка» нажмите «Темы».
  3. Выберите тему, которую хотите изменить.
  4. На экране редактирования темы нажмите «Изменить CSS/HTML».
  5. В боковой панели слева нажмите «</> Общие».
  6. Вставьте приведенный выше скрипт в раздел «</> Общие».
  7. Нажмите кнопку «Сохранить».

Это применит изменения к вашей теме. Помните, что изменения темы применяются только пользователям, использующим эту конкретную тему. Если у вас несколько тем, вам нужно добавить эту модификацию в каждую из них.

Также не забудьте очистить кэш браузера или выполнить полную перезагрузку, чтобы изменения были загружены корректно.

Я попробую выполнить эти шаги вместе с администратором нашего форума, но это займет время. Если кто-то другой здесь захочет попробовать это первым, пожалуйста, дайте обратную связь — я буду очень рад.

Еще одна вещь, которую я хотел бы изменить, — это поведение интерфейса: я хочу пропустить простой экран. Поэтому я снова спросил 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>

Помните о шагах, которые я описал ранее, чтобы добавить этот скрипт в вашу тему. После сохранения скрипта расширенный вид должен всегда отображаться при загрузке интерфейса опроса.

Опять же, не забудьте очистить кэш браузера или выполнить полную перезагрузку, чтобы изменения были загружены корректно.

Я очень хотел бы попробовать и протестировать это самостоятельно, но, как упоминалось ранее, я всего лишь модератор, а не администратор нашего сайта, поэтому это займет несколько дней или недель.