Methods summary
public
MvcCore\Ext\Form
|
#
Init( boolean $submit = FALSE )
Initialize the form, check if form is initialized or not and do it only once.
Check if any form id exists and exists only once and initialize translation
boolean for better field initializations. This is template method. To define
any fields in custom \MvcCore\Ext\Form extended class, do it in custom
extended Init() method and call parent::Init(); as first line inside
your extended Init() method.
Initialize the form, check if form is initialized or not and do it only once.
Check if any form id exists and exists only once and initialize translation
boolean for better field initializations. This is template method. To define
any fields in custom \MvcCore\Ext\Form extended class, do it in custom
extended Init() method and call parent::Init(); as first line inside
your extended Init() method.
Parameters
- $submit
TRUE if form is submitting, FALSE otherwise by default.
Returns
Throws
RuntimeException No form id property defined or Form id ... already defined.
|
public
MvcCore\Ext\Form
|
#
PreDispatch( boolean $submit = FALSE )
Prepare form and it's fields for rendering.
Prepare form and it's fields for rendering.
This function is called automatically by rendering process if necessary.
But if you need to operate with fields in your controller before rendering
with real session values and initialized session errors, you can call this
method anytime to prepare form for rendering and operate with anything inside.
- Process all defined fields and call
$field->PreDispatch(); to prepare all fields for rendering process.
- Load any possible error from session and set up errors into fields and into form object to render them properly.
- Load any possible previously submitted and/or stored values from session and set up form fields with them.
- Set initialized state to 2, which means - prepared, pre-dispatched for rendering.
Parameters
- $submit
TRUE if form is submitting, FALSE otherwise by default.
Returns
|
public
string
|
#
Translate( string $key, array $replacements = [] )
Translate given string with configured translator and configured language code.
Translate given string with configured translator and configured language code.
Parameters
- $key
- A key to translate.
- $replacements
- An array of replacements to process in translated result.
Returns
string Translated key or key itself if there is no key in translations store.
Throws
Exception En exception if translations store is not successful.
|
public
string|null
|
#
GetId( )
Get form id, required to configure.
Used to identify session data, error messages,
CSRF tokens, html form attribute id value and much more.
Get form id, required to configure.
Used to identify session data, error messages,
CSRF tokens, html form attribute id value and much more.
Returns
string|null
|
public
string|null
|
#
GetAction( )
Get form submitting URL value.
It could be relative or absolute, anything
to complete classic html form attribute action .
Get form submitting URL value.
It could be relative or absolute, anything
to complete classic html form attribute action .
Returns
string|null
|
public
string|null
|
#
GetMethod( )
Get form http submitting method. POST by default.
Use GET only if form data contains only ASCII characters.
Possible values: 'POST' | 'GET'
You can use constants:
- \MvcCore\Ext\IForm::METHOD_POST
- \MvcCore\Ext\IForm::METHOD_GET
Get form http submitting method. POST by default.
Use GET only if form data contains only ASCII characters.
Possible values: 'POST' | 'GET'
You can use constants:
- \MvcCore\Ext\IForm::METHOD_POST
- \MvcCore\Ext\IForm::METHOD_GET
Returns
string|null
|
public
string|null
|
#
GetTitle( )
Get form title, global HTML attribute, optional.
Get form title, global HTML attribute, optional.
Returns
string|null
|
public
string|null
|
#
GetEnctype( )
Get form enctype attribute - how the form values will be encoded
to send them to the server. Possible values are:
- application/x-www-form-urlencoded
By default, it means all form values will be encoded to
key1=value1&key2=value2... string.
Constant: \MvcCore\Ext\IForm::ENCTYPE_URLENCODED .
- multipart/form-data
Data will not be encoded to URL string form, this value is required,
when you are using forms that have a file upload control.
Constant: \MvcCore\Ext\IForm::ENCTYPE_MULTIPART .
- text/plain
Spaces will be converted to + symbols, but no other special
characters will be encoded.
Constant: \MvcCore\Ext\IForm::ENCTYPE_PLAINTEXT .
Get form enctype attribute - how the form values will be encoded
to send them to the server. Possible values are:
- application/x-www-form-urlencoded By default, it means all form values will be encoded to key1=value1&key2=value2... string. Constant: \MvcCore\Ext\IForm::ENCTYPE_URLENCODED .
- multipart/form-data Data will not be encoded to URL string form, this value is required, when you are using forms that have a file upload control. Constant: \MvcCore\Ext\IForm::ENCTYPE_MULTIPART .
- text/plain Spaces will be converted to + symbols, but no other special characters will be encoded. Constant: \MvcCore\Ext\IForm::ENCTYPE_PLAINTEXT .
Returns
string|null
|
public
string|null
|
#
GetTarget( )
Get form target attribute - where to display the response that is
received after submitting the form. This is a name of, or keyword for,
a browsing context (e.g. tab, window, or inline frame). Default value
is NULL to not render any <form> element target attribute.
The following keywords have special meanings:
- _self : Load the response into the same browsing context as the
current one. This value is the default if the attribute
is not specified.
- _blank : Load the response into a new unnamed browsing context.
- _parent : Load the response into the parent browsing context of
the current one. If there is no parent, this option
behaves the same way as _self .
- _top : Load the response into the top-level browsing context
(i.e. the browsing context that is an ancestor of the
current one, and has no parent). If there is no parent,
this option behaves the same way as _self .
- iframename : The response is displayed in a named <iframe> .
Get form target attribute - where to display the response that is
received after submitting the form. This is a name of, or keyword for,
a browsing context (e.g. tab, window, or inline frame). Default value
is NULL to not render any <form> element target attribute.
The following keywords have special meanings:
- _self : Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.
- _blank : Load the response into a new unnamed browsing context.
- _parent : Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as _self .
- _top : Load the response into the top-level browsing context (i.e. the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as _self .
- iframename : The response is displayed in a named <iframe> .
Returns
string|null
|
public
boolean|null
|
#
GetAutoComplete( )
Indicates whether input elements can by default have their values automatically
completed by the browser. This setting can be overridden by an autocomplete
attribute on an element belonging to the form. Possible values are:
- FALSE ('off' ): The user must explicitly enter a value into each field for
every use, or the document provides its own auto-completion
method; the browser does not automatically complete entries.
- TRUE ('on' ): The browser can automatically complete values based on
values that the user has previously entered in the form.
- NULL Do not render the attribute.
For most modern browsers setting the autocomplete attribute will not prevent
a browser's password manager from asking the user if they want to store login
fields (username and password), if the user permits the storage the browser will
autofill the login the next time the user visits the page. See The autocomplete
attribute and login fields.
Indicates whether input elements can by default have their values automatically
completed by the browser. This setting can be overridden by an autocomplete
attribute on an element belonging to the form. Possible values are:
- FALSE ('off' ): The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.
- TRUE ('on' ): The browser can automatically complete values based on values that the user has previously entered in the form.
- NULL Do not render the attribute.
For most modern browsers setting the autocomplete attribute will not prevent
a browser's password manager from asking the user if they want to store login
fields (username and password), if the user permits the storage the browser will
autofill the login the next time the user visits the page. See The autocomplete
attribute and login fields.
Returns
boolean|null
|
public
boolean|null
|
#
GetNoValidate( )
This Boolean attribute indicates that the form is not to be validated when
submitted. If this attribute is not specified (and therefore the form is
validated), this default setting can be overridden by a formnovalidate
attribute on a <button> or <input> element belonging to the form.
Only TRUE renders the form attribute.
This Boolean attribute indicates that the form is not to be validated when
submitted. If this attribute is not specified (and therefore the form is
validated), this default setting can be overridden by a formnovalidate
attribute on a <button> or <input> element belonging to the form.
Only TRUE renders the form attribute.
Returns
boolean|null
|
public
string[]
|
#
GetAcceptCharsets( )
A list of character encodings that the server accepts. The browser
uses them in the order in which they are listed. The default value,
the reserved string 'UNKNOWN' , indicates the same encoding as that
of the document containing the form element.
A list of character encodings that the server accepts. The browser
uses them in the order in which they are listed. The default value,
the reserved string 'UNKNOWN' , indicates the same encoding as that
of the document containing the form element.
Returns
string[]
|
public
string|null
|
#
GetLang( )
Get lang property to complete optional translator language argument automatically.
If you are operating in multi-language project and you want to use
translator in \MvcCore\Ext\Form , this lang property with target language code
serves to translate every visible text into target lang. Use this property
with $form->translator property.
Get lang property to complete optional translator language argument automatically.
If you are operating in multi-language project and you want to use
translator in \MvcCore\Ext\Form , this lang property with target language code
serves to translate every visible text into target lang. Use this property
with $form->translator property.
Returns
string|null
|
public
string|null
|
#
GetLocale( )
Get $form->locale , upper case locale code or NULL , usually used to create
proper validator for zip codes, currencies etc...
If you are operating in multi-language project and you want to use
in \MvcCore\Ext\Form form field validators for locale specific needs,
$form->locale property helps you to process validation functionality
with proper validator by locale code.
Get $form->locale , upper case locale code or NULL , usually used to create
proper validator for zip codes, currencies etc...
If you are operating in multi-language project and you want to use
in \MvcCore\Ext\Form form field validators for locale specific needs,
$form->locale property helps you to process validation functionality
with proper validator by locale code.
Returns
string|null
|
public
string[]
&
|
#
GetCssClasses( )
Get form field HTML element css classes strings as array.
Default value is an empty array to not render HTML class attribute.
Get form field HTML element css classes strings as array.
Default value is an empty array to not render HTML class attribute.
Returns
string[]
|
public
array
&
|
#
GetAttributes( )
Get form html element additional attributes.
To add any other attribute for html <form> element,
set here key/value array, keys will be used as attribute names,
values as attribute values, simple. All previously configured additional
attributes will be replaced by given attributes to this function.
Get form html element additional attributes.
To add any other attribute for html <form> element,
set here key/value array, keys will be used as attribute names,
values as attribute values, simple. All previously configured additional
attributes will be replaced by given attributes to this function.
Returns
array
|
public
string|null
|
#
GetSuccessUrl( )
Get form success submit URL string to redirect after, relative or absolute,
to specify, where to redirect user after form has been submitted successfully.
It's required to use \MvcCore\Ext\Form like this, if you want to use method
$form->SubmittedRedirect(); , at the end of custom Submit() method implementation,
you need to specify at least success and error URL strings.
Get form success submit URL string to redirect after, relative or absolute,
to specify, where to redirect user after form has been submitted successfully.
It's required to use \MvcCore\Ext\Form like this, if you want to use method
$form->SubmittedRedirect(); , at the end of custom Submit() method implementation,
you need to specify at least success and error URL strings.
Returns
string|null
|
public
string|null
|
#
GetPrevStepUrl( )
Get form success submit previous step URL string, relative or absolute, to specify,
where to redirect user after form has been submitted successfully and submit button
will be recognized as submit type to switch form result property $form->result to value 2 .
Which means "previous step" redirection after successful submit. This functionality
to switch result value to 2 is up to you. This field is designed only for you as empty.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
and you want to go to "previous step" by one submit button or stay in the same page by
another submit button, this is very good and comfortable pattern.
Get form success submit previous step URL string, relative or absolute, to specify,
where to redirect user after form has been submitted successfully and submit button
will be recognized as submit type to switch form result property $form->result to value 2 .
Which means "previous step" redirection after successful submit. This functionality
to switch result value to 2 is up to you. This field is designed only for you as empty.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
and you want to go to "previous step" by one submit button or stay in the same page by
another submit button, this is very good and comfortable pattern.
Returns
string|null
|
public
string|null
|
#
GetNextStepUrl( )
Get form success submit next step URL string, relative or absolute, to specify,
where to redirect user after form has been submitted successfully and submit button
will be recognized as submit type to switch form result property $form->result to value 3 .
Which means "next step" redirection after successful submit. This functionality
to switch result value to 3 is up to you. This field is designed only for you as empty.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
and you want to go to "next step" by one submit button or stay in the same page by
another submit button, this is very good and comfortable pattern.
Get form success submit next step URL string, relative or absolute, to specify,
where to redirect user after form has been submitted successfully and submit button
will be recognized as submit type to switch form result property $form->result to value 3 .
Which means "next step" redirection after successful submit. This functionality
to switch result value to 3 is up to you. This field is designed only for you as empty.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
and you want to go to "next step" by one submit button or stay in the same page by
another submit button, this is very good and comfortable pattern.
Returns
string|null
|
public
string|null
|
#
GetErrorUrl( )
Get form error submit URL string, relative or absolute, to specify,
where to redirect user after has not been submitted successfully.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
you need to specify at least success and error URL strings.
Get form error submit URL string, relative or absolute, to specify,
where to redirect user after has not been submitted successfully.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
you need to specify at least success and error URL strings.
Returns
string|null
|
public
integer|null
|
#
GetResult( )
Get form submit result state. Submit could have two basic values (or three values - for next step):
NULL - No Submit() method has been called yet. Call $form->Submit(); before.
0 - Submit has errors. User will be redirected after submit to error url.
\MvcCore\Ext\Form::RESULT_ERRORS
1 - Submit was successful. User will be redirected after submit to success url.
\MvcCore\Ext\Form::RESULT_SUCCESS
2 - Submit was successful. User will be redirected after submit to next step url.
\MvcCore\Ext\IForm::RESULT_NEXT_PAGE
Get form submit result state. Submit could have two basic values (or three values - for next step):
NULL - No Submit() method has been called yet. Call $form->Submit(); before.
0 - Submit has errors. User will be redirected after submit to error url. \MvcCore\Ext\Form::RESULT_ERRORS
1 - Submit was successful. User will be redirected after submit to success url. \MvcCore\Ext\Form::RESULT_SUCCESS
2 - Submit was successful. User will be redirected after submit to next step url. \MvcCore\Ext\IForm::RESULT_NEXT_PAGE
Returns
integer|null
|
public
callable|null
|
#
GetTranslator( )
Get translator to translate field labels, options, placeholders and error messages.
Translator has to be callable (it could be closure function or array
with class_name/instance and method name string). First argument
of callable has to be a translation key and second argument
has to be array with numeric replacements to replace them in translated value.
Result of callable object has to be a string - translated key for called language.
Get translator to translate field labels, options, placeholders and error messages.
Translator has to be callable (it could be closure function or array
with class_name/instance and method name string). First argument
of callable has to be a translation key and second argument
has to be array with numeric replacements to replace them in translated value.
Result of callable object has to be a string - translated key for called language.
Returns
callable|null
|
public
boolean
|
#
GetTranslate( )
Get internal flag to quickly know if form fields will be translated or not.
Automatically completed to TRUE if $form->translator is not NULL and also if
$form->translator is callable . FALSE otherwise. Default value is FALSE .
Get internal flag to quickly know if form fields will be translated or not.
Automatically completed to TRUE if $form->translator is not NULL and also if
$form->translator is callable . FALSE otherwise. Default value is FALSE .
Returns
boolean
|
public
boolean
|
#
GetDefaultRequired( )
Get default switch how to set every form control to be required by default.
If you define directly any control to NOT be required, it will NOT be required.
This is only value used as DEFAULT VALUE for form fields, not to strictly define
required flag value in controls. Default value is FALSE .
Get default switch how to set every form control to be required by default.
If you define directly any control to NOT be required, it will NOT be required.
This is only value used as DEFAULT VALUE for form fields, not to strictly define
required flag value in controls. Default value is FALSE .
Returns
boolean
|
public
array
&
|
#
GetValues( )
Get multiple fields values as key/value array.
Get multiple fields values as key/value array.
Returns
array
|
public
array
&
|
#
GetErrors( )
Get all form errors. Returned collection is array with arrays.
Every array in collection have first item as error message
string and second argument (optional) as field name string or
array with field names strings, where error happened.
Get all form errors. Returned collection is array with arrays.
Every array in collection have first item as error message
string and second argument (optional) as field name string or
array with field names strings, where error happened.
Returns
array
|
public
integer|null
|
#
GetSessionExpiration( )
Get session expiration in seconds. Default value is zero seconds (0 ).
Zero value (0 ) means "until the browser is closed" if there is
no higher namespace expiration in any other session namespace.
If there is found any autorization service and authenticated user,
default value is set by authorization expiration time.
Get session expiration in seconds. Default value is zero seconds (0 ).
Zero value (0 ) means "until the browser is closed" if there is
no higher namespace expiration in any other session namespace.
If there is found any autorization service and authenticated user,
default value is set by authorization expiration time.
Returns
integer|null
|
public
integer|null
|
#
GetBaseTabIndex( )
Get base tab-index value for every field in form, which has defined tab-index value (different from NULL ).
This value could move tab-index values for each field into higher or lower values by needs,
where is form currently rendered.
Get base tab-index value for every field in form, which has defined tab-index value (different from NULL ).
This value could move tab-index values for each field into higher or lower values by needs,
where is form currently rendered.
Returns
integer|null
|
public
integer
|
#
GetFieldNextAutoTabIndex( )
This method is INTERNAL, used by fields in pre-dispatch rendering moment.
This method returns next automatic tab-index value for field.
This method is INTERNAL, used by fields in pre-dispatch rendering moment.
This method returns next automatic tab-index value for field.
Returns
integer
|
public
string
|
#
GetDefaultFieldsRenderMode( )
Get default control/label rendering mode for each form control/label.
Default values is string normal , it means label will be rendered
before control, only label for checkbox and radio button will be
rendered after control.
Get default control/label rendering mode for each form control/label.
Default values is string normal , it means label will be rendered
before control, only label for checkbox and radio button will be
rendered after control.
Returns
string
|
public
string
|
#
GetErrorsRenderMode( )
Get errors rendering mode, by default configured as string: all-together .
It means all errors are rendered naturally at form begin together in one HTML div.errors element.
If you are using custom template for form - you have to call after form beginning: echo $this->RenderErrors();
to get all errors into template.
Get errors rendering mode, by default configured as string: all-together .
It means all errors are rendered naturally at form begin together in one HTML div.errors element.
If you are using custom template for form - you have to call after form beginning: echo $this->RenderErrors();
to get all errors into template.
Returns
string
|
public
string|boolean|null
|
#
GetViewScript( )
Get custom form view script relative path without .phtml extension.
View script could be TRUE /FALSE to render or not form by view script name
completed automatically with form id and configured view extension (.phtml) or explicit
relative view script path defined by string. Automatically completed form view
script path and also explicitly defined form view script path by string are
located in directory /App/Views/Forms by default. If you want to change this
base directory - use \MvcCore\Ext\Forms\View::SetFormsDir(); static method.
Get custom form view script relative path without .phtml extension.
View script could be TRUE /FALSE to render or not form by view script name
completed automatically with form id and configured view extension (.phtml) or explicit
relative view script path defined by string. Automatically completed form view
script path and also explicitly defined form view script path by string are
located in directory /App/Views/Forms by default. If you want to change this
base directory - use \MvcCore\Ext\Forms\View::SetFormsDir(); static method.
Returns
string|boolean|null
|
public
string
|
#
GetViewClass( )
Get form custom template full class name to create custom view object.
Default value is \MvcCore\Ext\Forms\View extended from \MvcCore\View .
Get form custom template full class name to create custom view object.
Default value is \MvcCore\Ext\Forms\View extended from \MvcCore\View .
Returns
string
|
public
array
&
|
#
GetJsSupportFiles( )
Get supporting javascript files configuration.
Every record in returned array is an array with:
0 - string - Supporting javascript file relative path from protected \MvcCore\Ext\Form::$jsAssetsRootDir .
1 - string - Supporting javascript full class name inside supporting file.
2 - array - Supporting javascript constructor params.
Get supporting javascript files configuration.
Every record in returned array is an array with: 0 - string - Supporting javascript file relative path from protected \MvcCore\Ext\Form::$jsAssetsRootDir . 1 - string - Supporting javascript full class name inside supporting file. 2 - array - Supporting javascript constructor params.
Returns
array
|
public
array
&
|
#
GetCssSupportFiles( )
Get supporting css files configuration, an array with supporting
css file relative paths from protected \MvcCore\Ext\Form::$cssAssetsRootDir .
Get supporting css files configuration, an array with supporting
css file relative paths from protected \MvcCore\Ext\Form::$cssAssetsRootDir .
Returns
array
|
public
callable|null
|
#
GetJsSupportFilesRenderer( )
Get javascript support files external renderer. Given callable has
to accept first argument to be \SplFileInfo about external javascript
supporting file. Javascript renderer must add given supporting javascript
file into HTML only once.
Get javascript support files external renderer. Given callable has
to accept first argument to be \SplFileInfo about external javascript
supporting file. Javascript renderer must add given supporting javascript
file into HTML only once.
Returns
callable|null
|
public
callable|null
|
#
GetCssSupportFilesRenderer( )
Get css support files external renderer. Given callable has
to accept first argument to be \SplFileInfo about external css
supporting file. Css renderer must add given supporting css
file into HTML only once.
Get css support files external renderer. Given callable has
to accept first argument to be \SplFileInfo about external css
supporting file. Css renderer must add given supporting css
file into HTML only once.
Returns
callable|null
|
public
boolean
|
#
GetFormTagRenderingStatus( )
This is INTERNAL method for rendering fields.
Value TRUE means <form> tag is currently rendered inside, FALSE otherwise.
This is INTERNAL method for rendering fields.
Value TRUE means <form> tag is currently rendered inside, FALSE otherwise.
Returns
boolean
|
public
integer|null
|
#
GetPhpIniSizeLimit( string $iniVarName )
Get PHP data limit as integer value by given
PHP INI variable name. Return NULL for empty
or non-existing values.
Get PHP data limit as integer value by given
PHP INI variable name. Return NULL for empty
or non-existing values.
Parameters
Returns
integer|null
|
public static
string
|
#
ConvertBytesIntoHumanForm( integer $bytes, integer $precision = 1 )
Converts a long integer of bytes into a readable format e.g KB, MB, GB, TB, YB.
Converts a long integer of bytes into a readable format e.g KB, MB, GB, TB, YB.
Parameters
- $bytes
- The number of bytes.
- $precision
- Default
1 .
Returns
string
|
public static
integer
|
#
ConvertBytesFromHumanForm( string $humanValue )
Converts readable bytes format e.g KB, MB, GB, TB, YB into long integer of bytes.
Converts readable bytes format e.g KB, MB, GB, TB, YB into long integer of bytes.
Parameters
- $humanValue
- Readable bytes format e.g KB, MB, GB, TB, YB.
Returns
integer
|
public static
string|null
|
#
GetJsSupportFilesRootDir( )
Get MvcCore Form javascript support files root directory.
After \MvcCore\Ext\Form instance is created, this value is completed to library internal
assets directory. If you want to create any custom field with custom javascript file(s),
you can do it by loading github package mvccore/form-js to your custom directory,
you have to create there any other custom javascript support file for any custom field
and change this property value to that javascripts directory. All supporting javascripts
for \MvcCore\Ext\Form fields will be loaded now from there.
Get MvcCore Form javascript support files root directory.
After \MvcCore\Ext\Form instance is created, this value is completed to library internal
assets directory. If you want to create any custom field with custom javascript file(s),
you can do it by loading github package mvccore/form-js to your custom directory,
you have to create there any other custom javascript support file for any custom field
and change this property value to that javascripts directory. All supporting javascripts
for \MvcCore\Ext\Form fields will be loaded now from there.
Returns
string|null
|
public static
string|null
|
#
GetCssSupportFilesRootDir( )
Get MvcCore Form css support files root directory.
After \MvcCore\Ext\Form instance is created, this value is completed to library internal
assets directory. If you want to create any custom field with custom css file(s),
you can do it by creating an empty directory somewhere, by copying every css file from
library assets directory into it, by creating any other custom css for any custom field
and by change this property value to that directory. All supporting css for \MvcCore\Ext\Form
fields will be loaded now from there.
Get MvcCore Form css support files root directory.
After \MvcCore\Ext\Form instance is created, this value is completed to library internal
assets directory. If you want to create any custom field with custom css file(s),
you can do it by creating an empty directory somewhere, by copying every css file from
library assets directory into it, by creating any other custom css for any custom field
and by change this property value to that directory. All supporting css for \MvcCore\Ext\Form
fields will be loaded now from there.
Returns
string|null
|
public static
string[]
|
#
GetValidatorsNamespaces( )
Get form validators base namespaces to create validator instance by it's class name.
Validator will be created by class existence in this namespaces order.
Get form validators base namespaces to create validator instance by it's class name.
Validator will be created by class existence in this namespaces order.
Returns
string[]
|
public static
MvcCore\Ext\Form
|
#
GetById( string $formId )
Get form instance by form id string.
If no form instance found, thrown an RuntimeException .
Get form instance by form id string.
If no form instance found, thrown an RuntimeException .
Parameters
Returns
Throws
RuntimeException
|
public static
MvcCore\Ext\Forms\Field
|
#
GetAutoFocusedFormField( )
Get form field instance with defined autofocus boolean attribute.
If there is no field in any form with this attribute, return NULL .
Get form field instance with defined autofocus boolean attribute.
If there is no field in any form with this attribute, return NULL .
Returns
|
public
MvcCore\Ext\Form
|
#
SetId( string $id )
Set form id, required to configure.
Used to identify session data, error messages,
CSRF tokens, html form attribute id value and much more.
Set form id, required to configure.
Used to identify session data, error messages,
CSRF tokens, html form attribute id value and much more.
Parameters
Returns
Requires
|
public
MvcCore\Ext\Form
|
#
SetAction( string|null $url = NULL )
Set form submitting URL value.
It could be relative or absolute, anything
to complete classic html form attribute action .
Set form submitting URL value.
It could be relative or absolute, anything
to complete classic html form attribute action .
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetMethod( string $method = \MvcCore\Ext\IForm::METHOD_POST )
Set form http submitting method.POST by default.
Use GET only if form data contains only ASCII characters.
Possible values: 'POST' | 'GET'
You can use constants:
- \MvcCore\Ext\IForm::METHOD_POST
- \MvcCore\Ext\IForm::METHOD_GET
Set form http submitting method.POST by default.
Use GET only if form data contains only ASCII characters.
Possible values: 'POST' | 'GET'
You can use constants:
- \MvcCore\Ext\IForm::METHOD_POST
- \MvcCore\Ext\IForm::METHOD_GET
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetTitle( string|null $title, boolean|null $translateTitle = NULL )
Set form title, global HTML attribute, optional.
Set form title, global HTML attribute, optional.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetEnctype( string $enctype = \MvcCore\Ext\IForm::ENCTYPE_URLENCODED )
Set form enctype attribute - how the form values will be encoded
to send them to the server. Possible values are:
- application/x-www-form-urlencoded
By default, it means all form values will be encoded to
key1=value1&key2=value2... string.
Constant: \MvcCore\Ext\IForm::ENCTYPE_URLENCODED .
- multipart/form-data
Data will not be encoded to URL string form, this value is required,
when you are using forms that have a file upload control.
Constant: \MvcCore\Ext\IForm::ENCTYPE_MULTIPART .
- text/plain
Spaces will be converted to + symbols, but no other special
characters will be encoded.
Constant: \MvcCore\Ext\IForm::ENCTYPE_PLAINTEXT .
Set form enctype attribute - how the form values will be encoded
to send them to the server. Possible values are:
- application/x-www-form-urlencoded By default, it means all form values will be encoded to key1=value1&key2=value2... string. Constant: \MvcCore\Ext\IForm::ENCTYPE_URLENCODED .
- multipart/form-data Data will not be encoded to URL string form, this value is required, when you are using forms that have a file upload control. Constant: \MvcCore\Ext\IForm::ENCTYPE_MULTIPART .
- text/plain Spaces will be converted to + symbols, but no other special characters will be encoded. Constant: \MvcCore\Ext\IForm::ENCTYPE_PLAINTEXT .
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetTarget( $target = '_self' )
Set form target attribute - where to display the response that is
received after submitting the form. This is a name of, or keyword for,
a browsing context (e.g. tab, window, or inline frame). Default value
is NULL to not render any <form> element target attribute.
The following keywords have special meanings:
- _self : Load the response into the same browsing context as the
current one. This value is the default if the attribute
is not specified.
- _blank : Load the response into a new unnamed browsing context.
- _parent : Load the response into the parent browsing context of
the current one. If there is no parent, this option
behaves the same way as _self .
- _top : Load the response into the top-level browsing context
(i.e. the browsing context that is an ancestor of the
current one, and has no parent). If there is no parent,
this option behaves the same way as _self .
- iframename : The response is displayed in a named <iframe> .
Set form target attribute - where to display the response that is
received after submitting the form. This is a name of, or keyword for,
a browsing context (e.g. tab, window, or inline frame). Default value
is NULL to not render any <form> element target attribute.
The following keywords have special meanings:
- _self : Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.
- _blank : Load the response into a new unnamed browsing context.
- _parent : Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as _self .
- _top : Load the response into the top-level browsing context (i.e. the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as _self .
- iframename : The response is displayed in a named <iframe> .
Returns
|
public
MvcCore\Ext\Form
|
#
SetAutoComplete( boolean|string $autoComplete = FALSE )
Indicates whether input elements can by default have their values automatically
completed by the browser. This setting can be overridden by an autocomplete
attribute on an element belonging to the form. Possible values are:
- 'off' | FALSE :The user must explicitly enter a value into each field for
every use, or the document provides its own auto-completion
method; the browser does not automatically complete entries.
- 'on' | TRUE: The browser can automatically complete values based on
values that the user has previously entered in the form.
- NULL` Do not render the attribute.
For most modern browsers setting the autocomplete attribute will not prevent
a browser's password manager from asking the user if they want to store login
fields (username and password), if the user permits the storage the browser will
autofill the login the next time the user visits the page. See The autocomplete
attribute and login fields.
Indicates whether input elements can by default have their values automatically
completed by the browser. This setting can be overridden by an autocomplete
attribute on an element belonging to the form. Possible values are:
- 'off' | FALSE :The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.
- 'on' | TRUE: The browser can automatically complete values based on values that the user has previously entered in the form.
- NULL` Do not render the attribute.
For most modern browsers setting the autocomplete attribute will not prevent
a browser's password manager from asking the user if they want to store login
fields (username and password), if the user permits the storage the browser will
autofill the login the next time the user visits the page. See The autocomplete
attribute and login fields.
Parameters
- $autoComplete
- Possible values are
'on' | TRUE | 'off' | FALSE | NULL .
Returns
See
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-autocomplete
|
public
MvcCore\Ext\Form
|
#
SetNoValidate( boolean|null $noValidate = TRUE )
This Boolean attribute indicates that the form is not to be validated when
submitted. If this attribute is not specified (and therefore the form is
validated), this default setting can be overridden by a formnovalidate
attribute on a <button> or <input> element belonging to the form.
This Boolean attribute indicates that the form is not to be validated when
submitted. If this attribute is not specified (and therefore the form is
validated), this default setting can be overridden by a formnovalidate
attribute on a <button> or <input> element belonging to the form.
Parameters
- $noValidate
- Only
TRUE renders the form attribute.
Returns
|
public
MvcCore\Ext\Form
|
#
SetAcceptCharsets( string[] $acceptCharsets = [] )
A list of character encodings that the server accepts. The browser
uses them in the order in which they are listed. The default value,
the reserved string 'UNKNOWN' , indicates the same encoding as that
of the document containing the form element. Any previously configured
accept charset(s) will be replaced by given array. If you want only to
add another charset, use method: $form->AddAcceptCharset() instead.
A list of character encodings that the server accepts. The browser
uses them in the order in which they are listed. The default value,
the reserved string 'UNKNOWN' , indicates the same encoding as that
of the document containing the form element. Any previously configured
accept charset(s) will be replaced by given array. If you want only to
add another charset, use method: $form->AddAcceptCharset() instead.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetLang( string|null $lang = NULL )
Set lang property to complete optional translator language argument automatically.
If you are operating in multi-language project and you want to use
translator in \MvcCore\Ext\Form , set this lang property to target language code
you want to translate every visible text into target language. Use this property
with $form->translator property.
Set lang property to complete optional translator language argument automatically.
If you are operating in multi-language project and you want to use
translator in \MvcCore\Ext\Form , set this lang property to target language code
you want to translate every visible text into target language. Use this property
with $form->translator property.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetLocale( string|null $locale = NULL )
Set $form->locale , usually used to create proper validator for zip codes, currencies etc...
If you are operating in multi-language project and you want to use
in \MvcCore\Ext\Form form field validators for locale specific needs,
$form->locale property helps you to process validation functionality
with proper validator by locale code.
Set $form->locale , usually used to create proper validator for zip codes, currencies etc...
If you are operating in multi-language project and you want to use
in \MvcCore\Ext\Form form field validators for locale specific needs,
$form->locale property helps you to process validation functionality
with proper validator by locale code.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetCssClasses( string|string[] $cssClasses )
Set form HTML element css classes strings.
All previously defined css classes will be removed.
Default value is an empty array to not render HTML class attribute.
You can define css classes as single string, more classes separated
by space or you can define css classes as array with strings.
Set form HTML element css classes strings.
All previously defined css classes will be removed.
Default value is an empty array to not render HTML class attribute.
You can define css classes as single string, more classes separated
by space or you can define css classes as array with strings.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetAttributes( array $attributes = [] )
Set form html element additional attributes.
To add any other attribute for html <form> element,
set here key/value array, keys will be used as attribute names,
values as attribute values, simple. All previously configured additional
attributes will be replaced by given attributes to this function.
Set form html element additional attributes.
To add any other attribute for html <form> element,
set here key/value array, keys will be used as attribute names,
values as attribute values, simple. All previously configured additional
attributes will be replaced by given attributes to this function.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetSuccessUrl( string|null $url = NULL )
Set form success submit URL string to redirect after, relative or absolute,
to specify, where to redirect user after form has been submitted successfully.
It's required to use \MvcCore\Ext\Form like this, if you want to use method
$form->SubmittedRedirect(); , at the end of custom Submit() method implementation,
you need to specify at least success and error URL strings.
Set form success submit URL string to redirect after, relative or absolute,
to specify, where to redirect user after form has been submitted successfully.
It's required to use \MvcCore\Ext\Form like this, if you want to use method
$form->SubmittedRedirect(); , at the end of custom Submit() method implementation,
you need to specify at least success and error URL strings.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetPrevStepUrl( string|null $url = NULL )
Set form success submit previous step URL string, relative or absolute, to specify,
where to redirect user after form has been submitted successfully and submit button
will be recognized as submit type to switch form result property $form->result to value 2 .
Which means "previous step" redirection after successful submit. This functionality
to switch result value to 2 is up to you. This field is designed only for you as empty.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
and you want to go to "previous step" by one submit button or stay in the same page by
another submit button, this is very good and comfortable pattern.
Set form success submit previous step URL string, relative or absolute, to specify,
where to redirect user after form has been submitted successfully and submit button
will be recognized as submit type to switch form result property $form->result to value 2 .
Which means "previous step" redirection after successful submit. This functionality
to switch result value to 2 is up to you. This field is designed only for you as empty.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
and you want to go to "previous step" by one submit button or stay in the same page by
another submit button, this is very good and comfortable pattern.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetNextStepUrl( string|null $url = NULL )
Set form success submit next step URL string, relative or absolute, to specify,
where to redirect user after form has been submitted successfully and submit button
will be recognized as submit type to switch form result property $form->result to value 3 .
Which means "next step" redirection after successful submit. This functionality
to switch result value to 3 is up to you. This field is designed only for you as empty.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
and you want to go to "next step" by one submit button or stay in the same page by
another submit button, this is very good and comfortable pattern.
Set form success submit next step URL string, relative or absolute, to specify,
where to redirect user after form has been submitted successfully and submit button
will be recognized as submit type to switch form result property $form->result to value 3 .
Which means "next step" redirection after successful submit. This functionality
to switch result value to 3 is up to you. This field is designed only for you as empty.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
and you want to go to "next step" by one submit button or stay in the same page by
another submit button, this is very good and comfortable pattern.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetErrorUrl( string|null $url = NULL )
Set form error submit URL string, relative or absolute, to specify,
where to redirect user after has not been submitted successfully.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
you need to specify at least success and error URL strings.
Set form error submit URL string, relative or absolute, to specify,
where to redirect user after has not been submitted successfully.
It's not required to use \MvcCore\Ext\Form like this, but if you want to use method
$form->SubmittedRedirect(); at the end of custom Submit() method implementation,
you need to specify at least success and error URL strings.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetResult( integer|null $result = \MvcCore\Ext\IForm::RESULT_SUCCESS )
Set form submit result state. Submit could have two basic values (or three values - for next step):
NULL - No Submit() method has been called yet.
0 - Submit has errors. User will be redirected after submit to error url.
\MvcCore\Ext\Form::RESULT_ERRORS
1 - Submit was successful. User will be redirected after submit to success url.
\MvcCore\Ext\Form::RESULT_SUCCESS
2 - Submit was successful. User will be redirected after submit to next step url.
\MvcCore\Ext\IForm::RESULT_NEXT_PAGE
Set form submit result state. Submit could have two basic values (or three values - for next step):
NULL - No Submit() method has been called yet.
0 - Submit has errors. User will be redirected after submit to error url. \MvcCore\Ext\Form::RESULT_ERRORS
1 - Submit was successful. User will be redirected after submit to success url. \MvcCore\Ext\Form::RESULT_SUCCESS
2 - Submit was successful. User will be redirected after submit to next step url. \MvcCore\Ext\IForm::RESULT_NEXT_PAGE
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetTranslator( callable $translator = NULL )
Set translator to translate field labels, options, placeholders and error messages.
Translator has to be callable (it could be closure function or array
with class_name/instance and method name string). First argument
of callable has to be a translation key and second argument
has to be array with numeric replacements to replace them in translated value.
Result of callable object has to be a string - translated key for called language.
Set translator to translate field labels, options, placeholders and error messages.
Translator has to be callable (it could be closure function or array
with class_name/instance and method name string). First argument
of callable has to be a translation key and second argument
has to be array with numeric replacements to replace them in translated value.
Result of callable object has to be a string - translated key for called language.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetDefaultRequired( boolean $defaultRequired = TRUE )
Set default switch how to set every form control to be required by default.
If you define directly any control to NOT be required, it will NOT be required.
This is only value used as DEFAULT VALUE for form fields, not to strictly define
required flag value in controls. Default value is FALSE .
Set default switch how to set every form control to be required by default.
If you define directly any control to NOT be required, it will NOT be required.
This is only value used as DEFAULT VALUE for form fields, not to strictly define
required flag value in controls. Default value is FALSE .
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetValues( array $values = [], boolean $caseInsensitive = FALSE, boolean $clearPreviousSessionValues = FALSE )
Set multiple fields values by key/value array.
For each key in $values array, this method try to find form field
with the same name. Only data with existing fields by keys are setted into field values.
Values are assigned into fields by keys in case sensitive mode by default.
Set multiple fields values by key/value array.
For each key in $values array, this method try to find form field
with the same name. Only data with existing fields by keys are setted into field values.
Values are assigned into fields by keys in case sensitive mode by default.
Parameters
- $values
- Key value array with keys as field names and values for fields.
- $caseInsensitive
- If
TRUE , set up values from $values with keys in case insensitive mode.
- $clearPreviousSessionValues
- If
TRUE , clear all previous data records for this form from session.
Returns
|
public
MvcCore\Ext\Form
|
#
SetErrors( array $errorsCollection = [] )
Set all form errors. This method is very dangerous, it replace
all previously added form errors with given collection.
If you want only to add form error, use method:
$form->AddError($errorMsg, $fieldNames = NULL); instead.
First param $errorsCollection has to be array with arrays.
Every array in collection must have first item as error message
string and second argument (optional) as field name string or
array with field names strings where error happened.
Set all form errors. This method is very dangerous, it replace
all previously added form errors with given collection.
If you want only to add form error, use method:
$form->AddError($errorMsg, $fieldNames = NULL); instead.
First param $errorsCollection has to be array with arrays.
Every array in collection must have first item as error message
string and second argument (optional) as field name string or
array with field names strings where error happened.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetSessionExpiration( $seconds = 0 )
Set session expiration in seconds. Default value is zero seconds (0 ).
Zero value (0 ) means "until the browser is closed" if there is
no higher namespace expiration in any other session namespace.
If there is found any autorization service and authenticated user,
default value is set by authorization expiration time.
Set session expiration in seconds. Default value is zero seconds (0 ).
Zero value (0 ) means "until the browser is closed" if there is
no higher namespace expiration in any other session namespace.
If there is found any autorization service and authenticated user,
default value is set by authorization expiration time.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetBaseTabIndex( $baseTabIndex = 0 )
Set base tab-index value for every field in form, which has defined tab-index value (different from NULL ).
This value could move tab-index values for each field into higher or lower values by needs,
where is form currently rendered.
Set base tab-index value for every field in form, which has defined tab-index value (different from NULL ).
This value could move tab-index values for each field into higher or lower values by needs,
where is form currently rendered.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetDefaultFieldsRenderMode( string $defaultFieldsRenderMode = \MvcCore\Ext\IForm::FIELD_RENDER_MODE_NORMAL )
Set default control/label rendering mode for each form control/label.
Default values is string normal , it means label will be rendered
before control, only label for checkbox and radio button will be
rendered after control.
Set default control/label rendering mode for each form control/label.
Default values is string normal , it means label will be rendered
before control, only label for checkbox and radio button will be
rendered after control.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetErrorsRenderMode( string $errorsRenderMode = \MvcCore\Ext\IForm::ERROR_RENDER_MODE_ALL_TOGETHER )
Set errors rendering mode, by default configured as string: all-together .
It means all errors are rendered naturally at form begin together in one HTML div.errors element.
If you are using custom template for form - you have to call after form beginning: echo $this->RenderErrors();
to get all errors into template.
Set errors rendering mode, by default configured as string: all-together .
It means all errors are rendered naturally at form begin together in one HTML div.errors element.
If you are using custom template for form - you have to call after form beginning: echo $this->RenderErrors();
to get all errors into template.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetViewScript( boolean|string|null $boolOrViewScriptPath = NULL )
Set custom form view script relative path without .phtml extension.
View script could be TRUE to render form by view script name completed
automatically with form id and configured view extension (.phtml) or explicit
relative view script path defined by string. Automatically completed form view
script path and also explicitly defined form view script path by string are
located in directory /App/Views/Forms by default. If you want to change this
base directory - use \MvcCore\Ext\Forms\View::SetFormsDir(); static method.
Set custom form view script relative path without .phtml extension.
View script could be TRUE to render form by view script name completed
automatically with form id and configured view extension (.phtml) or explicit
relative view script path defined by string. Automatically completed form view
script path and also explicitly defined form view script path by string are
located in directory /App/Views/Forms by default. If you want to change this
base directory - use \MvcCore\Ext\Forms\View::SetFormsDir(); static method.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetViewClass( string $viewClass = '\\MvcCore\\Ext\\Forms\\View' )
Set form custom template full class name to create custom view object.
Default value is \MvcCore\Ext\Forms\View extended from \MvcCore\View .
Set form custom template full class name to create custom view object.
Default value is \MvcCore\Ext\Forms\View extended from \MvcCore\View .
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetJsSupportFiles( array $jsRelPathsClassNamesAndParams = [] )
Set supporting javascript files configuration. This method is dangerous,
It removes all previously, automatically configured javascript support files.
If you want only to add javascript support file, call method:
$form->AddJsSupportFile($jsRelativePath, $jsClassName, $constructorParams); instead.
Every record in given $jsPathsClassNamesAndParams array has to be defined as array with:
0 - string - Supporting javascript file relative path from protected \MvcCore\Ext\Form::$jsAssetsRootDir .
1 - string - Supporting javascript full class name inside supporting file.
2 - array - Supporting javascript constructor params.
Set supporting javascript files configuration. This method is dangerous,
It removes all previously, automatically configured javascript support files.
If you want only to add javascript support file, call method:
$form->AddJsSupportFile($jsRelativePath, $jsClassName, $constructorParams); instead.
Every record in given $jsPathsClassNamesAndParams array has to be defined as array with: 0 - string - Supporting javascript file relative path from protected \MvcCore\Ext\Form::$jsAssetsRootDir . 1 - string - Supporting javascript full class name inside supporting file. 2 - array - Supporting javascript constructor params.
Parameters
- $jsRelPathsClassNamesAndParams
- $jsFilesClassesAndConstructorParams
Returns
|
public
MvcCore\Ext\Form
|
#
SetCssSupportFiles( array $cssRelativePaths = [] )
Set supporting css files configuration. This method is dangerous,
It removes all previously, automatically configured css support files.
If you want only to add css support file, call method:
$form->AddCssSupportFile($cssRelativePath); instead.
Given $cssRelativePaths has to be array with supporting css file relative
paths from protected \MvcCore\Ext\Form::$cssAssetsRootDir .
Set supporting css files configuration. This method is dangerous,
It removes all previously, automatically configured css support files.
If you want only to add css support file, call method:
$form->AddCssSupportFile($cssRelativePath); instead.
Given $cssRelativePaths has to be array with supporting css file relative
paths from protected \MvcCore\Ext\Form::$cssAssetsRootDir .
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetJsSupportFilesRenderer( callable $jsSupportFilesRenderer )
Set javascript support files external renderer. Given callable has
to accept first argument to be \SplFileInfo about external javascript
supporting file. Javascript renderer must add given supporting javascript
file into HTML only once.
Set javascript support files external renderer. Given callable has
to accept first argument to be \SplFileInfo about external javascript
supporting file. Javascript renderer must add given supporting javascript
file into HTML only once.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetCssSupportFilesRenderer( callable $cssSupportFilesRenderer )
Set css support files external renderer. Given callable has
to accept first argument to be \SplFileInfo about external css
supporting file. Css renderer must add given supporting css
file into HTML only once.
Set css support files external renderer. Given callable has
to accept first argument to be \SplFileInfo about external css
supporting file. Css renderer must add given supporting css
file into HTML only once.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SetFormTagRenderingStatus( boolean $formTagRenderingStatus = TRUE )
This is INTERNAL method for rendering fields.
Value TRUE means <form> tag is currently rendered inside, FALSE otherwise.
This is INTERNAL method for rendering fields.
Value TRUE means <form> tag is currently rendered inside, FALSE otherwise.
Parameters
Returns
|
public static
string
|
#
SetJsSupportFilesRootDir( string|null $jsSupportFilesRootDir )
Set MvcCore Form javascript support files root directory.
After \MvcCore\Ext\Form instance is created, this value is completed to library internal
assets directory. If you want to create any custom field with custom javascript file(s),
you can do it by loading github package mvccore/form-js to your custom directory,
you have to create there any other custom javascript support file for any custom field
and change this property value to that javascripts directory. All supporting javascripts
for \MvcCore\Ext\Form fields will be loaded now from there.
Set MvcCore Form javascript support files root directory.
After \MvcCore\Ext\Form instance is created, this value is completed to library internal
assets directory. If you want to create any custom field with custom javascript file(s),
you can do it by loading github package mvccore/form-js to your custom directory,
you have to create there any other custom javascript support file for any custom field
and change this property value to that javascripts directory. All supporting javascripts
for \MvcCore\Ext\Form fields will be loaded now from there.
Parameters
Returns
string
|
public static
string
|
#
SetCssSupportFilesRootDir( string|null $cssSupportFilesRootDir )
Set MvcCore Form css support files root directory.
After \MvcCore\Ext\Form instance is created, this value is completed to library internal
assets directory. If you want to create any custom field with custom css file(s),
you can do it by creating an empty directory somewhere, by copying every css file from
library assets directory into it, by creating any other custom css for any custom field
and by change this property value to that directory. All supporting css for \MvcCore\Ext\Form
fields will be loaded now from there.
Set MvcCore Form css support files root directory.
After \MvcCore\Ext\Form instance is created, this value is completed to library internal
assets directory. If you want to create any custom field with custom css file(s),
you can do it by creating an empty directory somewhere, by copying every css file from
library assets directory into it, by creating any other custom css for any custom field
and by change this property value to that directory. All supporting css for \MvcCore\Ext\Form
fields will be loaded now from there.
Parameters
Returns
string
|
public static
integer
|
#
SetValidatorsNamespaces( array $validatorsNamespaces = [] )
Set form validators base namespaces to create validator instance by it's class name.
Validator will be created by class existence in this namespaces order.
This method is dangerous, because it removes all previously configured
validators namespaces. If you only to add another validators namespace,
use method: \MvcCore\Ext\Form::AddValidatorsNamespaces(...$namespaces); instead.
Set form validators base namespaces to create validator instance by it's class name.
Validator will be created by class existence in this namespaces order.
This method is dangerous, because it removes all previously configured
validators namespaces. If you only to add another validators namespace,
use method: \MvcCore\Ext\Form::AddValidatorsNamespaces(...$namespaces); instead.
Parameters
Returns
integer New validators namespaces count.
|
public static
boolean
|
#
SetAutoFocusedFormField( string $formId = NULL, string $fieldName = NULL, integer $duplicateBehaviour = \MvcCore\Ext\Forms\IField::AUTOFOCUS_DUPLICITY_EXCEPTION )
Set autofocus boolean attribute to target form field by form id and field name.
If there is already defined any previously autofocused field, defined third argument
to not thrown an exception but to solve the duplicity. Third argument possible values:
- 0 (\MvcCore\Ext\Forms\IField::AUTOFOCUS_DUPLICITY_EXCEPTION )
Default value, an exception is thrown when there is already defined other autofocused form element.
- 1 (\MvcCore\Ext\Forms\IField::AUTOFOCUS_DUPLICITY_UNSET_OLD_SET_NEW )
There will be removed previously defined autofocused element and configured new given one.
- -1 (\MvcCore\Ext\Forms\IField::AUTOFOCUS_DUPLICITY_QUIETLY_SET_NEW )
There will be quietly configured another field autofocused. Be careful!!! This is not standard behaviour!
If there is $formId and also $fieldName with NULL value, any previously defined
autofocused form field is changed and autofocus boolean attribute is removed.
Set autofocus boolean attribute to target form field by form id and field name.
If there is already defined any previously autofocused field, defined third argument
to not thrown an exception but to solve the duplicity. Third argument possible values:
- 0 (\MvcCore\Ext\Forms\IField::AUTOFOCUS_DUPLICITY_EXCEPTION ) Default value, an exception is thrown when there is already defined other autofocused form element.
- 1 (\MvcCore\Ext\Forms\IField::AUTOFOCUS_DUPLICITY_UNSET_OLD_SET_NEW ) There will be removed previously defined autofocused element and configured new given one.
- -1 (\MvcCore\Ext\Forms\IField::AUTOFOCUS_DUPLICITY_QUIETLY_SET_NEW ) There will be quietly configured another field autofocused. Be careful!!! This is not standard behaviour!
If there is $formId and also $fieldName with NULL value, any previously defined
autofocused form field is changed and autofocus boolean attribute is removed.
Parameters
- $formId
- $fieldName
- $duplicateBehaviour
Returns
boolean
Throws
RuntimeException
|
public
MvcCore\Ext\Form
|
#
AddAcceptCharset( string $charset )
Add into list of character encodings that the server accepts. The
browser uses them in the order in which they are listed. The default
value,the reserved string 'UNKNOWN' , indicates the same encoding
as that of the document containing the form element.
Add into list of character encodings that the server accepts. The
browser uses them in the order in which they are listed. The default
value,the reserved string 'UNKNOWN' , indicates the same encoding
as that of the document containing the form element.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
AddCssClasses( string|string[] $cssClasses )
Add css classes strings for HTML element attribute class .
Given css classes will be added after previously defined css classes.
Default value is an empty array to not render HTML class attribute.
You can define css classes as single string, more classes separated
by space or you can define css classes as array with strings.
Add css classes strings for HTML element attribute class .
Given css classes will be added after previously defined css classes.
Default value is an empty array to not render HTML class attribute.
You can define css classes as single string, more classes separated
by space or you can define css classes as array with strings.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
AddError( string $errorMsg, string|array|null $fieldNames = NULL )
Add form submit error and switch form result to zero - to error state.
Add form submit error and switch form result to zero - to error state.
Parameters
- $errorMsg
- Any error message, translated if necessary. All html tags from error message will be removed automatically.
- $fieldNames
- Optional, field name string or array with field names where error happened.
Returns
|
public
MvcCore\Ext\Form
|
#
AddJsSupportFile( string $jsRelativePath = '/fields/custom-type.js', string $jsClassName = 'MvcCoreForm.FieldType', array $constructorParams = [] )
Add supporting javascript file.
Add supporting javascript file.
Parameters
- $jsRelativePath
- Supporting javascript file relative path from protected
\MvcCore\Ext\Form::$jsAssetsRootDir .
- $jsClassName
- Supporting javascript full class name inside supporting file.
- $constructorParams
- Supporting javascript constructor params.
Returns
|
public
MvcCore\Ext\Form
|
#
AddCssSupportFile( string $cssRelativePath = '/fields/custom-type.css' )
Add supporting css file.
Parameters
- $cssRelativePath
- Supporting css file relative path from protected
\MvcCore\Ext\Form::$cssAssetsRootDir .
Returns
|
public static
integer
|
#
AddCsrfErrorHandler( callable $handler, integer|null $priorityIndex = NULL )
Add CSRF (Cross Site Request Forgery) error handler.
If CSRF submit comparison fails, it's automatically processed
queue with this handlers, you can put here for example handler
to de-authenticate your user or anything else to more secure your application.
Params in callable should be two with following types:
- \MvcCore\Ext\Form - Form instance where error happened.
- \MvcCore\Request - Current request object.
- \MvcCore\Response - Current response object.
- string - Translated error message string.
Example:
\MvcCore\Ext\Form::AddCsrfErrorHandler(function($form, $request, $response, $errorMsg) {
// ... anything you want to do, for example to sign out user.
});
Add CSRF (Cross Site Request Forgery) error handler.
If CSRF submit comparison fails, it's automatically processed
queue with this handlers, you can put here for example handler
to de-authenticate your user or anything else to more secure your application.
Params in callable should be two with following types:
- \MvcCore\Ext\Form - Form instance where error happened.
- \MvcCore\Request - Current request object.
- \MvcCore\Response - Current response object.
- string - Translated error message string.
Example:
\MvcCore\Ext\Form::AddCsrfErrorHandler(function($form, $request, $response, $errorMsg) { // ... anything you want to do, for example to sign out user.
});
Parameters
Returns
integer New CSRF error handlers count.
|
public static
integer
|
#
AddValidatorsNamespaces( string[] $validatorsNamespaces )
Add form validators base namespaces to create validator instance by it's class name.
Validator will be created by class existence in this namespaces order.
Validators namespaces array configured by default: array('\\MvcCore\\Ext\\Forms\\Validators\\'); .
Add form validators base namespaces to create validator instance by it's class name.
Validator will be created by class existence in this namespaces order.
Validators namespaces array configured by default: array('\\MvcCore\\Ext\\Forms\\Validators\\'); .
Parameters
Returns
integer New validators namespaces count.
|
public
MvcCore\Ext\Forms\Field[]
|
#
GetFields( )
Get all form field controls.
After adding any field into form instance by $form->AddField() method
field is added under it's name into this array with all another form fields
except CSRF input:hidden s. Fields are rendered by order in this array.
Get all form field controls.
After adding any field into form instance by $form->AddField() method
field is added under it's name into this array with all another form fields
except CSRF input:hidden s. Fields are rendered by order in this array.
Returns
|
public
MvcCore\Ext\Form
|
#
SetFields( MvcCore\Ext\Forms\Field[] $fields = [] )
Replace all previously configured fields with given fully configured fields array.
This method is dangerous - it will remove all previously added form fields
and add given fields. If you want only to add another field(s) into form,
use functions:
- $form->AddField($field);
- $form->AddFields($field1, $field2, $field3...);
Replace all previously configured fields with given fully configured fields array.
This method is dangerous - it will remove all previously added form fields
and add given fields. If you want only to add another field(s) into form,
use functions:
- $form->AddField($field);
- $form->AddFields($field1, $field2, $field3...);
Parameters
- $fields
- Array with
\MvcCore\Ext\Forms\IField instances to set into form.
Returns
|
public
MvcCore\Ext\Form
|
#
AddFields( MvcCore\Ext\Forms\Field[] $fields )
Add multiple fully configured form field instances,
function have infinite params with new field instances.
Add multiple fully configured form field instances,
function have infinite params with new field instances.
Parameters
- $fields
- Any
\MvcCore\Ext\Forms\IField fully configured instance to add into form.
Returns
|
public
MvcCore\Ext\Form
|
|
public
boolean
|
#
HasField( MvcCore\Ext\Forms\Field |string $fieldOrFieldName = NULL )
If TRUE if given field instance or given
field name exists in form, FALSE otherwise.
If TRUE if given field instance or given
field name exists in form, FALSE otherwise.
Parameters
Returns
boolean
|
public
MvcCore\Ext\Form
|
#
RemoveField( MvcCore\Ext\Forms\Field |string $fieldOrFieldName = NULL )
Remove configured form field instance by given instance or given field name.
If field is not found by it's name, no error happened.
Remove configured form field instance by given instance or given field name.
If field is not found by it's name, no error happened.
Parameters
Returns
|
public
MvcCore\Ext\Forms\Field |null
|
#
GetField( string $fieldName = '' )
Return form field instance by form field name if it exists, else return null;
Return form field instance by form field name if it exists, else return null;
Parameters
Returns
|
public
MvcCore\Ext\Forms\Field[] |array
|
#
GetFieldsByType( string $fieldType = '' )
Return form field instances by given field type string.
If no field(s) found, it's returned empty array.
Result array is keyed by field names.
Return form field instances by given field type string.
If no field(s) found, it's returned empty array.
Result array is keyed by field names.
Parameters
Returns
|
public
MvcCore\Ext\Forms\Field |null
|
#
GetFirstFieldByType( string $fieldType = '' )
Return first caught form field instance by given field type string.
If no field found, NULL is returned.
Return first caught form field instance by given field type string.
If no field found, NULL is returned.
Parameters
Returns
|
public
MvcCore\Ext\Forms\Field[] |array
|
#
GetFieldsByPhpClass( string $fieldClassName = '', boolean $directTypesOnly = FALSE )
Return form field instances by field class name
compared by is_a($field, $fieldClassName) check.
If no field(s) found, it's returned empty array.
Result array is keyed by field names.
Return form field instances by field class name
compared by is_a($field, $fieldClassName) check.
If no field(s) found, it's returned empty array.
Result array is keyed by field names.
Parameters
- $fieldClassName
- Full php class name or full interface name.
- $directTypesOnly
- Get only instances created directly from called type, no instances extended from given class name.
Returns
|
public
MvcCore\Ext\Forms\Field |null
|
#
GetFirstFieldByPhpClass( string $fieldClassName = '', boolean $directTypesOnly = FALSE )
Return first caught form field instance by field class name
compared by is_a($field, $fieldClassName) check.
If no field found, it's returned NULL .
Return first caught form field instance by field class name
compared by is_a($field, $fieldClassName) check.
If no field found, it's returned NULL .
Parameters
- $fieldClassName
- Full php class name or full interface name.
- $directTypesOnly
- Get only instances created directly from called type, no instances extended from given class name.
Returns
|
public
MvcCore\Ext\Form
|
#
ClearSession( )
Clear form values to empty array and clear form values in form session namespace,
clear form errors to empty array and clear form errors in form session namespace and
clear form CSRF tokens clear CRSF tokens in form session namespace.
Clear form values to empty array and clear form values in form session namespace,
clear form errors to empty array and clear form errors in form session namespace and
clear form CSRF tokens clear CRSF tokens in form session namespace.
Returns
|
public
MvcCore\Ext\Form
|
#
SaveSession( )
Store form values, form errors and form CSRF tokens
in it's own form session namespace.
Store form values, form errors and form CSRF tokens
in it's own form session namespace.
Returns
|
public
string
|
#
__toString( )
Rendering process alias for \MvcCore\Ext\Form::Render(); .
Rendering process alias for \MvcCore\Ext\Form::Render(); .
Returns
string
|
public
string
|
#
Render( $controllerDashedName = '', $actionDashedName = '' )
Render whole <form> with all content into HTML string to display it.
- If form is not initialized, there is automatically
called $form->Init(); method.
- If form is not pre-dispatched for rendering, there is
automatically called $form->PreDispatch(); method.
- Create new form view instance and set up the view with local
context variables.
- Render form naturally or by custom template.
- Clean session errors, because errors should be rendered
only once, only when it's used and it's now - in this rendering process.
Render whole <form> with all content into HTML string to display it.
- If form is not initialized, there is automatically called $form->Init(); method.
- If form is not pre-dispatched for rendering, there is automatically called $form->PreDispatch(); method.
- Create new form view instance and set up the view with local context variables.
- Render form naturally or by custom template.
- Clean session errors, because errors should be rendered only once, only when it's used and it's now - in this rendering process.
Returns
string
|
public
string
|
#
RenderContent( )
Render form inner content, all field controls, content inside <form> tag,
without form errors. Go through all $form->fields and call $field->Render();
on every field instance and put field render result into an empty <div>
element. Render each field in full possible way - naturally by label
configuration with possible errors configured beside or with custom field template.
Render form inner content, all field controls, content inside <form> tag,
without form errors. Go through all $form->fields and call $field->Render();
on every field instance and put field render result into an empty <div>
element. Render each field in full possible way - naturally by label
configuration with possible errors configured beside or with custom field template.
Returns
string
|
public
string
|
#
RenderErrors( )
Render form errors to display them inside <form> element.
If form is configured to render all errors together at form beginning,
this function completes all form errors into div.errors with div.error elements
inside containing each single errors message.
Render form errors to display them inside <form> element.
If form is configured to render all errors together at form beginning,
this function completes all form errors into div.errors with div.error elements
inside containing each single errors message.
Returns
string
|
public
string
|
#
RenderBegin( )
Render form begin - opening <form> tag and automatically
prepared hidden input with CSRF (Cross Site Request Forgery) tokens.
Render form begin - opening <form> tag and automatically
prepared hidden input with CSRF (Cross Site Request Forgery) tokens.
Returns
string
|
public
string
|
#
RenderEnd( )
Render form end - closing </form> tag and supporting javascript and css files
only if there is necessary to add any supporting javascript or css files by
form configuration and if form is not using external JS/CSS renderer(s).
Render form end - closing </form> tag and supporting javascript and css files
only if there is necessary to add any supporting javascript or css files by
form configuration and if form is not using external JS/CSS renderer(s).
Returns
string
|
public
string
|
#
RenderSupportingCss( )
Render all supporting CSS files directly
as <style> tag content inside HTML template
placed directly after </form> end tag or
render all supporting CSS files by configured external
CSS files renderer to add only links to HTML response <head>
section, linked to external CSS source files.
Render all supporting CSS files directly
as <style> tag content inside HTML template
placed directly after </form> end tag or
render all supporting CSS files by configured external
CSS files renderer to add only links to HTML response <head>
section, linked to external CSS source files.
Returns
string
|
public
string
|
#
RenderSupportingJs( )
Render all supporting JS files directly
as <script> tag content inside HTML template
placed directly after </form> end tag or
render all supporting JS files by configured external
JS files renderer to add only links to HTML response <head>
section, linked to external JS source files.
Anyway there is always created at least one <script> tag
placed directly after </form> end tag with supporting javascripts
initializations - new MvcCoreForm(/*javascript*\/); - by rendered form fields
options, names, counts, values etc...
Render all supporting JS files directly
as <script> tag content inside HTML template
placed directly after </form> end tag or
render all supporting JS files by configured external
JS files renderer to add only links to HTML response <head>
section, linked to external JS source files.
Anyway there is always created at least one <script> tag
placed directly after </form> end tag with supporting javascripts
initializations - new MvcCoreForm(/*javascript*\/); - by rendered form fields
options, names, counts, values etc...
Returns
string
|
public
array
|
#
Submit( array & $rawRequestParams = [] )
Process standard low level submit process.
If no params passed as first argument, all params from object
\MvcCore\Application::GetInstance()->GetRequest() are used.
- If fields are not initialized - initialize them by calling $form->Init(); .
- Check maximum post size by php configuration if form is posted.
- Check cross site request forgery tokens with session tokens.
- Process all field values and their validators and call $form->AddError() where necessary.
AddError() method automatically switch $form->Result property to zero - 0 , it means error submit result.
Return array with form result, safe values from validators and errors array.
Process standard low level submit process.
If no params passed as first argument, all params from object
\MvcCore\Application::GetInstance()->GetRequest() are used.
- If fields are not initialized - initialize them by calling $form->Init(); .
- Check maximum post size by php configuration if form is posted.
- Check cross site request forgery tokens with session tokens.
- Process all field values and their validators and call $form->AddError() where necessary. AddError() method automatically switch $form->Result property to zero - 0 , it means error submit result.
Return array with form result, safe values from validators and errors array.
Parameters
- $rawRequestParams
- optional
Returns
array An array to list: [$form->result, $form->data, $form->errors];
|
public
MvcCore\Ext\Form
|
#
SubmitSetStartResultState( array & $rawRequestParams = [] )
Try to set up form submit result state into any special positive
value by presented submit button name in $rawRequestParams array
if there is any special submit result value configured by button names
in $form->customResultStates array. If no special button submit result
value configured, submit result state is set to 1 by default.
Try to set up form submit result state into any special positive
value by presented submit button name in $rawRequestParams array
if there is any special submit result value configured by button names
in $form->customResultStates array. If no special button submit result
value configured, submit result state is set to 1 by default.
Parameters
Returns
|
public
MvcCore\Ext\Form
|
#
SubmitValidateMaxPostSizeIfNecessary( )
Validate maximum posted size in POST request body by Content-Length HTTP header.
If there is no Content-Length request header, add error.
If Content-Length value is bigger than post_max_size from PHP ini, add form error.
Validate maximum posted size in POST request body by Content-Length HTTP header.
If there is no Content-Length request header, add error.
If Content-Length value is bigger than post_max_size from PHP ini, add form error.
Returns
|
public
MvcCore\Ext\Form
|
#
SubmitAllFields( array & $rawRequestParams = [] )
Go through all fields, which are not button:submit or input:submit types
and call on every $field->Submit() method to process all configured field validators.
If method $field->Submit() returns anything else than NULL , that value is automatically
assigned under field name into form result values and into form field value.
Go through all fields, which are not button:submit or input:submit types
and call on every $field->Submit() method to process all configured field validators.
If method $field->Submit() returns anything else than NULL , that value is automatically
assigned under field name into form result values and into form field value.
Parameters
Returns
|
public
|
#
SubmittedRedirect( )
Call this function in custom \MvcCore\Ext\Form::Submit(); method implementation
at the end of custom Submit() method to redirect user by configured success/error/prev/next
step URL address into final place and store everything into session.
You can also to redirect form after submit by yourself.
Call this function in custom \MvcCore\Ext\Form::Submit(); method implementation
at the end of custom Submit() method to redirect user by configured success/error/prev/next
step URL address into final place and store everything into session.
You can also to redirect form after submit by yourself.
|
public
MvcCore\Ext\Forms\Validator
|
#
GetValidator( string $validatorName )
Get cached validator instance by name. If validator instance doesn't exist
in $this->validators array, create new validator instance, cache it and return it.
Get cached validator instance by name. If validator instance doesn't exist
in $this->validators array, create new validator instance, cache it and return it.
Parameters
Returns
|
public
string
|
#
GetDefaultErrorMsg( integer $index )
Get error message string from internal protected static property
\MvcCore\Ext\Form::$defaultErrorMessages by given integer index.
Get error message string from internal protected static property
\MvcCore\Ext\Form::$defaultErrorMessages by given integer index.
Parameters
Returns
string
|
public static
|
#
ProcessCsrfErrorHandlersQueue( MvcCore\Ext\IForm $form, string $errorMsg )
Call all CSRF (Cross Site Request Forgery) error handlers in static queue.
Call all CSRF (Cross Site Request Forgery) error handlers in static queue.
Parameters
- $form
- The form instance where CSRF error happened.
- $errorMsg
- Translated error message about CSRF invalid tokens.
|
public
MvcCore\Ext\Form
|
#
SetEnableCsrf( boolean $enabled = TRUE )
Enable or disable CSRF checking, enabled by default.
Enable or disable CSRF checking, enabled by default.
Parameters
Returns
|
public
stdClass
|
#
GetCsrf( )
Return current CSRF (Cross Site Request Forgery) hidden
input name and it's value as \stdClass with keys name and value .
Return current CSRF (Cross Site Request Forgery) hidden
input name and it's value as \stdClass with keys name and value .
Returns
stdClass
|
public
MvcCore\Ext\Form
|
#
SubmitCsrfTokens( array & $rawRequestParams = [] )
Check CSRF (Cross Site Request Forgery) sent tokens from user with session tokens.
If tokens are different, add form error and process CSRF error handlers queue.
If there is any exception caught in CSRF error handlers queue, it's logged
by configured core debug class with CRITICAL flag.
Check CSRF (Cross Site Request Forgery) sent tokens from user with session tokens.
If tokens are different, add form error and process CSRF error handlers queue.
If there is any exception caught in CSRF error handlers queue, it's logged
by configured core debug class with CRITICAL flag.
Parameters
- $rawRequestParams
- Raw request params given into
Submit() method or all \MvcCore\Request params.
Returns
|
public
string[]
|
#
SetUpCsrf( )
Create new fresh CSRF (Cross Site Request Forgery) tokens,
store them in current form session namespace and return them.
Create new fresh CSRF (Cross Site Request Forgery) tokens,
store them in current form session namespace and return them.
Returns
string[]
|