[development] programmatic creation of node
Omar Abdel-Wahab
owahab at gmail.com
Wed Mar 12 03:30:14 UTC 2008
Any ideas why does this fails to set the node author:
$node = new stdClass();
$node->title = 'foo';
$node->uid = 1;
node_submit($node);
node_save($node);
While this succeeds:
$node = new stdClass();
$node->title = 'foo';
node_submit($node);
$node->uid = 1;
node_save($node);
On Mon, Mar 10, 2008 at 9:17 PM, Earnie Boyd
<earnie at users.sourceforge.net> wrote:
> 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/
>
>
--
Omar Abdel-Wahab
More information about the development
mailing list