diff --git a/devel_generate.inc b/devel_generate.inc
index c865435670d34c5a8fc87a9575eac43d3de9f734..ceea8dcf356ef516958c751b0250b193e2f4ba2b 100644
--- a/devel_generate.inc
+++ b/devel_generate.inc
@@ -98,7 +98,7 @@ function devel_create_nodes($records, $users, $title_length = 8) {
for ($i = 1; $i <= $records; $i++) {
$node->uid = $users[array_rand($users)];
$node->type = $types[array_rand($types)];
-
+
$title = devel_create_greeking(rand(1, $title_length), TRUE);
/*
$title_words = rand(1, 8);
@@ -168,6 +168,127 @@ function devel_create_comments($records, $users, $nodes, $comments) {
return $cids;
}
+function devel_generate_vocabs($records, $maxlength = 12, $types = array('story', 'blog', 'forum', 'page')) {
+ $vocs = array();
+
+ // Insert new data:
+ for ($i = 1; $i <= $records; $i++) {
+ $voc = array();
+ $voc['name'] = devel_generate_word(rand(2, $maxlength));
+ $voc['description'] = "description of ". $voc['name'];
+ $voc['nodes'] = array_flip(array($types[array_rand($types)]));
+ foreach ($voc['nodes'] as $key => $value) {
+ $voc['nodes'][$key] = $key;
+ }
+ $voc['multiple'] = 1;
+ $voc['required'] = 0;
+ $voc['relations'] = 1;
+ $voc['hierarchy'] = 1;
+ $voc['weight'] = rand(0,10);
+
+ taxonomy_save_vocabulary($voc);
+ $vocs[] = $voc['name'];
+ }
+ return $vocs;
+}
+
+function devel_generate_terms($records, $vocs, $maxlength = 12) {
+ $terms = array();
+
+ // Insert new data:
+ for ($i = 1; $i <= $records; $i++) {
+ switch ($i % 2) {
+ case 1:
+ $term['vid'] = $vocs[array_rand($vocs)];
+ // dont set a parent. handled by taxonomy_save_term()
+ // $term->parent = 0;
+ break;
+ case 2:
+ default:
+ $parent = db_fetch_object(db_query_range("SELECT t.tid, v.vid FROM {term_data} t INNER JOIN {vocabulary} v ON t.vid = v.vid ORDER BY RAND()", 0, 1));
+ $term['parent'] = array($parent->tid);
+ $term['vid'] = $parent->vid;
+ break;
+ }
+
+ $term['name'] = devel_generate_word(rand(2, $maxlength));
+ $term['description'] = "description of ". $term['name'];
+ $term['weight'] = rand(0,10);
+
+ $status = taxonomy_save_term($term);
+ $output = NULL;
+
+ if ($status) {
+ $terms[] = $term['name'];
+ }
+
+ unset($term);
+ }
+ return $terms;
+}
+
+function devel_generate_get_vocabs() {
+ $vocs = array();
+ $result = db_query("SELECT vid FROM {vocabulary}");
+ while($voc = db_fetch_object($result)){
+ $vocs[] = $voc->vid;
+ }
+ return $vocs;
+}
+
+function devel_generate_taxonomy_data($num_vocab, $num_terms, $title_length, $kill) {
+
+ if ($kill) {
+ db_query("DELETE FROM {term_data}");
+ db_query("DELETE FROM {term_node}");
+ db_query("DELETE FROM {term_hierarchy}");
+ db_query("DELETE FROM {term_relation}");
+ db_query("DELETE FROM {term_synonym}");
+ db_query("DELETE FROM {vocabulary}");
+ db_query("DELETE FROM {vocabulary_node_types}");
+ switch ($GLOBALS['db_type']) {
+ case 'mysql':
+ case 'mysqli':
+ db_query("ALTER TABLE {vocabulary} AUTO_INCREMENT = 1");
+ db_query("ALTER TABLE {term_data} AUTO_INCREMENT = 1");
+ break;
+ case 'pgsql':
+ db_query("SELECT setval('{vocabulary}_vid_seq', 1, false)");
+ db_query("SELECT setval('{term_data}_tid_seq', 1, false)");
+ break;
+ }
+ drupal_set_message(t('Deleted taxonomy.'));
+ }
+
+ $new_vocs = devel_generate_vocabs($num_vocab, $title_length);
+ if (!empty($new_vocs)) {
+ drupal_set_message(t('Created the following new vocabularies: !vocs', array('!vocs' => theme('item_list', $new_vocs))));
+ }
+ $vocs = devel_generate_get_vocabs();
+ $new_terms = devel_generate_terms($num_terms, $vocs, $title_length);
+ if (!empty($new_terms)) {
+ drupal_set_message(t('Created the following new terms: !terms', array('!terms' => theme('item_list', $new_terms))));
+ }
+}
+
+function devel_generate_word($length){
+ srand((double)microtime()*1000000);
+
+ $vowels = array("a", "e", "i", "o", "u");
+ $cons = array("b", "c", "d", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "u", "v", "w", "tr",
+ "cr", "br", "fr", "th", "dr", "ch", "ph", "wr", "st", "sp", "sw", "pr", "sl", "cl", "sh");
+
+ $num_vowels = count($vowels);
+ $num_cons = count($cons);
+ $word = '';
+
+ while(strlen($word) < $length){
+ $word .= $cons[rand(0, $num_cons - 1)] . $vowels[rand(0, $num_vowels - 1)];
+ }
+
+ return substr($word, 0, $length);
+}
+
function devel_create_content() {
$nparas = rand(1,12);
$type = rand(0,3);
@@ -253,12 +374,12 @@ function devel_create_greeking($words, $title = FALSE) {
if (!$title) {
while ($words > 0) {
$sentence_length = rand(3,10);
-
+
$greeking .= ucfirst($dictionary[array_rand($dictionary)]);
for ($i = 1; $i < $sentence_length; $i++) {
$greeking .= " " . $dictionary[array_rand($dictionary)];
}
-
+
$greeking .= ". ";
$words -= $sentence_length;
}
diff --git a/devel_generate.module b/devel_generate.module
index 76609fd43678cf86605b78a731b5e4351f46b3b0..829fb99c7838f24273609deeca6b71635e7fd772 100644
--- a/devel_generate.module
+++ b/devel_generate.module
@@ -54,7 +54,7 @@ function devel_generate_users_form() {
$form['kill_users'] = array(
'#type' => 'checkbox',
'#title' => t('Delete all users but user 1 before generating new users.'),
- '#default_value' => FALSE,
+ '#default_value' => FALSE,
);
$form['submit'] = array(
'#type' => 'submit',
@@ -68,24 +68,6 @@ function devel_generate_users_form_submit($form_id, &$form_state) {
devel_create_users($form_state['values']['num'], $form_state['values']['kill_users']);
}
-function devel_generate_word($length){
- srand((double)microtime()*1000000);
-
- $vowels = array("a", "e", "i", "o", "u");
- $cons = array("b", "c", "d", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "u", "v", "w", "tr",
- "cr", "br", "fr", "th", "dr", "ch", "ph", "wr", "st", "sp", "sw", "pr", "sl", "cl", "sh");
-
- $num_vowels = count($vowels);
- $num_cons = count($cons);
- $word = '';
-
- while(strlen($word) < $length){
- $word .= $cons[rand(0, $num_cons - 1)] . $vowels[rand(0, $num_vowels - 1)];
- }
-
- return substr($word, 0, $length);
-}
-
function devel_generate_content_form() {
$form['num_nodes'] = array(
'#type' => 'textfield',
@@ -122,75 +104,6 @@ function devel_generate_content_form_submit($form_id, &$form_state) {
devel_generate_content($form_state['values']['num_nodes'], $form_state['values']['num_comments'], $form_state['values']['title_length'], $form_state['values']['kill_content']);
}
-function devel_generate_vocabs($records, $maxlength = 12) {
- $types = array("story", "blog", "forum", "page");
- $output = NULL;
- // Insert new data:
- for ($i = 1; $i <= $records; $i++) {
- $voc = array();
- $voc['name'] = devel_generate_word(rand(2, $maxlength));
- $voc['description'] = "description of ". $voc['name'];
- $voc['nodes'] = array_flip(array($types[array_rand($types)]));
- foreach ($voc['nodes'] as $key => $value) {
- $voc['nodes'][$key] = $key;
- }
- $voc['multiple'] = 1;
- $voc['required'] = 0;
- $voc['relations'] = 1;
- $voc['hierarchy'] = 1;
- $voc['weight'] = rand(0,10);
-
- taxonomy_save_vocabulary($voc);
- $output .= "created vocabulary ". $voc['name']. "
";
- }
-
- return $output;
-}
-
-function devel_generate_terms($records, $vocs, $maxlength = 12) {
- // Insert new data:
- for ($i = 1; $i <= $records; $i++) {
- switch ($i % 2) {
- case 1:
- $term['vid'] = $vocs[array_rand($vocs)];
- // dont set a parent. handled by taxonomy_save_term()
- // $term->parent = 0;
- break;
- case 2:
- default:
- $parent = db_fetch_object(db_query_range("SELECT t.tid, v.vid FROM {term_data} t INNER JOIN {vocabulary} v ON t.vid = v.vid ORDER BY RAND()", 0, 1));
- $term['parent'] = array($parent->tid);
- $term['vid'] = $parent->vid;
- break;
- }
-
- $term['name'] = devel_generate_word(rand(2, $maxlength));
- $term['description'] = "description of ". $term['name'];
- $term['weight'] = rand(0,10);
-
- $status = taxonomy_save_term($term);
- $output = NULL;
-
- if ($status) {
- $output .= t("Created term @term", array('@term' => $term['name'])). "
";
- }
- else {
- $output .= t("There was an error creating term @term", array('@term' => $term['name'])). "
";
- }
- unset($term);
- }
- return $output;
-}
-
-function devel_generate_get_vocabs() {
- $vocs = array();
- $result = db_query("SELECT vid FROM {vocabulary}");
- while($voc = db_fetch_object($result)){
- $vocs[] = $voc->vid;
- }
- return $vocs;
-}
-
function devel_generate_taxonomy_form() {
$form['num_vocab'] = array(
'#type' => 'textfield',
@@ -204,17 +117,17 @@ function devel_generate_taxonomy_form() {
'#default_value' => 50,
'#size' => 10,
);
- $form['kill_taxonomy'] = array(
- '#type' => 'checkbox',
- '#title' => t('Delete existing terms and vocabularies before generating new content.'),
- '#default_value' => FALSE,
- );
$form['title_length'] = array(
'#type' => 'textfield',
'#title' => t('Max word length of term/vocab names'),
'#default_value' => 12,
'#size' => 10,
);
+ $form['kill_taxonomy'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Delete existing terms and vocabularies before generating new content.'),
+ '#default_value' => FALSE,
+ );
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Do it!'),
@@ -223,24 +136,6 @@ function devel_generate_taxonomy_form() {
}
function devel_generate_taxonomy_form_submit($form_id, &$form_state) {
- $vocs = array();
- $result = db_query("SELECT vid FROM {vocabulary}");
- while($voc = db_fetch_object($result)){
- $vocs[] = $voc->vid;
- }
-
- if ($form_state['values']['kill_taxonomy']) {
- db_query("DELETE FROM {term_data}");
- db_query("DELETE FROM {term_node}");
- db_query("DELETE FROM {term_hierarchy}");
- db_query("DELETE FROM {term_relation}");
- db_query("DELETE FROM {term_synonym}");
- db_query("DELETE FROM {vocabulary}");
- db_query("DELETE FROM {vocabulary_node_types}");
- }
-
- $output = devel_generate_vocabs($form_state['values']['num_vocab'], $form_state['values']['title_length']);
- $vocs = devel_generate_get_vocabs();
- $output .= devel_generate_terms($form_state['values']['num_terms'], $vocs, $form_state['values']['title_length']);
- drupal_set_message($output);
+ require_once('devel_generate.inc');
+ devel_generate_taxonomy_data($form_state['values']['num_vocab'], $form_state['values']['num_terms'], $form_state['values']['title_length'], $form_state['values']['kill_taxonomy']);
}