I am creating nodes programatically based on the feed from an external api. I have managed to create all nodes, assign field values and also set the
created date. Now my problem is that I also need to set the
changed date of each node to match the value returned from the feed. I have tried to set this value before saving the node without any success:
// $data contains the release information used to create and populate the node $node = new stdClass(); $node->title = $data->Release->Title; $node->type = 'release'; node_object_prepare($node); $node->status = NODE_PUBLISHED; $node->uid = 1; $node->language = LANGUAGE_NONE; // handle any field data - not really important handleFields($node, $data); // submit the node $node = node_submit($node); $node->created = strtotime($data->Release->PublishDate); // here I'm trying to set the changed value for the node $node->changed = strtotime($data->Release->LastChangeDate); // finally save the node node_save($node);
Would be nice if anyone have a solution to this problem. Perhaps I can make a raw query against the database in order to update the
changed date of the node?
The reason I need to set this value is because later on it will be used to compare against the modification date of a release in the feed so I can decide if the node needs to be updated or not. I know I could use a custom field for this purpose, storing the releases modification time and then compare against this value instead of the changed column in the node table.