[development] Overriding function declared in another module

Steve Ringwood nevets at tds.net
Tue Jan 18 14:28:25 UTC 2011

While it makes sense to prefer the for hook_form_FORM_ID_alter(), it is called before the more
general hook_form_alter() so if you want to run after all other alterations you need to use hook_form_alter() .
Also since CCK uses hook_form_alter(),  if you want to run after it you need to use hook_form_alter().


On 1/18/2011 8:21 AM, John Fiala wrote:
> On Tue, Jan 18, 2011 at 6:16 AM, Leonard den Ottolander.nl
> <drupal at den.ottolander.nl>  wrote:
>> >  Hello Jamie,
>> >
>> >  On Tue, 2011-01-18 at 07:29 -0500, Jamie Holly wrote:
>>> >>  The trick is to set the
>>> >>  weight of your module higher than the weight of the menu module so that
>>> >>  the hook runs after menu's hook_form_alter.
>> >
>> >  Right. That did the trick. Thanks!
>> >
>> >  The fact that I saw no explicit hooking confused me. I assume every
>> >  module hooks to the forms using<module name>_form_alter implicitly?
> Exactly.  Knowing how to use the hook_form_alter hooks properly makes
> customizing Drupal much easier.
> Each time a form is built, it gets sent through every hook_form_alter
> implementation in every active Drupal Module.  And, as FGM pointed it,
> it also goes through a specific hook: hook_form_FORM_ID_alter.  Have a
> look at both of these and play around with them.  I personally prefer
> to use the second one, because it's more specific and obvious what it
> does, and you don't get one of those huge if/switch statements in the
> hook... but sometimes you need to use hook_form_alter because your
> changes apply across a couple of related forms, especially the node
> forms.
> -- John Fiala www.jcfiala.net

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/development/attachments/20110118/548f2fad/attachment.html 

More information about the development mailing list