diff --git a/devel_generate/devel_generate.drush.inc b/devel_generate/devel_generate.drush.inc index 65ae382..03c2245 100644 --- a/devel_generate/devel_generate.drush.inc +++ b/devel_generate/devel_generate.drush.inc @@ -60,6 +60,7 @@ function devel_generate_drush_command() { 'types' => 'A comma delimited list of content types to create. Defaults to page,article.', 'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 1000', 'skip-fields' => 'A comma delimited list of fields to omit when generating random values', + 'days-ago' => 'Node creation dates will be distributed randomly from the current date, back to the selected number of days. Defaults to 0 (today).', 'languages' => 'A comma-separated list of language codes', ), 'aliases' => array('genc'), @@ -165,8 +166,18 @@ function drush_devel_generate_content($num_nodes = NULL, $max_comments = NULL) { drupal_save_session(FALSE); } + // Convert number of days to time in seconds. + $time_range = 0; + $days_ago = drush_get_option('days-ago'); + if (!empty($days_ago) && $days_ago > 0) { + + // Convert days to seconds. + $time_range = $days_ago * 86400; + } + $values['values']['kill_content'] = drush_get_option('kill'); $values['values']['title_length'] = 6; + $values['values']['time_range'] = $time_range; $values['values']['num_nodes'] = $num_nodes; $values['values']['max_comments'] = $max_comments; $values['values']['node_types'] = drupal_map_assoc(explode(',', drush_get_option('types', 'page,article'))); diff --git a/devel_generate/devel_generate.inc b/devel_generate/devel_generate.inc index 1d815e6..d52baf5 100644 --- a/devel_generate/devel_generate.inc +++ b/devel_generate/devel_generate.inc @@ -690,14 +690,19 @@ function devel_generate_content_add_node(&$results) { } } - // Avoid NOTICE. - if (!isset($results['time_range'])) { - $results['time_range'] = 0; - } - devel_generate_set_language($results, $node); - $node->created = REQUEST_TIME - mt_rand(0, $results['time_range']); + // Randomly generate publish date for the node, if 'time_range' is set. + $rand_time = 0; + if (!empty($results['time_range']) && $results['time_range'] > 0) { + $rand_time = REQUEST_TIME - mt_rand(0, $results['time_range']); + + // Make sure we don't break the space-time continuum. + if ($rand_time > REQUEST_TIME) { + $rand_time = 0; + } + } + $node->created = $rand_time; // A flag to let hook_node_insert() implementations know that this is a // generated node.