Form
class Form extends BaseWidget
Traits
Form Model Widget Trait
Widget Maker Trait Class
Adds event related features to any class.
Extendable Trait Allows for "Private traits"
Properties
protected array | $extensionData | from ExtendableTrait | |
static protected array | $extendableCallbacks | from ExtendableTrait | |
static protected array | $extendableStaticMethods | from ExtendableTrait | |
static protected bool | $extendableGuardProperties | from ExtendableTrait | |
static protected ClassLoader | $extendableClassLoader | from ExtendableTrait | |
$implement | from Extendable | ||
array | $vars | from ViewMaker | |
array | $viewPath | from ViewMaker | |
array | $layoutPath | from ViewMaker | |
array | $partialPath | from ViewMaker | |
string | $layout | from ViewMaker | |
bool | $suppressLayout | from ViewMaker | |
protected | $viewFileExtension | from ViewMaker | |
array | $assetPath | from AssetMaker | |
string | $configPath | from ConfigMaker | |
protected | $configFileExtension | from ConfigMaker | |
protected array | $emitterSingleEvents | from EventEmitter | |
protected array | $emitterEvents | from EventEmitter | |
protected array | $emitterEventSorted | from EventEmitter | |
protected AdminController | $controller | from BaseWidget | |
object | $config | from BaseWidget | |
string | $alias | from BaseWidget | |
protected | $defaultAlias | ||
protected | $modelsToSave | from FormModelWidget | |
array | $fields | ||
array | $tabs | ||
array | $secondaryTabs | ||
string | $activeTab | ||
Model | $model | ||
array | $data | ||
string | $context | ||
string | $arrayName | ||
protected bool | $fieldsDefined | ||
protected array | $allFields | ||
protected object | $allTabs | ||
protected array | $formWidgets | ||
string | $sessionKey | ||
bool | $previewMode | ||
protected Widgets | $widgetManager | ||
protected | $optionModelTypes |
Methods
Helper method for ::extend() static method
Clear the list of extended classes so they will be re-extended.
Normalizes the provided extension name allowing for the ClassLoader to inject aliased classes
Dynamically extend a class with a specified behavior
Extracts the available methods from a behavior and adds it to the list of callable methods.
Programmatically adds a method to the extendable class
Programatically adds a property to the extendable class
Check if extendable class is extended with a behavior object
Returns a behavior object from an extendable class, example:
Short hand for getClassExtension() method, except takes the short extension name, example:
Checks if a method exists, extension equivalent of method_exists()
Get a list of class methods, extension equivalent of get_class_methods()
Checks if a property exists, extension equivalent of property_exists()
Checks if a property is accessible, property equivalent of is_callabe()
Magic method for __call()
Magic method for __callStatic()
Makes a widget object with the supplied configuration ex. model config
Makes a form widget object with the supplied form field and widget configuration.
Retrieves key/value pair from session data.
Saves key/value pair in to session data.
Retrieves key/value pair from session temporary data.
Saves key/value pair in to session temporary data.
Guess the package path from a specified class.
Render a layout.
Render a partial file contents located in the views or partial folder.
Includes a file path using output buffering.
Locates a file based on it's definition. If the file starts with a forward slash, it will be returned in context of the application public path, otherwise it will be returned in context of the asset path.
Reads the contents of the supplied file and applies it to this object.
Reads the contents of the supplied file and applies it to this object.
Merges two configuration sources, either prepared or not, and returns them as a single configuration object.
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.
Guess the package path for the called class.
Guess the package path from a specified class.
Create a new event binding.
Create a new event binding that fires once only
Sort the listeners for a given event by priority.
Fire an event and call the listeners.
Fires a combination of local and global events. The first segment is removed from the event name locally and the local object is passed as the first argument to the event globally. Halting is also enabled by default.
Initialize the widget called by the constructor.
Renders the widget.
Ensure fields are defined and form widgets are registered so they can also be bound to the controller this allows their AJAX features to operate.
Transfers config values stored inside the $config property directly on to the root object properties.
Returns a unique ID for this widget. Useful in creating HTML markup.
Returns a fully qualified event handler name for this widget.
Get the widget configuration values.
Adds widget specific asset files.
Returns the final model and attribute name of a nested HTML array attribute.
Sets a data collection to a model attributes, relations will also be set.
Renders a single form field Options:
- useContainer: Wrap the result in a container, used by AJAX. Default: true
Prepares the form data
Sets or resets form field values.
Event handler for refreshing the form.
Programmatically add fields, used internally and for extensibility.
Add tab fields.
Programmatically remove a field.
Programmatically remove all fields belonging to a tab.
Creates a form field object from name and configuration.
Get all the loaded form widgets for the instance.
Get a specified form widget
Get all the registered fields for the instance.
Get a specified field object
Get all tab objects for the instance.
Get a specified tab object.
Parses a field's name
Looks up the field value.
Returns a HTML encoded value containing the other fields this field depends on
Helper method to determine if field should be rendered with label and comments.
Returns post data from a submitted form.
No description
No description
No description
Returns the active session key.
Returns the active context for displaying the form.
Validate the supplied form model.
Creates a flat array of form fields from the configuration.
Converts fields with a span set to 'auto' as either 'left' or 'right' depending on the previous field.
Check if a field type is a widget or not
Allow the model to filter fields.
Internal helper for method existence checks.
Variant to array_get() but preserves dots in key names.
Variant to array_set() but preserves dots in key names.
No description
Details
in
ExtendableTrait at line 55
extendableConstruct()
Constructor.
in
ExtendableTrait at line 103
static void
extendableExtendCallback(callable $callback)
Helper method for ::extend() static method
in
ExtendableTrait at line 120
static void
clearExtendedClasses()
Clear the list of extended classes so they will be re-extended.
in
ExtendableTrait at line 131
protected string
extensionNormalizeClassName(string $name)
Normalizes the provided extension name allowing for the ClassLoader to inject aliased classes
in
ExtendableTrait at line 149
void|ExtendableTrait
extendClassWith(string $extensionName)
Dynamically extend a class with a specified behavior
in
ExtendableTrait at line 178
protected void
extensionExtractMethods(string $extensionName, object $extensionObject)
Extracts the available methods from a behavior and adds it to the list of callable methods.
in
ExtendableTrait at line 206
addDynamicMethod(string $dynamicName, callable $method, string $extension = null)
Programmatically adds a method to the extendable class
in
ExtendableTrait at line 225
addDynamicProperty(string $dynamicName, string $value = null)
Programatically adds a property to the extendable class
in
ExtendableTrait at line 249
bool
isClassExtendedWith(string $name)
Check if extendable class is extended with a behavior object
in
ExtendableTrait at line 265
mixed
getClassExtension(string $name)
Returns a behavior object from an extendable class, example:
$this->getClassExtension('Admin.Actions.FormController')
in
ExtendableTrait at line 280
mixed
asExtension(string $shortName)
Short hand for getClassExtension() method, except takes the short extension name, example:
$this->asExtension('FormController')
in
ExtendableTrait at line 301
bool
methodExists(string $name)
Checks if a method exists, extension equivalent of method_exists()
in
ExtendableTrait at line 313
array
getClassMethods()
Get a list of class methods, extension equivalent of get_class_methods()
in
ExtendableTrait at line 326
array
getDynamicProperties()
Returns all dynamic properties and their values
in
ExtendableTrait at line 344
bool
propertyExists(string $name)
Checks if a property exists, extension equivalent of property_exists()
in
ExtendableTrait at line 370
protected bool
extendableIsAccessible(mixed $class, string $propertyName)
Checks if a property is accessible, property equivalent of is_callabe()
in
ExtendableTrait at line 385
string
extendableGet(string $name)
Magic method for __get()
in
ExtendableTrait at line 410
string
extendableSet(string $name, string $value)
Magic method for __set()
in
ExtendableTrait at line 444
mixed
extendableCall(string $name, array $params = null)
Magic method for __call()
in
ExtendableTrait at line 483
static mixed
extendableCallStatic(string $name, array $params = null)
Magic method for __callStatic()
in
ExtendableTrait at line 552
protected ClassLoader|null
extensionGetClassLoader()
Gets the class loader
in
BaseWidget at line 54
__construct(Controller $controller, array $config = [])
Constructor
in
Extendable at line 30
__get($name)
No description
in
Extendable at line 35
__set($name, $value)
No description
in
Extendable at line 40
__call($name, $params)
No description
in
Extendable at line 45
static
__callStatic($name, $params)
No description
in
Extendable at line 50
static
extend(callable $callback)
No description
in
WidgetMaker at line 24
BaseWidget
makeWidget(string $class, array $widgetConfig = [])
Makes a widget object with the supplied configuration ex. model config
in
WidgetMaker at line 47
BaseFormWidget
makeFormWidget(string $class, mixed $fieldConfig = [], array $widgetConfig = [])
Makes a form widget object with the supplied form field and widget configuration.
in
SessionMaker at line 17
mixed
getSession(string $key = null, string $default = null)
Retrieves key/value pair from session data.
in
SessionMaker at line 37
void
putSession(string $key, mixed $value)
Saves key/value pair in to session data.
in
SessionMaker at line 47
hasSession($key)
No description
in
SessionMaker at line 62
mixed
getTempSession(string $key = null, string $default = null)
Retrieves key/value pair from session temporary data.
in
SessionMaker at line 82
void
putTempSession(string $key, mixed $value)
Saves key/value pair in to session temporary data.
in
SessionMaker at line 92
forgetSession($key)
No description
in
SessionMaker at line 101
resetSession()
No description
in
SessionMaker at line 111
protected string
makeSessionKey()
Returns a unique session identifier for this location.
in
SessionMaker at line 119
protected
encodeSessionData($data)
No description
in
SessionMaker at line 130
protected
decodeSessionData($data)
No description
in
ViewMaker at line 50
getViewPath($view, $viewPath = null)
No description
in
ViewMaker at line 78
guessViewFileExtension($path)
No description
in
ViewMaker at line 98
string
guessViewPath(string $suffix = '', bool $isPublic = false)
Guess the package path from a specified class.
in
ViewMaker at line 119
mixed
makeLayout(string $name = null, array $vars = [], bool $throwException = true)
Render a layout.
in
ViewMaker at line 147
string
makeView(string $view)
Loads a view with the name specified.
Applies layout if its name is provided by the parent object. The view file must be situated in the views directory, and has the extension "htm" or "php".
in
ViewMaker at line 171
mixed
makePartial(string $partial, array $vars = [], bool $throwException = true)
Render a partial file contents located in the views or partial folder.
in
ViewMaker at line 199
string
makeFileContent(string $filePath, array $extraParams = [])
Includes a file path using output buffering.
Ensures that vars are available.
in
ViewMaker at line 235
compileFileContent($filePath)
No description
in
ViewMaker at line 256
protected void
handleViewException(Exception $e, int $obLevel)
Handle a view exception.
in
ViewMaker at line 271
protected array
gatherViewData($data)
Get the data bound to the view instance.
in
AssetMaker at line 15
flushAssets()
No description
in
AssetMaker at line 30
string
getAssetPath(string $fileName, string $assetPath = null)
Locates a file based on it's definition. If the file starts with a forward slash, it will be returned in context of the application public path, otherwise it will be returned in context of the asset path.
in
AssetMaker at line 55
addMeta($meta)
No description
in
AssetMaker at line 60
addJs($href, $attributes = null)
No description
in
AssetMaker at line 65
addCss($href, $attributes = null)
No description
in
ConfigMaker at line 27
array
loadConfig(array $configFile = [], array $requiredConfig = [], null $index = null)
Reads the contents of the supplied file and applies it to this object.
in
ConfigMaker at line 46
array
makeConfig(string|array $configFile, array $requiredConfig = [])
Reads the contents of the supplied file and applies it to this object.
in
ConfigMaker at line 97
array
mergeConfig($configLeft, $configRight)
Merges two configuration sources, either prepared or not, and returns them as a single configuration object.
in
ConfigMaker at line 116
string
getConfigPath(string $fileName, mixed $configPath = null)
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.
in
ConfigMaker at line 154
string
guessConfigPath(string $suffix = '')
Guess the package path for the called class.
in
ConfigMaker at line 169
string
guessConfigPathFrom(string $class, string $suffix = '')
Guess the package path from a specified class.
in
EventEmitter at line 36
EventEmitter
bindEvent(string $event, callable $callback, int $priority = 0)
Create a new event binding.
in
EventEmitter at line 52
EventEmitter
bindEventOnce(string $event, callable $callback)
Create a new event binding that fires once only
in
EventEmitter at line 66
protected void
emitterEventSortEvents(string $eventName)
Sort the listeners for a given event by priority.
in
EventEmitter at line 84
EventEmitter
unbindEvent(string $event = null)
Destroys an event binding.
in
EventEmitter at line 124
string|array
fireEvent(string $event, array $params = [], bool $halt = false)
Fire an event and call the listeners.
in
EventEmitter at line 178
mixed
fireSystemEvent(string $event, array $params = [], bool $halt = true)
Fires a combination of local and global events. The first segment is removed from the event name locally and the local object is passed as the first argument to the event globally. Halting is also enabled by default.
For example:
$this->fireSystemEvent('admin.form.myEvent', ['my value']);
Is equivalent to:
$this->fireEvent('form.myEvent', ['myvalue'], true);
Event::fire('admin.form.myEvent', [$this, 'myvalue'], true);
in
LocationAwareWidget at line 10
protected
isLocationAware($config)
No description
in
LocationAwareWidget at line 20
protected
locationApplyScope($query)
Apply location scope where required
at line 115
void
initialize()
Initialize the widget called by the constructor.
at line 172
string
render(array $options = [])
Renders the widget.
Options:
- preview: Render this form as an uneditable preview. Default: false
- useContainer: Wrap the result in a container, used by AJAX. Default: true
- section: Which form section to render. Default: null
- outside: Renders the Outside Fields section.
- primary: Renders the Primary Tabs section.
- secondary: Renders the Secondary Tabs section.
- null: Renders all sections
at line 145
void
bindToController()
Ensure fields are defined and form widgets are registered so they can also be bound to the controller this allows their AJAX features to operate.
in
BaseWidget at line 120
protected void
fillFromConfig(array $properties = null)
Transfers config values stored inside the $config property directly on to the root object properties.
in
BaseWidget at line 140
string
getId(string $suffix = null)
Returns a unique ID for this widget. Useful in creating HTML markup.
in
BaseWidget at line 162
string
getEventHandler(string $name)
Returns a fully qualified event handler name for this widget.
in
BaseWidget at line 170
getController()
Returns the controller using this widget.
in
BaseWidget at line 181
setConfig(array $config, array $required = [])
Sets the widget configuration values
in
BaseWidget at line 194
mixed
getConfig(string $name = null, mixed $default = null)
Get the widget configuration values.
at line 151
void
loadAssets()
Adds widget specific asset files.
use $this->addCss or $this->addJs
in
FormModelWidget at line 18
createFormModel()
No description
in
FormModelWidget at line 34
Model
findFormModel($recordId)
No description
in
FormModelWidget at line 62
array
resolveModelAttribute(string $attribute = null)
Returns the final model and attribute name of a nested HTML array attribute.
Eg: list($model, $attribute) = $this->resolveModelAttribute($this->valueFrom);
in
FormModelWidget at line 80
protected Relation
getRelationModel()
Returns the model of a relation type.
in
FormModelWidget at line 94
protected
getRelationObject()
No description
in
FormModelWidget at line 108
protected
getRelationType()
No description
in
FormModelWidget at line 115
protected
prepareModelsToSave($model, $saveData)
No description
in
FormModelWidget at line 132
protected void
setModelAttributes(Model $model, array $saveData)
Sets a data collection to a model attributes, relations will also be set.
at line 225
bool|string
renderField(string|array $field, array $options = [])
Renders a single form field Options:
- useContainer: Wrap the result in a container, used by AJAX. Default: true
at line 255
string|bool
renderFieldElement(BaseFormWidget $field)
Renders the HTML element for a field
at line 270
protected void
prepareVars()
Prepares the form data
at line 287
array
setFormValues(array $data = null)
Sets or resets form field values.
at line 311
array
onRefresh()
Event handler for refreshing the form.
at line 360
void
addFields(array $fields, string $addToArea = null)
Programmatically add fields, used internally and for extensibility.
at line 398
void
addTabFields(array $fields)
Add tab fields.
at line 410
bool
removeField(string $name)
Programmatically remove a field.
at line 431
removeTab(string $name)
Programmatically remove all fields belonging to a tab.
at line 449
FormField
makeFormField(string $name, array $config)
Creates a form field object from name and configuration.
at line 517
BaseFormWidget|null
makeFormFieldWidget(FormField $field)
Makes a widget object from a form field object.
at line 561
array
getFormWidgets()
Get all the loaded form widgets for the instance.
at line 573
mixed
getFormWidget(string $field)
Get a specified form widget
at line 586
array
getFields()
Get all the registered fields for the instance.
at line 598
mixed
getField(string $field)
Get a specified field object
at line 611
getTabs()
Get all tab objects for the instance.
at line 624
mixed
getTab(string $tab)
Get a specified tab object.
Options: outside, primary, secondary.
at line 640
array
getFieldName(string $field)
Parses a field's name
at line 657
string
getFieldValue(mixed $field)
Looks up the field value.
at line 686
string
getFieldDepends(FormField $field)
Returns a HTML encoded value containing the other fields this field depends on
at line 706
bool
showFieldLabels(FormField $field)
Helper method to determine if field should be rendered with label and comments.
at line 723
array
getSaveData()
Returns post data from a submitted form.
at line 772
setActiveTab($tab)
No description
at line 777
getActiveTab()
No description
at line 796
getCookieKey()
No description
at line 805
Route|mixed|string
getSessionKey()
Returns the active session key.
at line 822
string
getContext()
Returns the active context for displaying the form.
at line 832
protected mixed
validateModel()
Validate the supplied form model.
at line 850
protected void
defineFormFields()
Creates a flat array of form fields from the configuration.
Also slots fields in to their respective tabs.
at line 927
protected void
processAutoSpan($fields)
Converts fields with a span set to 'auto' as either 'left' or 'right' depending on the previous field.
at line 952
protected bool
isFormWidget(string $fieldType)
Check if a field type is a widget or not
at line 978
protected
applyFiltersFromModel()
Allow the model to filter fields.
at line 994
protected mixed
getOptionsFromModel(FormField $field, $fieldOptions)
Looks at the model for defined options.
at line 1040
protected bool
objectMethodExists(object $object, string $method)
Internal helper for method existence checks.
at line 1058
protected array|string
dataArrayGet(array $array, array $parts, null $default = null)
Variant to array_get() but preserves dots in key names.
at line 1093
protected array|string
dataArraySet(array $array, array $parts, string $value)
Variant to array_set() but preserves dots in key names.
at line 1114
protected
getSourceData()
No description