field.controllerActions¶
ControllerActions ViewHelper
Renders a FlexForm select field with options fetched from requested extensionName/pluginName and other settings.
There are three basic ways of adding selection options:
You can use the "extensionName" and "pluginName" to render all possible actions from an Extbase plugin that you've defined. It doesn't have to be your own plugin - if for example you are rendering actions from EXT:news or another through your own plugin.
Or you can use the "actions" argument which is an array: {ControllerName: 'action1,action2,action3', OtherControllerName: 'action1'}
And you can extend any of the two methods above with the "subActions" parameter, which allows you to extend the allowed actions whenever the specified combination of ControllerName + actionName is encountered. Example: actions="{ControllerName: 'action1,action2'}"
subActions="{ControllerName: {action1: 'action3,action4'}}"
- Gives options: ControllerName->action1,action3,action4 with LLL values based on "action1"
ControllerName->action2 with LLL values based on "action2"
By default Flux will create one option per action when reading Controller actions - using "subActions" it becomes possible to add additional actions to the list of allowed actions that the option will contain, as opposed to having only one action per option.
And there are a few ways to limit the options that are displayed:
You can use "excludeActions" to specify an array in the same syntax used by the "actions" argument, these are then excluded.
You can specifiy the "controllerName" argument in which case only actions from that Controller are displayed.
And there are a couple of ways to define/resolve labels for actions:
You can add an LLL label in your locallang_db file: lowercasepluginname.lowercasecontrollername.actionfunctionname example index: myext.articlecontroller.show
You can do nothing, in which case the very first line of the PHP doc-comment of each action method is used. This value can even be an LLL:file reference (in case you don't want to use the pattern above - but beware this is somewhat expensive processing)
Or you can do nothing at all, not even add a doc comment, in which case the Controller->action syntax is used instead.
Marking actions that have required arguments (which cause errors if rendered on a page that is accessible through a traditional menu) is possible but is deactivated for LLL labels; if you use LLL labels and your action requires an argument, be user friendly and note so in the LLL label or docs as applies.
Lastly, you can set a custom name for the field in which case the value does not trigger the Extbase SwitchableControllerActions feature but instead works as any other Flux FlexForm field would.
To use the field just place it in your Flux form (but in almost all cases leave out the "name" argument which is required on all other field types at the time of writing this). Where the field is placed is not important; the order and the sheet location don't matter.
Arguments¶
name¶
- DataType
string
- Default
'switchableControllerActions'
- Required
false
- Description
Name of the field
label¶
- DataType
string
- Required
false
- Description
Label for the attribute, can be LLL: value. Optional - if not specified, Flux tries to detect an LLL label named "flux.fluxFormId.fields.foobar" based on field name, in scope of extension rendering the Flux form. If field is in an object, use "flux.fluxFormId.objects.objectname.foobar" where "foobar" is the name of the field.
default¶
- DataType
string
- Required
false
- Description
Default value for this attribute
native¶
- DataType
boolean
- Required
false
- Description
If TRUE, this field will treated as a native TCA field (requiring a matching SQL column). If the "name" of this field is an already existing field, that original field will be replaced by this field. If the field is a new field (which doesn't already exist in TCA). You can control where this field visually appears in the editing form by specifying the "position" argument, which supports the same syntax as TYPO3CMSCoreUtilityExtensionManagementUtility::addToAllTCAtypes (after:X before:X and replace:X). Note that when declaring a field as "native" it will no longer be rendered as part of the FlexForm where Flux fields are normally rendered.
position¶
- DataType
string
- Required
false
- Description
Only applies if native=1. Specify where in the editing form this field should be, using the syntax of TYPO3CMSCoreUtilityExtensionManagementUtility::addToAllTCAtypes (after:X before:X and replace:X). Additionally, allows you to specify a TCA sheet if you want this field to be positioned in a dedicated sheet. Examples: position="after:header", position="replace:header", position="after:header My Sheet"
required¶
- DataType
boolean
- Required
false
- Description
If TRUE, this attribute must be filled when editing the FCE
exclude¶
- DataType
boolean
- Required
false
- Description
If TRUE, this field becomes an "exclude field" (see TYPO3 documentation about this)
transform¶
- DataType
string
- Required
false
- Description
Set this to transform your value to this type - integer, array (for csv values), float, DateTime, VendorMyExtDomainModelObject or ObjectStorage with type hint.
enabled¶
- DataType
boolean
- Default
true
- Required
false
- Description
If FALSE, disables the field in the FlexForm
requestUpdate¶
- DataType
boolean
- Required
false
- Description
If TRUE, the form is force-saved and reloaded when field value changes
displayCond¶
- DataType
string
- Required
false
- Description
Optional "Display Condition" (TCA style) for this particular field. See: https://docs.typo3.org/typo3cms/TCAReference/Reference/Columns/Index.html#displaycond
inherit¶
- DataType
boolean
- Default
true
- Required
false
- Description
If TRUE, the value for this particular field is inherited - if inheritance is enabled by the ConfigurationProvider
inheritEmpty¶
- DataType
boolean
- Default
true
- Required
false
- Description
If TRUE, allows empty values (specifically excluding the number zero!) to be inherited - if inheritance is enabled by the ConfigurationProvider
clear¶
- DataType
boolean
- Required
false
- Description
If TRUE, a "clear value" checkbox is displayed next to the field which when checked, completely destroys the current field value all the way down to the stored XML value
variables¶
- DataType
mixed
- Default
array ()
- Required
false
- Description
Freestyle variables which become assigned to the resulting Component - can then be read from that Component outside this Fluid template and in other templates using the Form object from this template
extensionName¶
- DataType
string
- Required
false
- Description
If provided, enables overriding the extension context for this and all child nodes. The extension name is otherwise automatically detected from rendering context.
config¶
- DataType
mixed
- Default
array ()
- Required
false
- Description
Raw TCA options - passed directly to "config" section of created field and overrides anything generated by the component itself. Can be used to provide options that Flux itself does not support, and can be used to pass root-level arguments for a "userFunc"
validate¶
- DataType
string
- Default
'trim'
- Required
false
- Description
FlexForm-type validation configuration for this input
size¶
- DataType
integer
- Default
1
- Required
false
- Description
Size of the selector box
multiple¶
- DataType
boolean
- Required
false
- Description
If TRUE, allows selecting the same value multiple times
minItems¶
- DataType
integer
- Required
false
- Description
Minimum required number of items to be selected
maxItems¶
- DataType
integer
- Default
1
- Required
false
- Description
Maxium allowed number of items to be selected
itemListStyle¶
- DataType
string
- Required
false
- Description
Overrides the default list style when maxItems > 1
selectedListStyle¶
- DataType
string
- Required
false
- Description
Overrides the default selected list style when maxItems > 1 and renderType is SelectSingle
items¶
- DataType
mixed
- Required
false
- Description
Optional, full list of items to display - note: if used, this overrides any automatic option filling!
emptyOption¶
- DataType
mixed
- Required
false
- Description
If not-FALSE, adds one empty option/value pair to the generated selector box and tries to use this property's value (cast to string) as label.
translateCsvItems¶
- DataType
boolean
- Required
false
- Description
If TRUE, attempts to resolve a LLL label for each value provided as CSV in "items" attribute using convention for lookup "$field.option.123" if given "123" as CSV item value. Field name is determined by normal Flux field name conventions
itemsProcFunc¶
- DataType
string
- Required
false
- Description
Function for serving items. See TCA "select" field "itemsProcFunc" attribute
renderType¶
- DataType
string
- Default
'selectSingle'
- Required
false
- Description
Rendering type as applies in FormEngine/TCA
showIconTable¶
- DataType
boolean
- Required
false
- Description
If TRUE shows the option icons as table beneath the select
controllerExtensionName¶
- DataType
string
- Required
false
- Description
Name of the Extbase extension that contains the Controller to parse, ex. MyExtension. In vendor based extensions use dot, ex. Vendor.MyExtension
pluginName¶
- DataType
string
- Required
false
- Description
Name of the Extbase plugin that contains Controller definitions to parse, ex. MyPluginName
controllerName¶
- DataType
string
- Required
false
- Description
Optional extra limiting of actions displayed - if used, field only displays actions for this controller name - ex Article(Controller) or FrontendUser(Controller) - the Controller part is implied
actions¶
- DataType
mixed
- Default
array ()
- Required
false
- Description
Array of "ControllerName" => "csv,of,actions" which are allowed. If used, does not require the use of an ExtensionName and PluginName (will use the one specified in your current plugin automatically)
excludeActions¶
- DataType
mixed
- Default
array ()
- Required
false
- Description
Array of "ControllerName" => "csv,of,actions" which must be excluded
prefixOnRequiredArguments¶
- DataType
string
- Default
'*'
- Required
false
- Description
A short string denoting that the method takes arguments, ex * (which should then be explained in the documentation for your extension about how to setup your plugins
disableLocalLanguageLabels¶
- DataType
boolean
- Required
false
- Description
If TRUE, disables LLL label usage and just uses the class comment or Controller->action syntax
localLanguageFileRelativePath¶
- DataType
string
- Default
'/Resources/Private/Language/locallang_db.xml'
- Required
false
- Description
Relative (from extension $extensionName) path to locallang file containing the action method labels
subActions¶
- DataType
mixed
- Default
array ()
- Required
false
- Description
- Array of sub actions {ControllerName: {list: 'update,delete'}, OtherController: {new: 'create'}} which ' .
'are also allowed but not presented as options when the mapped action is selected (in example: if ' . 'ControllerName->list is selected, ControllerName->update and ControllerName->delete are allowed - but ' . 'cannot be selected).
separator¶
- DataType
string
- Required
false
- Description
Separator string (glue) for Controller->action values, defaults to "->". Empty values result in default being used.