I am using 1.2 (have been for a while), and I'm very impressed by its validation system. But I can't see how I can do what I need without more code. I'll try and explain.
The basic system of "warnings" could be implemented by having a beforeValidate() method (in a Behavior or Model) which enumerates the $validate array [*], checks for entries with a specific option (such as 'warning' => true), then cross-checks that against a different key in the data (corresponding to the 'ignore warning' checkbox), and if present, temporarily removes it from the validation array (setting 'on' to any value other that 'create', 'update' or null would accomplish this). [ * The orderings of validation and warning entries would be crucial for this to work properly, because an error must always override a warning. ] At this point, it can flag the field as failing, but when the form helper outputs the error message, I need it to output an extra checkbox dynamically with a specific name and value. Although I could code this directly in the beforeValidate() [a bit messy, but still possible], the FormHelper::input() method, when calling FormHelper::error(), ALWAYS escapes the HTML, so I'd be rendering HTML code not real working HTML. I could of course code the "error message" in a specific way (like "{{{WARNINGDATA:encoded_data_here}}}") then do a preg_replace_callback in a helper afterRender() method, but it's quite a messy way of doing things, with a possible performance hit. Plus I'd have to add the helper in the controller; which should really be agnostic to this information. I'm wondering if I'm making this more complicated than it needs to be. Based on what I've explained I'd like to achieve, can you see a different (possibly simpler) way of doing it? Thanks On Jan 25, 2:20 pm, "John David Anderson (_psychic_)" <[EMAIL PROTECTED]> wrote: > On Jan 25, 2008, at 6:38 AM, grigri wrote: > > > > > I'd like to hear some suggestions on cakeifying an existing system. > > > Cake's validation is wonderful, but it only allows "yes this is good" > > and "no it isn't". I've got an application I need to port that has > > automated warnings built in for some fields. > > Have you checked out validation in 1.2? Multiple rules, pre build > validators, easy custom rules.. I think you can easily do what you > need in 1.2. > > -- John > > > Although my system is quite specific (it's a historic family tree, so > > most of the warnings are like "Warning: this marriage is between two > > cousins / brother and sister, are you sure?), I could see a generic > > application, for example for URLs (warning: this URL returns a 404, > > are you sure you want to add it?) or passwords (this is a crappy > > password choice, use it at your own risk...). > > > My old system gave each warning generated a session-level id and > > presented an appropriate checkbox in the field 'error' position. The > > validation routine checked if the checkbox was checked for each > > registered warning and ignored it if appropriate. If there were no > > errors, and no unchecked warnings, the form went through. > > > My old system was not very flexible, a mish-mash of php includes and > > whatnot, and I need to cakeify it. > > > So, any suggestions on how to introduce this functionality to cake, > > without rewriting the form helper or model validations? I've got a few > > ideas but I'd like to hear input. > > > (Once I've got a solid "normal" foundation for it, I'd like to extend > > to js/ajax too, but this is definitely for later) --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---