[development] programmatic creation of node

Earnie Boyd earnie at users.sourceforge.net
Mon Mar 10 19:17:13 UTC 2008


Quoting Victor Kane <victorkane at gmail.com>:

> On Mon, Mar 10, 2008 at 10:16 AM, Earnie Boyd <earnie at users.sourceforge.net>
> wrote:
>
>> Quoting Victor Kane <victorkane at gmail.com>:
>>
>> > I do this a lot, so I will ad my two cents.
>> >
>> > The following line is absolutely essential for "good housekeeping",
>> > especially if you are using cck fields:
>> >
>> > $node = node_submit($node);
>> >
>> > However, it will NOT work if ... it shouldn't; for example if you omit
>> (as
>> > does the above code) initializing the uid attribute.
>> >
>>
>> Which is what http://api.drupal.org/api/function/node_object_prepare
>> does when nid is not set in the node object.
>
>
> OK, great. But I thought I read KarenS stating somewhere that the
> node_submit($node) was good when we are dealing with CCK fields... would be
> good to know
>

Maybe because CCK uses the nodeapi ``presave'' operation which 
node_save calls first.

<code 
source="http://cvs.drupal.org/viewvc.py/drupal/contributions/modules/cck/content.module?view=markup>
/**
* Nodeapi 'presave' op.
*
*/
function content_presave(&$node) {
  _content_field_invoke('presave', $node);
  _content_field_invoke_default('presave', $node);
}
</code>


Earnie -- http://for-my-kids.com/
-- http://give-me-an-offer.com/



More information about the development mailing list