SettingsModel
        
        Settings model extension
    
    
 class System\Behaviors\SettingsModel
extends System\Classes\ModelBehaviorAdd this the model class definition:
public $implement = ['System.Behaviors.SettingsModel'];
public $settingsCode = 'author_plugin_code';
public $settingsFields = 'fields.yaml';
Optionally:
public $settingsCacheTtl = 1440;
Extends
| Class | Description | 
|---|---|
| ModelBehavior | Base class for model behaviors. | 
Traits
| Trait | Description | 
|---|---|
| ConfigMaker | Config Maker Trait Adds configuration based methods to a class | 
| ExtensionTrait | Extension trait | 
Properties
            
            
            
                protected
            
            
            $cacheTtl
            
                :
                                                            integer
                                                                        
                        = 1440
                    
                            
        
        
        Settings cache TTL, in seconds.
protected $fieldConfig : mixed
            
            
            
                protected
            
            
            $fieldValues
            
                :
                                                            mixed
                                                                        
                        = []
                    
                            
        
        
        protected $recordCode : mixed
            
            
            
                protected
            
            
            $requiredProperties
            
                :
                                                            mixed
                                                                        
                        = ["settingsFields","settingsCode"]
                    
                            
        
        
        Properties that must exist in the model using this behavior.
            
            
            
                private
            
                            
                    static
                
            
            $instances
            
                :
                                                            array
                                                                        
                        = []
                    
                            
        
        
        Internal cache of model objects.
            
                            
                    inherited
                
            
            
                public
            
                            
                    static
                
            
            $extendableStaticCalledClass
            
                :
                                                            string
                                                                        
                        = null
                    
                            
        
                    The calling class when using a static method.
inherited protected $configPath : string
Specifies a path to the config directory.
            
                            
                    inherited
                
            
            
                protected
            
                            
                    static
                
            
            $extensionCallbacks
            
                :
                                                            array
                                                                        
                        = []
                    
                            
        
                    Used to extend the constructor of an extension class. Eg:
BehaviorClass::extend(function($obj) { })
            
                            
                    inherited
                
            
            
                protected
            
            
            $extensionHidden
            
                :
                                                            mixed
                                                                        
                        = {"fields":[],"methods":["extensionIsHiddenField","extensionIsHiddenMethod"]}
                    
                            
        
                    inherited protected $model : Winter\Storm\Database\Model
Reference to the extended model.
Methods
public __construct ($model)
Constructor
| Property | Type | Description | 
|---|---|---|
| $model | mixed | mixed | 
public afterModelFetch ()
Populate the field values from the database record.
public afterModelSave () : void
After the model is saved, clear the cached query entry and restart queue workers so they have the latest settings
public beforeModelSave ()
Before the model is saved, ensure the record code is set and the jsonable field values
public static clearInternalCache () : void
Clears the internal memory cache of model instances.
            
            
            
                public
            
                        
            get ($key, $default = null)
                    
        
        Helper for getSettingsValue, intended as a static method
| Property | Type | Description | 
|---|---|---|
| $key | mixed | mixed | 
| $default | mixed | mixed | 
public getFieldConfig ()
Returns the field configuration used by this model.
public getSettingsRecord () : Model
Returns the raw Model record that stores the settings.
            
            
            
                public
            
                        
            getSettingsValue ($key, $default = null)
                    
        
        Get a single setting value, or return a default value
| Property | Type | Description | 
|---|---|---|
| $key | mixed | mixed | 
| $default | mixed | mixed | 
public initSettingsData ()
Default values to set for this model, override
public instance ()
Create an instance of the settings model, intended as a static method
public isConfigured () : bool
Checks if the model has been set up previously, intended as a static method
public resetDefault ()
Reset the settings to their defaults, this will delete the record model
public saveModelInternal () : void
Internal save method for the model
            
            
            
                public
            
                        
            set ($key, $value = null)
                    
        
        Set a single or array key pair of values, intended as a static method
| Property | Type | Description | 
|---|---|---|
| $key | mixed | mixed | 
| $value | mixed | mixed | 
public setSettingsValue ($key, $value)
Set a single setting value, if allowed.
| Property | Type | Description | 
|---|---|---|
| $key | mixed | mixed | 
| $value | mixed | mixed | 
protected getCacheKey ()
Returns a cache key for this record.
protected isKeyAllowed ($key)
Checks if a key is legitimate or should be added to the field value collection
| Property | Type | Description | 
|---|---|---|
| $key | mixed | mixed | 
inherited public static extend (callable $callback)
| Property | Type | Description | 
|---|---|---|
| $callback | callable | callable | 
inherited public extensionApplyInitCallbacks ()
inherited public static extensionExtendCallback (callable $callback) : void
Helper method for ::extend() static method
| Property | Type | Description | 
|---|---|---|
| $callback | callable | callable | 
inherited public extensionIsHiddenField ($name)
| Property | Type | Description | 
|---|---|---|
| $name | mixed | mixed | 
inherited public extensionIsHiddenMethod ($name)
| Property | Type | Description | 
|---|---|---|
| $name | mixed | mixed | 
inherited public static getCalledExtensionClass ()
            
                            
                    inherited
                
            
            
                public
            
                        
            getConfigPath (string $fileName, mixed $configPath = null)
                            : string
                    
                    Locates a file based on it's definition. If the file starts with the ~ symbol it will be returned in context of the application base path, otherwise it will be returned in context of the config path.
| Property | Type | Description | 
|---|---|---|
| $fileName | string | string File to load. | 
| $configPath | mixed | mixed Explicitly define a config path. | 
Full path to the config file.
            
                            
                    inherited
                
            
            
                public
            
                        
            guessConfigPath (string $suffix = "")
                            : string
                    
                    Guess the package path for the called class.
| Property | Type | Description | 
|---|---|---|
| $suffix | string | string An extra path to attach to the end | 
            
                            
                    inherited
                
            
            
                public
            
                        
            guessConfigPathFrom (string $class, string $suffix = "")
                            : string
                    
                    Guess the package path from a specified class.
| Property | Type | Description | 
|---|---|---|
| $class | string | string Class to guess path from. | 
| $suffix | string | string An extra path to attach to the end | 
            
                            
                    inherited
                
            
            
                public
            
                        
            makeConfig (array $configFile = [], array $requiredConfig = [])
                            : array | stdClass
                    
                    Reads the contents of the supplied file and applies it to this object.
| Property | Type | Description | 
|---|---|---|
| $configFile | array | array | 
| $requiredConfig | array | array | 
            
                            
                    inherited
                
            
            
                public
            
                        
            makeConfigFromArray (array $configArray = [])
                            : stdClass
                    
                    Makes a config object from an array, making the first level keys properties of a new object.
| Property | Type | Description | 
|---|---|---|
| $configArray | array | array Config array. | 
The config object
inherited public mergeConfig (mixed $configA, mixed $configB) : stdClass
Merges two configuration sources, either prepared or not, and returns them as a single configuration object.
| Property | Type | Description | 
|---|---|---|
| $configA | mixed | mixed | 
| $configB | mixed | mixed | 
The config object
inherited protected extensionHideField ($name)
| Property | Type | Description | 
|---|---|---|
| $name | mixed | mixed | 
inherited protected extensionHideMethod ($name)
| Property | Type | Description | 
|---|---|---|
| $name | mixed | mixed | 
Extended by
| Class | Description | 
|---|---|
| UserPreferencesModel | User Preferences model extension, identical to System\Behaviors\SettingsModel except values are set against the logged in user's preferences via Backend\Models\UserPreference |