Clone Appears to revert changes on save
joegml - January 30, 2009 - 19:20
| Project: | Node clone |
| Version: | 6.x-1.0 |
| Component: | Code |
| Category: | support request |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | active |
Jump to:
Description
Hi Folks. Any help here greatly appreciated. Not sure if this is a bug or not.
I'm trying to clone a node, then modify and save the modified node. On node_save it appears that the modifications I made to the node get wiped out. See code and debug output below. The magic reversion seems to happen as node_save is called. Sorry it's so long ... wanted to give good detail ;-)
Thank You.
<?php
$path = drupal_get_path('module', 'clone');
if($dbg){ print ">> passed get_path.<br>";}
require_once($path .'/clone.pages.inc');
if($dbg){ print ">> passed require.<br>";}
# Get series master.
$series_node = node_load( $series_nid );
$master_nid = $series_node->field_master_program[0]["nid"];
if($dbg){
print "dbg>> master_nid is $master_nid<br>";
}
# Clone from series master.
$clone_nid = clone_node_save( $master_nid ); # node_save happens in here.
$new_node = node_load( $clone_nid );
# Assign new info: title, length, file.
$new_node->title = $title;
$new_node->field_series[0]["nid"] = $series_nid; # May be empty.
$new_node->field_media_filename[0]["value"] = $file_name;
$new_node->field_approximate_length[0]["value"] = $length_string;
$new_node = node_submit( $new_node );
if($dbg ){
print "dbg>> New Node post clone pre save >><pre>";
print_r( $new_node );
print "</pre>";
}
node_save( $new_node );
if($dbg ){
$new_node = node_load( $new_node->nid );# without this, below reports node is good.
print "dbg>> New Node post clone post save and reload >><pre>";
print_r( $new_node );
print "</pre>";
}
?>Debug output
dbg in pegevent_build_program_from_master receving title, length_string, series_nid, file_name, channel
Colchester Selectboard, 01:06:40, 1363, CSEL011309.mpg, 16
>> passed get_path.
>> passed require.
dbg>> master_nid is 3128
dbg>> New Node post clone pre save >>
stdClass Object
(
[nid] => 6076
[type] => content_pegevent_program
[language] =>
[uid] => 3
[status] => 1
[created] => 1233341693
[changed] => 1233341693
[comment] => 0
[promote] => 0
[moderate] => 0
[sticky] => 0
[tnid] => 0
[translate] => 0
[vid] => 6079
[revision_uid] => 3
[title] => Colchester Selectboard
[body] =>
[teaser] =>
[log] =>
[revision_timestamp] => 1233341693
[format] => 0
[name] => joe
[picture] =>
[data] => a:2:{s:13:"form_build_id";s:37:"form-53bdfde05ed2b9fe5e65bda54a065682";s:7:"contact";i:1;}
[path] => program/clone-colchester-selectboard-6
[field_series] => Array
(
[0] => Array
(
[nid] => 1363
)
)
[field_approximate_length] => Array
(
[0] => Array
(
[value] => 01:06:40
)
)
[field_pdate] => Array
(
[0] => Array
(
[value] => 2008-12-09T00:00:00
[timezone] => America/New_York
[timezone_db] => America/New_York
[date_type] => date
)
)
[field_description] => Array
(
[0] => Array
(
[value] =>
[format] =>
)
)
[field_runs] => Array
(
[0] => Array
(
[value] =>
)
)
[field_ptime] => Array
(
[0] => Array
(
[value] =>
)
)
[field_location] => Array
(
[0] => Array
(
[value] =>
)
)
[field_worker] => Array
(
[0] => Array
(
[value] =>
)
)
[field_is_series_master] => Array
(
[0] => Array
(
[value] => Yes
)
)
[field_media_filename] => Array
(
[0] => Array
(
[value] => CSEL011309.mpg
)
)
[field_thumbnail_poster_frame] => Array
(
[0] => Array
(
[value] => 1
)
)
[field_stream] => Array
(
[0] => Array
(
[value] => 1
)
)
[field_email] => Array
(
[0] => Array
(
[email] =>
)
)
[field_channel] => Array
(
[0] => Array
(
[value] => 16
)
)
[last_comment_timestamp] => 1233341693
[last_comment_name] =>
[comment_count] => 0
[taxonomy] => Array
(
[1] => stdClass Object
(
[tid] => 1
[vid] => 1
[name] => Public
[description] =>
[weight] => 0
)
[10] => stdClass Object
(
[tid] => 10
[vid] => 3
[name] => Meeting
[description] =>
[weight] => 0
)
[18] => stdClass Object
(
[tid] => 18
[vid] => 4
[name] => Selectboard
[description] =>
[weight] => 0
)
[4] => stdClass Object
(
[tid] => 4
[vid] => 2
[name] => Colchester
[description] =>
[weight] => 0
)
)
[files] => Array
(
)
[validated] => 1
)
dbg>> New Node post clone post save and reload >>
stdClass Object
(
[nid] => 6076
[type] => content_pegevent_program
[language] =>
[uid] => 3
[status] => 1
[created] => 1233341693
[changed] => 1233341693
[comment] => 0
[promote] => 0
[moderate] => 0
[sticky] => 0
[tnid] => 0
[translate] => 0
[vid] => 6079
[revision_uid] => 3
[title] => Clone of Colchester Selectboard
[body] =>
[teaser] =>
[log] =>
[revision_timestamp] => 1233341693
[format] => 0
[name] => joe
[picture] =>
[data] => a:2:{s:13:"form_build_id";s:37:"form-53bdfde05ed2b9fe5e65bda54a065682";s:7:"contact";i:1;}
[path] => program/clone-colchester-selectboard-6
[field_series] => Array
(
[0] => Array
(
[nid] => 1363
)
)
[field_approximate_length] => Array
(
[0] => Array
(
[value] => 01:36:15
)
)
[field_pdate] => Array
(
[0] => Array
(
[value] => 2008-12-09T00:00:00
[timezone] => America/New_York
[timezone_db] => America/New_York
[date_type] => date
)
)
[field_description] => Array
(
[0] => Array
(
[value] =>
[format] =>
)
)
[field_runs] => Array
(
[0] => Array
(
[value] =>
)
)
[field_ptime] => Array
(
[0] => Array
(
[value] =>
)
)
[field_location] => Array
(
[0] => Array
(
[value] =>
)
)
[field_worker] => Array
(
[0] => Array
(
[value] =>
)
)
[field_is_series_master] => Array
(
[0] => Array
(
[value] => Yes
)
)
[field_media_filename] => Array
(
[0] => Array
(
[value] => CSEL120908.mpg
)
)
[field_thumbnail_poster_frame] => Array
(
[0] => Array
(
[value] => 1
)
)
[field_stream] => Array
(
[0] => Array
(
[value] => 1
)
)
[field_email] => Array
(
[0] => Array
(
[email] =>
)
)
[field_channel] => Array
(
[0] => Array
(
[value] => 16
)
)
[last_comment_timestamp] => 1233341693
[last_comment_name] =>
[comment_count] => 0
[taxonomy] => Array
(
[1] => stdClass Object
(
[tid] => 1
[vid] => 1
[name] => Public
[description] =>
[weight] => 0
)
[10] => stdClass Object
(
[tid] => 10
[vid] => 3
[name] => Meeting
[description] =>
[weight] => 0
)
[18] => stdClass Object
(
[tid] => 18
[vid] => 4
[name] => Selectboard
[description] =>
[weight] => 0
)
[4] => stdClass Object
(
[tid] => 4
[vid] => 2
[name] => Colchester
[description] =>
[weight] => 0
)
)
[files] => Array
(
)
)
#1
node_load caches the loaded node. Try passing the reset parameter in.