As I said, Lift has semantically similar validation to Zend.  At this 
point, all my implementations have been explicitly overriding 
validations in Mapped*.  One could, if one wants, implement these as 
traits as well.  Do you have any questions about this?

philip wrote:
> Hi David,
>
> I don't understand the Liftweb side of validation yet, will look into
> that longer email discussion later today.
>
> About PHP, I don't like it as a language, which it is effective for
> the outcome but not a pleasure to be doing.
>
> About Zend Form, It has a concept of validators which you add to form
> elements.
> $element->addValidator(new Zend_Validate_Alnum());
> http://framework.zend.com/manual/en/zend.validate.html
> http://framework.zend.com/manual/en/zend.validate.set.html
> http://framework.zend.com/manual/en/zend.validate.validator_chains.html
> http://framework.zend.com/manual/en/zend.validate.writing_validators.html
>
> Also decorators are a kind of wrapper form form elements which are
> stacked to add some html to them.
> http://framework.zend.com/manual/en/zend.form.standardDecorators.html
> http://framework.zend.com/manual/en/zend.form.decorators.html
> So if you wrap a form element with Zend_Form_Decorator_DtDdWrapper you
> get
> <dt></dt>
> <dd><fieldset id="subform">
>     <legend>User Information</legend>
>     ...(form element here)
> </fieldset></dd>
>
> In Scala you have traits, maybe a decorator could be a trait since
> traits are stackable where the order of with statements is important.
> Something like this?
> new StringInput with DtDdDecorator with SomeOtherDecorator.
>
> Philip
>
> On Sep 23, 8:10 pm, "David Pollak" <[EMAIL PROTECTED]>
> wrote:
>   
>> On Mon, Sep 22, 2008 at 9:28 PM, philip <[EMAIL PROTECTED]> wrote:
>>
>>     
>>> Hi Thnx,
>>>       
>>> I think the validation is important as mostly a web app that I would
>>> build is forms, validation, database.
>>>       
>>> I generally use PHP Zend Framework due to the ability to outsource
>>> some work to reduce my workload as PHP programmers are cheap.
>>> You could take some ideas from its validation and form decorators.
>>>       
>> I just looked at the Zend form stuff.  Semantically, it looks a whole lot
>> like the Lift stuff, except Lift doesn't have the Conditional.
>>
>>
>>
>>
>>
>>     
>>> However I can tell that Liftweb will increase my productivity much
>>> more so maybe it won't be necessary to get outsourced work for this
>>> part of website development.
>>>       
>>> Thanks, Philip
>>>       
>>> On Sep 22, 10:26 pm, Marius <[EMAIL PROTECTED]> wrote:
>>>       
>>>> On Sep 22, 3:28 pm, philip <[EMAIL PROTECTED]> wrote:
>>>>         
>>>>> Hi Marius,
>>>>>           
>>>>> Thanks for the great replys, I'll just focus on one area.
>>>>>           
>>>>> About the validation error messages, I mean more specifically can I
>>>>> have the error messages for each <input on the form.
>>>>> For example if someone types a phone number incorrect, but perhaps I
>>>>> have 10 fields in my form, I want the phone number to have a error
>>>>> message next to it. Also they got the post code wrong, so I need a
>>>>> error message next to it as well.
>>>>>           
>>>> See David's reply. Form validations is virtually non existent in lift
>>>> yet but hopefully soon enough. There is ongoing work in this area.
>>>>         
>>>>> As I understand it, all error messages are lumped together into the
>>>>> one div and shown.
>>>>>           
>>>> The lift:msg built in snippet work based on id and you can associate
>>>> messages with id-s (see my example). lift:msgs renderes generic
>>>> messages that are not associated with any id.
>>>>         
>>>>>> 1. How can I put validation error messages next to the fields
>>>>>> themselves?
>>>>>>             
>>>>> Please see notices/error/warnings. For instance S.error("msgid", "an
>>>>> error") and int your page you can put:
>>>>> <lift:msg id="msgid" errorClass="error_class"
>>>>> warningClass="warning_class"/> anywhere  ... probably near by your
>>>>> form field.
>>>>>           
>>>>> Thanks, Philip
>>>>>           
>>>>> On Sep 22, 5:08 pm, Marius <[EMAIL PROTECTED]> wrote:
>>>>>           
>>>>>> On Sep 22, 9:13 am, philip <[EMAIL PROTECTED]> wrote:
>>>>>>             
>>>>>>> Hi,
>>>>>>>               
>>>>>>> I have some questions as I have been developing and reading
>>>>>>>               
>>> examples.
>>>       
>>>>>>> 1. How can I put validation error messages next to the fields
>>>>>>> themselves?
>>>>>>>               
>>>>>> Please see notices/error/warnings. For instance S.error("msgid", "an
>>>>>> error") and int your page you can put:
>>>>>>             
>>>>>> <lift:msg id="msgid" errorClass="error_class"
>>>>>> warningClass="warning_class"/> anywhere  ... probably near by your
>>>>>> form field.
>>>>>>             
>>>>>>> 2. Is there any example of use of the controller directory, I saw
>>>>>>>               
>>> the
>>>       
>>>>>>> directory in one example but no files in it. I understand from a
>>>>>>> previous email I read that controllers are not preferred as there
>>>>>>>               
>>> may
>>>       
>>>>>>> be many controls on a single page.
>>>>>>>               
>>>>>> Might be .. I'm not sure. But I never had to use them since function
>>>>>> bindings, DispathPf, LiftView ... brought everything I ever needed :D
>>>>>>             
>>>>>>> 3. Why does stateful snippit have a dispatch but other snippits do
>>>>>>> not. Is there any other information about dispatch around?
>>>>>>>               
>>>>>> dispatch function is a nice way of invoking snippet functions with no
>>>>>> reflection. Since "stateless" snippets are not required to implement
>>>>>> any interface the snippets functions are invoked using reflection.
>>>>>>             
>>>>>>> 4. For the DB, it is lazy loading? ie, if I navigate from one
>>>>>>>               
>>> object
>>>       
>>>>>>> to another does it query DB when I navigate down a mapped class to
>>>>>>> class relationship?
>>>>>>>               
>>>>>>> 5. Why do you use Can[] for some variables in examples and in other
>>>>>>> cases you do not. In particular in stateful snippet in example you
>>>>>>>               
>>> do
>>>       
>>>>>>> not use Can[] but in HellForm you do use Can[] when it is a normal
>>>>>>> snippet.
>>>>>>>               
>>>>>> Cans are just a cool way to express existence/non-existence of a
>>>>>> value. Often they are used to avoid null reference testing etc. A can
>>>>>> can be Empty or Full ... well there is also a Failure which is in
>>>>>>             
>>> fact
>>>       
>>>>>> an Empty Can.
>>>>>>             
>>>>>>> 6. Are Can's compatible with normal Scala Some None?
>>>>>>>               
>>>>>> there are implicit functions from converting a Can to/from Option.
>>>>>>             
>>> You
>>>       
>>>>>> can also have Can(Some("asdfsdfg"))
>>>>>>             
>>>>>>> 7. Why are the DB classes named as such, MappedString,
>>>>>>> MetaMegaProtoUser. Mapped makes sense, its mapped to the database
>>>>>>> right. Meta Mega Proto seems, complex, what does it mean?
>>>>>>>               
>>>>>>> 8. It seems I prefer bind method over having XML for form in the
>>>>>>> class. Does anyone have reasons for and against either method?
>>>>>>>               
>>>>>> Bind is the right way to generate dynamic content on top of your
>>>>>> template. I don't recommend using a lot of markup generated in Scala
>>>>>> code. This should be minimized and AFAIC bind is doing a really great
>>>>>> job.
>>>>>>             
>>>>>>> Thanks, Philip
>>>>>>>               
>> --
>> Lift, the simply functional web frameworkhttp://liftweb.net
>> Collaborative Task Managementhttp://much4.us
>> Follow me:http://twitter.com/dpp
>> Git some:http://github.com/dpp
>>     
>
> >
>   

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

Reply via email to