not sure, but you could always invofe the $this-
>requestAction('othercontroller/othermethod/param1');

On Mar 2, 8:48 am, "keymaster" <[EMAIL PROTECTED]> wrote:
> Had another look at the form wizard.
>
> Studying the code in more detail helped me understand what can be
> abstracted out of routine multi-page forms processing. It was a good
> exercise.
>
> For those interested, looks like the cake wizard would save the
> following code every step of the way:
>
> 1. Navigation
> --------------------
>
> - your code doesn't have to check if the next or previous buttons were
> pressed, the wizard does this based on the name of the link
> ("previous" or "next").
>
> - your code doesn't have to figure out which action to call, as that
> is configured up front in "ways", when you init the wizard.
>
> - if you didn't have the wizard, each of your form actions would have
> to determine if the "Next" or "Previous" link was pressed, then
> redirect itself to the proper action.
>
> - Also, if you have multiple ways through your steps, the wizard
> handles those transparently to you, so you don't have to check at each
> step where to go next. For example, if the user is not registered, the
> wizard will know to first take him to the registration page, then to
> the login page to login, then back to the page which required login in
> the first place. (of course, in your validation routines you would
> have to change the "way" if you see the user is not logged in, I
> think).
>
> 2. Checking for the presence of data
> -----------------------------------------------------
>
> - the wizard checks to see if there is form data submitted, and if
> not, calls the current action to redisplay the form with the error
> messages as appropriate.
>
> - if you didn't have the wizard, you would have to perform this check.
> Not much, but is one less thing to do.
>
> 3. Validation
> -------------------
>
> - the wizard calls the appropriate validation routines you supply each
> step of the way, and reinvokes the same action (which causes the
> associated view to be displayed) if there are errors.
>
> - if there are no errors, it invokes the action for the next step,
> according to the "ways" you defined at init time.
>
> - If you didn't have the wizard, you would have to call validate
> yourself (if you had multiple models involved, or custom validation).
> Again, not much, but something else your code doesn't have to do.
>
> 4. Accumulating and storing/ retrieving form data in Sessions
> -----------------------------------------------------------------------------------------
>
> - after each step, the wizard takes care of storing and accumulating
> all the form field data in cake sessions, so you don't have to.
>
> - after reading and writing all the form variables to the session, the
> wizard updates everything into the regular cake format  
> $this->data['model']['field'] style (even though it is managing it
>
> underneath in sessions) so you can process it like usual cake
> programming (ie. both Save  validate will find the data).
>
> - by using sessions, it eliminates for you some of the data
> accumulation problems of BACK and FORWARD through the steps, and deals
> with the session variables transparently to you. Your code doesn't
> need to be concerned with sessions at all.
>
> - if you didn't have the wizard, you would have to manage the form
> data yourself in sessions, and update the $this->data['model']
> ['field'] yourself from the sessions before saving.
>
> 5. Clearing the session data at the end
> ---------------------------------------------------------
>
> - after the last step, the wizard clears the session data.
>
> - if you didn't have the wizard, you would have to do this yourself.
>
> NOTE: all the above is only from reading the code. I have not played
> with it yet, so please take all the above with a grain of salt, and
> verify everything for yourself.
>
> Question
> -------------
>
> One of the things I was not sure about - perhaps someone can clarify -
> the way the wizard invokes your action is:
>
> $this->controller->$fct();       // $fct() is the name of your action
>
> Does this mean you must put all the actions for that multi-page form
> into a single controller?
>
> What do you do if it makes more sense to have different steps of the
> form processed by different controllers?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to