[development] programmatically UPDATE a node won't work: bug or feature?

Augustin (Beginner) drupal.beginner at wechange.org
Thu Sep 7 09:10:30 UTC 2006

Hello again,

I was trying to update a node using FAPI2, but it completely failed. I wanted 
to try out FAPI2, to see how it worked.

I am now going to use the easier method (as I have been advised earlier) of 
1) node_load($nid);
2) edit the object
3) node_save($node);

I mention what follows in case it is an actual bug that needs fixing:

First, I found out that I must cast the node into an array:

      $node = (array) node_load($nid);

      $values['title'] = $question['q_desc'];
      $values['body'] = theme('demexp_question_body', $question);
      //  $values['changed'] = time();
      drupal_execute('demexp_question_node_form', $values, $node);

but drupal_execute fails.
I get: "This content has been modified by another user, changes cannot be 
saved." which comes from here:

  if (isset($node->nid) && (node_last_changed($node->nid) > 
$_POST['changed'])) {	
    form_set_error('changed', t('This content has been modified by another 
user, changes cannot be saved.'));

now, with the FAPI push method, $_POST is not set, is it?
so the check above always fail.

Is this another bug?
I've tried setting $values['changed']  but to no avail.

If it's a bug, I can submit a report.

Also, what would be the difference of using FAPI2 to programmatically update a 
node, compared to using node_load/edit/node_save?


p.s., yes, I do review a few bug patches, too, though not as many as others.

Because we and the world need to change.
Intimate Relationships, peace and harmony in the couple.

More information about the development mailing list