[ Index ]

PHP Cross Reference of Drupal 6 (yi-drupal)

title

Body

[close]

/sites/all/modules/devel/ -> devel_generate.drush.inc (source)

   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  }


Generated: Mon Jul 9 18:01:44 2012 Cross-referenced by PHPXref 0.7