Этот компонент темы позволяет настраивать кнопку «Новая тема» в списке тем категории или по тегу, а также название действия и кнопку в редакторе (выделено ниже). Например, если у вас есть категория #ошибки, вы можете изменить эти тексты на «Сообщить об ошибке»:
Эта настройка позволяет задать фильтр (название тега или категории), иконку для кнопки «Новая тема» (это не меняет иконки в редакторе), а также название действия в верхней части редактора и кнопку «Создать тему» в редакторе.
Дополнительная настройка, включённая по умолчанию, называется наследовать родительскую категорию. Когда она включена, все дочерние категории также получат изменённый текст (если не указано иное в настройках).
Обратите внимание: если вы настроили тег, он будет иметь приоритет над выбранной категорией.
Идеи для будущих улучшений
Локализуемый текст для разных языков
Поддержка комбинаций категорий и тегов, а также нескольких тегов
Размещено у нас? Компоненты тем доступны для использования в наших тарифах Standard, Business и Enterprise.
В своих экспериментах мне так и не удалось переопределить метку кнопки «Композитор» для категорий с помощью плагина discourse-post-voting. Это становится более серьезной проблемой, когда для голосования за сообщения включено несколько категорий.
Если можно предложить: поддержка переопределения меток discourse-post-voting стала бы отличным улучшением. (:
Это отличный компонент темы! Идея пойти дальше может заключаться в следующем:
Если вы переименовываете кнопку, потому что фактически хотите изменить тип темы, то вам следует изменить название во всей *категории.
Например:
У вас есть категория под названием События. Вы фактически замените слово «тема» во всей категории на «событие». Это не «Новая тема», а «Новое событие», вместо списка тем у вас будет список событий и так далее.
Вы видите это в других инструментах, когда меняете основной случай использования чего-либо. Вот что делает AirTable при создании новой таблицы. Таблицы по умолчанию содержат «записи».
Использование компонента темы таким образом позволит нам легко и эффективно ребрендинговать категорию как более специфическую сущность. Заявки на поддержку, события и т. д.
Я нашел этот компонент темы при поиске, потому что хотел изменить это слово «тема» на «событие»:
Есть ли шанс, что в редактор можно добавить ещё одно поле для изменения текста кнопки «Ответить» (или оставить его пустым, чтобы текст остался как Ответить?)?
Я совершенно упустил кнопку «Ответить»! На данный момент я оставил её как reply, но отдельная настройка для изменения её текста имела бы смысл.
Отличное замечание, кажется, что использование ID категории вместо её названия в настройках будет лучшим способом избежать этого. Это означает, что любые существующие настройки, которые у вас есть, потребуется обновить.
Пытаюсь использовать этот компонент, но без успеха, и в логах вижу множество предупреждений, подобных этому.
Сообщение (4 повторения)
[DiscourseJsProcessor] ПРЕДУПРЕЖДЕНИЕ: Использование {{attrs}} для обращения к именованным аргументам устарело. {{attrs.canCreateTopic}} следует заменить на {{@canCreateTopic}}. (‘discourse/components/custom-new-topic-button.hbs’ @ L2:C8) [id предупреждения: attrs-arg-access] Подробнее см. по ссылке: Ember.js - Deprecations.
at theme-transpiler.js:3164:26752
at j. (theme-transpiler.js:3168:1693)
at theme-transpiler.js:3168:161
at j. (theme-transpiler.js:3168:1693)
at D (theme-transpiler.js:3168:1754)
at te (theme-transpiler.js:3168:1318)
at PathExpression (theme-transpiler.js:3198:21763)
at yo (theme-transpiler.js:3187:2776)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Ml (theme-transpiler.js:3187:3350)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Bi (theme-transpiler.js:3187:3879)
at PA (theme-transpiler.js:3190:3002)
at Cf (theme-transpiler.js:3190:9856)
at Al (theme-transpiler.js:3176:35353)
at gf (theme-transpiler.js:3176:35600)
at D (theme-transpiler.js:3198:42250)
at Sft.o.precompile (theme-transpiler.js:3281:3078)
at dDe (theme-transpiler.js:3161:1003)
at e.CallExpression (theme-transpiler.js:3159:33796)
at h (theme-transpiler.js:10:111797)
at e.uPe [as _call] (theme-transpiler.js:59:16906)
at e.oPe [as call] (theme-transpiler.js:59:16726)
at e.lPe [as visit] (theme-transpiler.js:59:17700)
at t.visitQueue (theme-transpiler.js:59:40645)
at t.visitSingle (theme-tr…
Трассировка стека
/var/www/discourse/lib/discourse_js_processor.rb:133:in block in create_new_context' mini_racer-0.8.0/lib/mini_racer.rb:273:in block in attach’
mini_racer-0.8.0/lib/mini_racer.rb:242:in call_unsafe' mini_racer-0.8.0/lib/mini_racer.rb:242:in block (2 levels) in call’
mini_racer-0.8.0/lib/mini_racer.rb:369:in timeout' mini_racer-0.8.0/lib/mini_racer.rb:241:in block in call’
mini_racer-0.8.0/lib/mini_racer.rb:240:in synchronize' mini_racer-0.8.0/lib/mini_racer.rb:240:in call’
/var/www/discourse/lib/discourse_js_processor.rb:168:in block in v8_call' /var/www/discourse/lib/discourse_js_processor.rb:167:in synchronize’
Хм, странно. Я протестировал это на последней версии Discourse, и всё работает отлично — я только что объединил обновление компонента, которое решит эту проблему устаревания. Можете обновиться и попробовать снова?
При использовании вашего компонента название кнопки меняется, но при нажатии на неё больше не запускается Wizard, выбранный в настройках категории. Мы были бы рады использовать ваш компонент на крупном производственном сайте, но пока не можем этого сделать. Надеемся, что проблема будет решена. Без давления
У меня такого не наблюдается — у меня такая же настройка, и мои кнопки работают. Возможно, стоит проверить другие плагины или TC. Для справки: я использую последние сборки.
Таким образом, теперь будет доступна возможность кастомизировать текст кнопки ответа в композиторе и в постах (по-прежнему на основе тега и категории).