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.
Cette documentation (ainsi que le message initial) utilise la clé plugins. Dans d’autres endroits, j’ai vu le nom du plugin utilisé, comme vous l’avez dit.
Bien que type_supervisor.load_setting ne reçoive pas directement la valeur, il a accès aux valeurs par défaut car elles sont transmises lors de l’initialisation de TypeSupervisor via DefaultsProvider.
type_supervisor.load_setting appelle ensuite get_data_type qui appelle parse_value_type() qui devrait lever une ArgumentError si le type ne peut pas être détecté.
Je pense que toute cette séquence est appelée par load_settings dans le modèle SiteSetting, et je ne vois aucune gestion d’exception nulle part dans la pile. Mais je ne vois aucune sortie d’erreur dans le journal du serveur, ni ailleurs.
Il semble qu’il devrait y avoir une sorte de retour utilisateur ou de journal d’erreurs pour indiquer qu’un paramètre n’a pas pu être analysé.
Si je comprends bien, vous dites qu’utiliser -1 comme valeur par défaut pour un paramètre fait que le bouton « Paramètres » n’apparaît pas. Pouvez-vous reproduire ce comportement à chaque fois ?
C’est étrange. Je ne vois rien de mal dans vos paramètres, je ne suis pas sûr de la façon dont il est possible d’échouer lors de l’analyse.
Ok, je pense que dans les deux cas (dev et production), c’est parce que le dossier dans le répertoire des plugins ne correspondait pas à county-fence. C’est pourquoi le paramètre ne s’affichait pas, et cela aurait peut-être causé d’autres problèmes également.
Je ne comprends pas bien. La plupart des plugins que j’ai installés n’utilisent pas plugins:, y compris les plugins officiels et récents (ainsi que le modèle squelette).
Je pensais que cette partie était utilisée pour le filtrage des paramètres, mais je me trompe peut-être.
Une liste complète des types de paramètres du site est disponible dans le code de type_supervisor.rb. Juste au-dessus, vous pouvez également voir les clés enfants valides qu’un paramètre du site accepte.
Un exemple plus avancé qui utilise davantage ces options se trouve dans le composant de thème discourse-welcome-link. Ces mêmes valeurs devraient fonctionner à l’intérieur d’un plugin, mais le fichier serait plutôt situé à config/settings.yml.