? 177722.patch Index: devel_generate.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/devel/devel_generate.inc,v retrieving revision 1.6 diff -u -u -p -r1.6 devel_generate.inc --- devel_generate.inc 19 Jul 2007 16:56:51 -0000 1.6 +++ devel_generate.inc 23 Sep 2007 06:53:36 -0000 @@ -30,55 +30,55 @@ function devel_create_users($num, $kill) drupal_set_message(t('!num_users created.', array('!num_users' => format_plural($num, '1 user', '@count users')))); } -function devel_generate_content($num_nodes, $num_comments, $title_length, $kill) { - if ($kill) { - db_query("DELETE FROM {comments}"); - db_query("DELETE FROM {node}"); - db_query("DELETE FROM {node_revisions}"); - db_query("DELETE FROM {node_comment_statistics}"); - if (db_table_exists('term_node')) { - db_query("DELETE FROM {term_node}"); - } - if (db_table_exists('forum')) { - db_query("DELETE FROM {forum}"); - } - db_query("DELETE FROM {url_alias}"); - switch ($GLOBALS['db_type']) { - case 'mysql': - case 'mysqli': - db_query("ALTER TABLE {node} AUTO_INCREMENT = 1"); - db_query("ALTER TABLE {comments} AUTO_INCREMENT = 1"); - break; - case 'pgsql': - db_query("SELECT setval('{node}_nid_seq', 1, false)"); - db_query("SELECT setval('{comments}_cid_seq', 1, false)"); - break; - } - drupal_set_message(t('Content deleted.')); +function devel_generate_content_kill(&$results) { + db_query("DELETE FROM {comments}"); + db_query("DELETE FROM {node}"); + db_query("DELETE FROM {node_revisions}"); + db_query("DELETE FROM {node_comment_statistics}"); + if (db_table_exists('term_node')) { + db_query("DELETE FROM {term_node}"); } + if (db_table_exists('forum')) { + db_query("DELETE FROM {forum}"); + } + db_query("DELETE FROM {url_alias}"); + switch ($GLOBALS['db_type']) { + case 'mysql': + case 'mysqli': + db_query("ALTER TABLE {node} AUTO_INCREMENT = 1"); + db_query("ALTER TABLE {comments} AUTO_INCREMENT = 1"); + break; + case 'pgsql': + db_query("SELECT setval('{node}_nid_seq', 1, false)"); + db_query("SELECT setval('{comments}_cid_seq', 1, false)"); + break; + } +} - // Get user id. - $users = devel_get_users(); - - $terms = devel_get_terms(); +function devel_generate_content_pre_node(&$results) { + $results['users'] = devel_get_users(); + $results['terms'] = devel_get_terms(); +} - // Create $num_nodes pseudo-random nodes. - $nids = devel_create_nodes($num_nodes, $users, $title_length); +function devel_generate_content_add_node(&$results) { + // Create 1 pseudo-random nodes. + $nids = devel_create_nodes(1, $results['users'], $results['title_length']); if (!empty($nids)) { - drupal_set_message(t('%num nodes created.', array('%num' => count($nids)))); - - $nodes = devel_get_nodes($nids[0]); - - devel_add_terms($nodes, $terms); - - $comments = devel_get_comments(); - - $cids = devel_create_comments($num_comments, $users, $nodes, $comments); - if (!empty($cids)) { - drupal_set_message(t('%num comments created.', array('%num' => $num_comments))); + if (!isset($results['last_nid'])) { + $results['last_nid'] = $nids[0]; } + devel_add_terms(devel_get_nodes($nids[0]), $results['terms']); } } + +function devel_generate_content_pre_comment(&$results) { + $results['comments'] = devel_get_comments(); + $results['nodes'] = devel_get_nodes($results['last_nid']); +} + +function devel_generate_content_add_comment(&$results) { + devel_create_comments(1, $results['users'], $results['nodes'], $results['comments']); +} function devel_create_nodes($records, $users, $title_length = 8) { Index: devel_generate.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/devel/devel_generate.module,v retrieving revision 1.6 diff -u -u -p -r1.6 devel_generate.module --- devel_generate.module 19 Jul 2007 16:56:51 -0000 1.6 +++ devel_generate.module 23 Sep 2007 06:53:36 -0000 @@ -1,6 +1,8 @@ $title_length); + $operations[] = array('devel_batch_generate_content_pre_node', array($vars)); + for ($num = 0; $num < $num_nodes; $num ++) { + $operations[] = array('devel_batch_generate_content_add_node', array()); + } + + // add the operations to create the comments + $operations[] = array('devel_batch_generate_content_pre_comment', array()); + for ($num = 0; $num < $num_comments; $num ++) { + $operations[] = array('devel_batch_generate_content_add_comment', array()); + } + + // start the batch + $batch = array( + 'title' => t('Generating Content'), + 'operations' => $operations, + 'finished' => 'devel_generate_batch_finished', + ); + batch_set($batch); +} + +function devel_batch_generate_taxonomy_data($num_vocab, $num_terms, $title_length, $kill_taxonomy) { + // @TODO +} + +/** + * Create Content Batch Functions: + */ + +function devel_batch_generate_content_kill(&$context) { + require_once('devel_generate.inc'); + devel_generate_content_kill($context['results']); +} + +function devel_batch_generate_content_pre_node($vars, &$context) { + $context['results'] = $vars; + $context['results']['num_nids'] = 0; + require_once('devel_generate.inc'); + devel_generate_content_pre_node($context['results']); +} + +function devel_batch_generate_content_add_node(&$context) { + require_once('devel_generate.inc'); + devel_generate_content_add_node($context['results']); + $context['results']['num_nids'] ++; +} + +function devel_batch_generate_content_pre_comment(&$context) { + $context['results']['num_cids'] = 0; + require_once('devel_generate.inc'); + devel_generate_content_pre_comment($context['results']); +} + +function devel_batch_generate_content_add_comment(&$context) { + require_once('devel_generate.inc'); + devel_generate_content_add_comment($context['results']); + $context['results']['num_cids'] ++; +} + +function devel_generate_batch_finished($success, $results, $operations) { + if ($success) { + $message = t('Finished @num_nids nodes and @num_cids comments created successfully.', array('@num_nids' => $results['num_nids'], '@num_cids' => $results['num_cids'])); + } + else { + $message = t('Finished with an error.'); + } + drupal_set_message($message); +}