[development] form_set_error and updating form values

Athanasios Velios a.velios at gmail.com
Mon Feb 20 15:27:19 UTC 2012


Hm, I commented the lines in template.php and built a new module with 
the hook_form_alter and additional logic but this does not make any 
difference at all. Exactly the same behaviour...

Thanasis

On 20/02/12 09:25, Mukesh Agarwal wrote:
> Yes, Drupal is quite structured and has defined ways to deal with
> stuff.. template.php and hook_form_alter are for 2 different purposes
> and in your case writing a custom module which implements the hook is
> the right way.
>
> On Mon, Feb 20, 2012 at 2:53 PM, Athanasios Velios <a.velios at gmail.com
> <mailto:a.velios at gmail.com>> wrote:
>
>     Do you reckon that the problem is putting the code in template.php
>     instead of a custom module?
>
>     Thanks again,
>
>     Thanasis
>
>
>     On 20/02/12 08:27, Mukesh Agarwal wrote:
>
>         The place to implement logic based form_set_error should be in the
>         validate function and not template.php .. I would recommend you use
>         hook_form_alter
>         <http://api.drupal.org/api/__drupal/modules%21system%__21system.api.php/function/__hook_form_alter/7
>         <http://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_form_alter/7>>
>
>         -> $form_id will indicate the form you wish to alter, and there
>         you can
>         add a custom validate function in $form['#validate'] -- the custom
>         function should then take care of form_set_error
>
>         http://api.drupal.org/api/__drupal/includes%21form.inc/__function/form_set_error/7
>         <http://api.drupal.org/api/drupal/includes%21form.inc/function/form_set_error/7>
>         -- you need to set the element name as first parameter to make
>         sure that
>         the particular field is highlighted.
>
>         On Mon, Feb 20, 2012 at 1:51 PM, Athanasios Velios
>         <a.velios at gmail.com <mailto:a.velios at gmail.com>
>         <mailto:a.velios at gmail.com <mailto:a.velios at gmail.com>>> wrote:
>
>             Hello,
>
>             I am trying to alter a form (uc_cart_view_form) with various
>         input
>             fields (Qty for products). In template.php I am adding some
>         extra
>             logic which applies across a selection of these fields. Once the
>             logic is checked I need to display an error message. I am using
>             form_set_error to show the message. The problem is that the user
>             then updates the input values and updates the form, but the new
>             figures are not taken into account. They are shown in the
>         form, but
>             not used in my template.php extra logic.
>
>             drupal_set_message allows the new values to work but the message
>             appears twice and it does not, obviously, link to specific
>         fields in
>             the form which are problematic.
>
>             Setting form_state rebuild to true before form_set_error
>         does not
>             have an effect.
>
>             Any ideas of what needs to be done for these values to be
>         taken into
>             account with form_set_error?
>
>             Thanks
>
>             Thanasis
>
>
>
>
>         --
>         Cheers,
>         Mukesh Agarwal
>         __________________________________
>         Innoraft Solutions <http://www.innoraft.com>  || +91 8017220799
>
>
>
>
> --
> Cheers,
> Mukesh Agarwal
> ________________________________
> Innoraft Solutions <http://www.innoraft.com>  || +91 8017220799
>


More information about the development mailing list