| [ Index ] |
PHP Cross Reference of Drupal 6 (yi-drupal) |
[Summary view] [Print] [Text view]
1 <?php 2 // $Id: devel_generate.drush.inc,v 1.1.2.14 2010/07/07 16:46:37 weitzman Exp $ 3 4 /** 5 * @file 6 * Generate content, taxonomy, and users via drush framework. 7 */ 8 9 /** 10 * Implementation of hook_drush_help(). 11 */ 12 function devel_generate_drush_help($section) { 13 switch ($section) { 14 case 'drush:generate-users': 15 return dt('Generate user accounts.'); 16 case 'drush:generate-taxonomy': 17 return dt('Generate taxonomy terms for a given vocabulary.'); 18 case 'drush:generate-content': 19 return dt('Generate nodes and comments.'); 20 } 21 } 22 23 /** 24 * Implementation of hook_drush_command(). 25 */ 26 function devel_generate_drush_command() { 27 $items['generate-users'] = array( 28 'description' => 'Creates users.', 29 'arguments' => array( 30 'num_users' => 'Number of users to generate.', 31 ), 32 'options' => array( 33 'kill' => 'Delete all users before generating new ones.', 34 ), 35 'aliases' => array('genu'), 36 ); 37 $items['generate-taxonomy'] = array( 38 'description' => 'Creates taxonomy.', 39 'arguments' => array( 40 'vid' => 'Vocabulary ID into which new terms will be inserted.', 41 'num_terms' => 'Number of terms to generate', 42 ), 43 'options' => array( 44 'kill' => 'Delete all terms in specified vocab before generating.' 45 ), 46 'aliases' => array('gent'), 47 ); 48 $items['generate-content'] = array( 49 'description' => 'Creates content.', 50 'drupal dependencies' => array('devel_generate'), 51 'arguments' => array( 52 'num_nodes' => 'Number of nodes to generate.', 53 'max_comments' => 'Maximum number of comments to generate.', 54 ), 55 'options' => array( 56 'kill' => 'Delete all content before generating new content.', 57 'add-terms' => 'Add terms to generated nodes.', 58 'add-upload' => 'Add an attached file to generated nodes.', 59 'types' => 'Specify which types of nodes to generate. Should be a comma-separated list.', 60 'languages' => 'A comma-separated list of language codes', 61 ), 62 'aliases' => array('genc'), 63 ); 64 return $items; 65 } 66 67 /** 68 * Command callback. Generate a number of users. 69 */ 70 function drush_devel_generate_generate_users($num_users = NULL) { 71 if (drush_generate_is_number($num_users) == FALSE) { 72 drush_set_error('DEVEL_GENERATE_INVALID_NUMBER', dt('Invalid number of users.')); 73 } 74 drush_generate_include_devel(); 75 drush_op('devel_create_users', $num_users, drush_get_option('kill')); 76 drush_log(dt('Generated @number users.', array('@number' => $num_users)), 'ok'); 77 } 78 79 /** 80 * Command callback. Generate a number of taxonomy. 81 */ 82 function drush_devel_generate_generate_taxonomy($num_vocab = NULL, $num_terms = NULL) { 83 if (drush_generate_is_number($num_vocab) == FALSE) { 84 drush_set_error('DEVEL_GENERATE_INVALID_VID', dt('Invalid vocabulary ID.')); 85 } 86 if (drush_generate_is_number($num_terms) == FALSE) { 87 drush_set_error('DEVEL_GENERATE_INVALID_NUM_TERMS', dt('Invalid number of terms.')); 88 } 89 drush_generate_include_devel(); 90 drush_op('devel_generate_taxonomy_data', $num_vocab, $num_terms, '12', drush_get_option('kill')); 91 drush_log(dt('Generated @num_vocab vocabulary, @num_terms terms', array('@num_vocab' => $num_vocab, '@num_terms' => $num_terms)), 'ok'); 92 } 93 94 /** 95 * Command callback. Generate a number of content. 96 */ 97 function drush_devel_generate_generate_content($num_nodes = NULL, $max_comments = NULL, $add_language = NULL) { 98 if (drush_generate_is_number($num_nodes) == FALSE) { 99 drush_set_error('DEVEL_GENERATE_INVALID_NUM_NODES', dt('Invalid number of nodes')); 100 } 101 if (!empty($max_comments) && drush_generate_is_number($max_comments) == FALSE) { 102 drush_set_error('DEVEL_GENERATE_INVALID_NUM_COMMENTS', dt('Invalid number of comments.')); 103 } 104 105 $add_language = drush_get_option('languages'); 106 if (!empty($add_language)) { 107 $add_language = explode(',', str_replace(' ', '', $add_language)); 108 // Intersect with the enabled languages to make sure the language args 109 // passed are actually enabled. 110 $values['values']['add_language'] = array_flip(array_intersect($add_language, array_keys(locale_language_list()))); 111 } 112 113 // Let's load user 1, seems to be need for creating comments. 114 global $user; 115 $user_one = user_load(array('uid' => '1')); 116 $user = $user_one; 117 118 session_save_session(FALSE); 119 drush_generate_include_devel(); 120 121 if (drush_get_option('kill')) $values['values']['kill_content'] = 1; 122 $values['values']['title_length'] = '8'; 123 $values['values']['num_nodes'] = $num_nodes; 124 $values['values']['max_comments'] = $max_comments; 125 $values['values']['add_terms'] = drush_get_option('add-terms', FALSE); 126 $values['values']['add_upload'] = drush_get_option('add-upload', FALSE); 127 $all_types = array_keys(devel_generate_content_types()); 128 if (drush_get_option('types')) { 129 $types = explode(',', drush_get_option('types')); 130 $types = array_intersect($types, $all_types); 131 } 132 else { 133 $types = $all_types; 134 } 135 $values['values']['node_types'] = drupal_map_assoc($types); 136 137 drush_op('devel_generate_content', $values); 138 drush_log(dt('Generated @num_nodes nodes, @max_comments comments per node', array('@num_nodes' => $num_nodes, '@max_comments' => $max_comments)), 'ok'); 139 } 140 141 ////////////////////////////////////////////////////////////////////////////// 142 // Helper functions 143 144 // verify if param is a number 145 function drush_generate_is_number($number) { 146 if ($number == NULL) return FALSE; 147 if (!is_numeric($number)) return FALSE; 148 if ($number < 0) return FALSE; 149 return TRUE; 150 } 151 152 // include devel_generate.inc 153 function drush_generate_include_devel() { 154 $path = drupal_get_path('module', 'devel_generate'); 155 require_once ($path .'/devel_generate.inc'); 156 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Mon Jul 9 18:01:44 2012 | Cross-referenced by PHPXref 0.7 |