Commit 86f38d7f1179a2924ce9ab5fa8bd1c8da92b99da
1 parent
b90eb89c
Don't hard-code "action" as the event variable in forms. Inherit it
from the dispatcher, if given. git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5868 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
3 changed files
with
20 additions
and
7 deletions
lib/dispatcher.inc.php
| @@ -56,6 +56,10 @@ class KTDispatcher { | @@ -56,6 +56,10 @@ class KTDispatcher { | ||
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | function redispatch($event_var, $action_prefix = null) { | 58 | function redispatch($event_var, $action_prefix = null) { |
| 59 | + $previous_event = KTUtil::arrayGet($_REQUEST, $this->event_var); | ||
| 60 | + if ($previous_event) { | ||
| 61 | + $this->persistParams(array($this->event_var)); | ||
| 62 | + } | ||
| 59 | $this->event_var = $event_var; | 63 | $this->event_var = $event_var; |
| 60 | if ($action_prefix) { | 64 | if ($action_prefix) { |
| 61 | $this->action_prefix = $action_prefix; | 65 | $this->action_prefix = $action_prefix; |
| @@ -212,12 +216,11 @@ class KTDispatcher { | @@ -212,12 +216,11 @@ class KTDispatcher { | ||
| 212 | // handle the case where action is passed in already. | 216 | // handle the case where action is passed in already. |
| 213 | } | 217 | } |
| 214 | } | 218 | } |
| 215 | - | ||
| 216 | - | ||
| 217 | // if it isn't already set | 219 | // if it isn't already set |
| 218 | - if ((!array_key_exists('action', $aQuery)) && (!empty($event))) { | ||
| 219 | - $aQuery['action'] = urlencode($event); | 220 | + if ((!array_key_exists($this->event_var, $aQuery)) && (!empty($event))) { |
| 221 | + $aQuery[$this->event_var] = urlencode($event); | ||
| 220 | } | 222 | } |
| 223 | + var_dump($aQuery); | ||
| 221 | 224 | ||
| 222 | if ($asArray) { | 225 | if ($asArray) { |
| 223 | return $aQuery; | 226 | return $aQuery; |
lib/widgets/forms.inc.php
| @@ -21,6 +21,7 @@ class KTForm { | @@ -21,6 +21,7 @@ class KTForm { | ||
| 21 | var $_validators; // validators | 21 | var $_validators; // validators |
| 22 | var $_submitlabel; // what is the "submit" button called | 22 | var $_submitlabel; // what is the "submit" button called |
| 23 | var $_action; // where does the success message go | 23 | var $_action; // where does the success message go |
| 24 | + var $_event; // where does the success message go | ||
| 24 | var $_extraargs; // various extra arguments | 25 | var $_extraargs; // various extra arguments |
| 25 | var $_failaction; // should this error out, which action handles it | 26 | var $_failaction; // should this error out, which action handles it |
| 26 | var $_failurl; // if we don't have a failaction, try this url | 27 | var $_failurl; // if we don't have a failaction, try this url |
| @@ -66,6 +67,15 @@ class KTForm { | @@ -66,6 +67,15 @@ class KTForm { | ||
| 66 | $this->_failurl = KTUtil::arrayGet($aOptions, 'fail_url'); | 67 | $this->_failurl = KTUtil::arrayGet($aOptions, 'fail_url'); |
| 67 | $this->_submitlabel = KTUtil::arrayGet($aOptions, 'submit_label', | 68 | $this->_submitlabel = KTUtil::arrayGet($aOptions, 'submit_label', |
| 68 | _kt('Submit')); | 69 | _kt('Submit')); |
| 70 | + | ||
| 71 | + $this->_event = KTUtil::arrayGet($aOptions, 'event'); | ||
| 72 | + if (empty($this->_event)) { | ||
| 73 | + if (!is_null($context)) { | ||
| 74 | + $this->_event = $context->event_var; | ||
| 75 | + } else { | ||
| 76 | + $this->_event = "action"; | ||
| 77 | + } | ||
| 78 | + } | ||
| 69 | 79 | ||
| 70 | // cancel | 80 | // cancel |
| 71 | // there are a few options here: | 81 | // there are a few options here: |
| @@ -86,7 +96,7 @@ class KTForm { | @@ -86,7 +96,7 @@ class KTForm { | ||
| 86 | } else { | 96 | } else { |
| 87 | // give it a try using addQSSelf | 97 | // give it a try using addQSSelf |
| 88 | $this->_cancelurl = KTUtil::addQueryStringSelf( | 98 | $this->_cancelurl = KTUtil::addQueryStringSelf( |
| 89 | - sprintf('action=%s', $cancel_action)); | 99 | + sprintf('%s=%s', $this->_event, $cancel_action)); |
| 90 | } | 100 | } |
| 91 | 101 | ||
| 92 | 102 | ||
| @@ -275,7 +285,7 @@ class KTForm { | @@ -275,7 +285,7 @@ class KTForm { | ||
| 275 | 285 | ||
| 276 | // remove inner "action" var from extraargs | 286 | // remove inner "action" var from extraargs |
| 277 | // if its there at all. | 287 | // if its there at all. |
| 278 | - unset($this->_extraargs['action']); | 288 | + unset($this->_extraargs[$this->_event]); |
| 279 | $this->_extraargs['_kt_form_name'] = $this->_kt_form_name; | 289 | $this->_extraargs['_kt_form_name'] = $this->_kt_form_name; |
| 280 | 290 | ||
| 281 | // now do the render. | 291 | // now do the render. |
templates/ktcore/forms/outerform.smarty
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | {if !empty($context->sDescription)}<p class="descriptiveText">{$context->sDescription}</p>{/if} | 5 | {if !empty($context->sDescription)}<p class="descriptiveText">{$context->sDescription}</p>{/if} |
| 6 | 6 | ||
| 7 | {* hidden, "extra" args *} | 7 | {* hidden, "extra" args *} |
| 8 | - <input type="hidden" name="action" value="{$context->_action}"> | 8 | + <input type="hidden" name="{$context->_event}" value="{$context->_action}"> |
| 9 | {foreach from=$context->_extraargs item=v key=k} | 9 | {foreach from=$context->_extraargs item=v key=k} |
| 10 | <input type="hidden" name="{$k}" value="{$v}"> | 10 | <input type="hidden" name="{$k}" value="{$v}"> |
| 11 | {/foreach} | 11 | {/foreach} |