2016-09-15 3 views
0

Wie kann ich bei der Erstellung einer Site mit KeystoneJS einige Site-weite Konfigurationsvariablen hinzufügen, die in der Datenbank gespeichert sind - die vorzugsweise über den Admin manipuliert werden können - in der Ader Craft CMS's 'globals' ?KeystoneJS: Siteweite Konfigurationsvariablen in der Datenbank

Ich kann nichts in der Keystone database documentation darüber finden, und würde es vorziehen, kein Singleton mit einer Keystone-Liste zu verwenden (z. B. durch Implementieren einer Liste, die nur ein Element hat), wenn überhaupt möglich.

Antwort

1

Ich habe gerade mit einem der Keystone-Entwickler darüber gesprochen. Es ist widely discussed on ProductPains gewesen, und wie sich herausstellt, mit einer Liste ein Singleton mit derzeit (Stand 0.3.x) der einzige Weg, dies zu tun:

  • definieren ein neues Modell in z.B. models/Configuration.js:
const keystone = require('keystone'); 
const Types = keystone.Field.Types; 

const Configuration = new keystone.List('Configuration', { 
    nocreate: true, 
    nodelete: true, 
    label: 'Configuration', 
    path: 'configuration', 
}); 

Configuration.add({ 
    siteName: { type: String }, 
    siteDescription: { type: Types.Textarea }, 
}); 

Configuration.defaultColumns = 'siteName, siteDescription'; 
Configuration.register(); 
  • zum Beispiel ein Update hinzufügen updates/0.0.2-configuration.js:
exports.create = { 
    Configuration: [ 
    { 'siteName': 'My site', 'siteDescription': 'TODO' } 
    ] 
}; 
Verwandte Themen