[development] programmatic creation of node
Moshe Weitzman
weitzman at tejasa.com
Sat Mar 8 16:42:30 UTC 2008
In drupal5, you should call hook_node_submit() and
hook_nodeapi('submit') before node_save(). that will assure that any
group info gets saved (for example).
In d6 this is not needed since those submit hooks became
hook_nodeapi(pre_save) and that happens from within node_save().
drupal_execute is also a valid way. the node_load() is a little
expensive but this is a very clean way to proceed. if it is working
for you, i would proceed like this.
On Sat, Mar 8, 2008 at 10:53 AM, Novák Áron <aron at novaak.net> wrote:
> Hi!
>
> While the development of FeedAPI, i faced with a problem. FeedAPI has to
> create nodes programmatically, i believed that this is a really easy thing to
> do, feedapi now works like this:
> $node->data1 = "foo";
> $node->data2 = "bar";
> node_object_prepare($node); // this is about the default values
> node_save($node);
>
> But I got a report that this is not a good way to do:
> http://drupal.org/node/196273
> Summary:
> "node_object_prepare() and node_prepare() functions are meant to simulate the
> demonstration of a node"
> And some users, who use FeedAPI + 3rd party modules together, really
> experience bugs around node creation / handling:
> http://drupal.org/node/195105 (summary: the core forum module uses form_alter
> to pass taxonomy-like data. And this data is lost now.)
>
> Can you suggest me a perfect way to handle this problem?
> mustafau (http://drupal.org/user/207559) suggested to use
> drupal_execute($form_id, $form_values), but in this case, i had another
> problem: drupal_execute has no useful return value and $node structure
> remains unaltered, so i had to do a node_load after this, which is quite
> expensive.
>
> Thanks,
>
> Aron Novak
>
More information about the development
mailing list