Feature #21847
closedextbase action selection - buttons convenience tweak
0%
Description
The controller flow autorouting of extbase could be made a little easier to use by by mapping parameters with the name
tx_designatorname_pi1[action][actionName]=Thisis the Label
TO
tx_designatorname_pi1[action]=actionName
before calculating the controller action.
This would allow appropriately named form buttons to directly trigger actions.
eg
<form type="POST">
<input name="tx_des[data][email]" type="text">
<input name="tx_des[data][password]" type="password">
<input name="tx_des[action][save]" type="submit" value="Save" >
<input name="tx_des[action][email]" type="submit" value="Email" >
</form>
A suggested implementation by adding the following lines to the build function in the class Tx_Extbase_MVC_Web_RequestBuilder.
public function build() {
$parameters = t3lib_div::_GPmerged('tx_' . strtolower($this->extensionName) . '_' . strtolower($this->pluginName));
// HACK - seek button clicks as action triggers using the button name prefixId[action][theAction]
if (is_array($parameters['action'])) {
foreach ($parameters['action'] as $k => $v) {
if (strlen($v)>0) $parameters['action']=$k;
}
}
In an extbase extension controller class add the methods
- saveAction and emailAction that debug their names
- indexAction that uses the following template (update the designator)
<form type="POST">
<input name="tx_des[data][email]" type="text">
<input name="tx_des[data][password]" type="password">
<input name="tx_des[action][save]" type="submit" value="Save" >
<input name="tx_des[action][email]" type="submit" value="Email" >
</form>
Check that buttons trigger actions
(issue imported from #M13019)
Files