file (and similar for any other locales you want to support) with the same English tokens but with language specific values and the plugin will use that instead of falling back to the English.
I was looking how to create a site setting that validates a username, but found there’s a username type to do this. Here the list of site setting types we have today:
email
username
integer
regex
string
list
enum
Also, you can do custom validations for your plugin settings, it accepts a validator field that expects a Ruby class. You use it like this.
Снова вам нужно использовать вычисляемое свойство и отформатировать его как безопасный HTML. Это EmberJS, а не обычный JavaScript. Вы не можете напрямую вставлять «код» в шаблоны. Прочтите руководство по Ember.
Эта документация (как и автор оригинального вопроса) использует ключ plugins. В других местах я видел, что использовалось название плагина, как вы и сказали.
Хотя type_supervisor.load_setting не получает значение напрямую, у него есть доступ к значениям по умолчанию, так как они передаются при инициализации TypeSupervisor через DefaultsProvider.
type_supervisor.load_setting затем вызывает get_data_type, который вызывает parse_value_type(), что должно вызывать ArgumentError, если тип не может быть определён.
Похоже, что вся эта последовательность вызывается методом load_settings в модели SiteSetting, и я не вижу никакой обработки исключений ни в одном месте этого стека. Однако я не вижу никаких сообщений об ошибках в логе сервера или где-либо ещё.
Кажется, должно быть какое-то уведомление пользователю или запись в журнале ошибок, указывающая на сбой разбора настройки.
Если я правильно понял, вы говорите, что использование значения -1 по умолчанию для настройки приводит к тому, что кнопка «Настройки» не отображается. Можете ли вы воспроизвести это поведение каждый раз?
Это странно. Я не вижу ничего неправильного в ваших настройках, не понимаю, как может произойти сбой при их анализе.
Хорошо, я думаю, что в обоих случаях (разработка и продакшн) проблема заключалась в том, что имя папки в директории плагинов не совпадало с county-fence. Именно поэтому настройка не отображалась, и это могло вызвать и другие проблемы.
Полный список типов настроек сайта доступен в коде type_supervisor.rb. Чуть выше вы также можете увидеть допустимые дочерние ключи, которые принимает настройка сайта.
Более продвинутый пример, использующий больше этих опций, можно найти в компоненте темы discourse-welcome-link. Эти же значения должны работать и внутри плагина, но файл будет находиться по пути config/settings.yml.