[development] Node types in hook_form_alter()

Victor Kane victorkane at gmail.com
Sun Dec 13 14:05:42 UTC 2009

To survive in the medium and long term, Drupal must pay its code debt and
accept an object oriented paradigm... we can't always be inventing the wheel
over and over and over again at such a high cost... reflection/introspection
(everything should cheaply and automatically know what it is) is part and
parcel of any modern approach to programming and architecture... to show
that it is perfectly possible even in PHP, see:

Recently there was a Talmudic discussion about what pattern to label Drupal
(MVC, etc., etc.). Look, the bindings of an object with the fields of a form
on the presentation level is confused completely here with the persistence
of the node object. It's a disaster. And I'm not sure that the "fields in
core" breakthrough really solves the problem, despite its performance cost.

Victor Kane

"Make the capitalists pay the crisis, not the workers"

On Sun, Dec 13, 2009 at 10:49 AM, James Benstead
<james.benstead at gmail.com>wrote:

> Thanks Ken & Nancy - I'm now wondering how I've been writing modules for
> almost a year without realising the whole $node object is available from
> $form =).
> 2009/12/12 Ken Rickard <agentrickard at gmail.com>
> Check $form[#node]->type. If not empty, use that string.
>> - Ken
>> On Dec 12, 2009, at 2:47 PM, James Benstead <james.benstead at gmail.com>
>> wrote:
>> I'm writing a module that adds a field to the create/edit forms for nodes
>> of certain types - the actual types can be chosen by the user. There are
>> loads of ways to identify the type of the current node from within
>> hook_form_alter(), but is there an accepted standard way to do it?
>> If I use $form['type']['#value'] I get "Notice: Undefined variable"
>> warnings as my local server's error reporting is very verbose. I know I
>> could change the error reporting level, but surely it's better practice to
>> try and kill the bug?
>> And if I use $form_id I have to use nodetype_node_form and convert it to
>> nodetype - and, as an aside, I can't find a PHP function to do this cleanly.
>> So, what's the accepted way to do this?
>> --
>> Google Talk/Windows Live Messenger/AIM: <james.benstead at gmail.com>
>> james.benstead at gmail.com
>> Yahoo! Messenger/Twitter/IRC (Freenode): jim0203
>> Jabber: <jim0203 at jabber.org>jim0203 at jabber.org // ICQ: 7088050
>> Skype: jimbenstead
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/development/attachments/20091213/464c2aae/attachment.html 

More information about the development mailing list