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.
Again you need to use a Computed Property and format as safe html. This is EmberJS not vanilla JavaScript. You can’t put ‘code’ directly into templates. Read the ember guides.
A pesar de que type_supervisor.load_setting no recibe directamente el valor, tiene acceso a los valores predeterminados porque se pasan cuando se inicializa TypeSupervisor a través de DefaultsProvider.
type_supervisor.load_setting llama entonces a get_data_type que llama a parse_value_type() que debería lanzar un ArgumentError si el tipo no se puede detectar.
Creo que toda esta secuencia es llamada por load_settings en el modelo SiteSetting, y no veo ningún manejo de excepciones en ninguna parte de la pila. Pero no veo ninguna salida de error en el registro del servidor, ni en ningún otro lugar.
Parece que debería haber algún tipo de retroalimentación al usuario o registro de errores para indicar que una configuración no se pudo analizar.
Si entiendo bien, dices que usar -1 como valor predeterminado en una configuración hace que el botón “Configuración” no aparezca. ¿Puedes reproducir este comportamiento siempre?
Eso es extraño. No veo nada malo en tu configuración, no estoy seguro de cómo es posible que falle el análisis.
He implementado el plugin en mi sitio web en producción usando el valor predeterminado de 0, solo para estar seguro. El botón de configuración se muestra:
Pero cuando hago clic en él, no se muestran configuraciones:
Ok, creo que en ambos casos (desarrollo y producción) se debió a que la carpeta en el directorio de plugins no coincidía con county-fence. Esa es la razón por la que la configuración no se mostraba, y tal vez podría causar otros problemas también.
No me queda claro. La mayoría de los plugins que he instalado no usan plugins:, lo que incluye plugins oficiales y recientes (también la plantilla esqueleto)
Pensé que esa parte se usaba para filtrar la configuración, pero quizás me equivoque.
Una lista completa de los tipos de Configuración del sitio está disponible en el código de type_supervisor.rb. Justo encima también puedes ver las claves secundarias válidas que acepta una Configuración del sitio.
Un ejemplo más avanzado que utiliza más de estas opciones se puede encontrar en el componente temático discourse-welcome-link. Estos mismos valores deberían funcionar dentro de un plugin, pero el archivo estaría en config/settings.yml.