home | career | drupal | java | mac | mysql | perl | php | scala | uml | unix

Drupal example source code file (taxonomy.devel_generate.inc)

This example Drupal source code file (taxonomy.devel_generate.inc) is included in the DevDaily.com "Drupal Source Code Warehouse" project. The intent of this project is to help you "Learn Drupal by Example".

PHP - Drupal tags/keywords

array, bundle, field, function, instance, machine_name, math, max, object, php, query, return, tid, vid

The taxonomy.devel_generate.inc Drupal example source code

<?php
//$Id: taxonomy.devel_generate.inc,v 1.6 2010/10/03 01:06:42 weitzman Exp $

function taxonomy_devel_generate($object, $field, $instance, $bundle) {
  if (field_behaviors_widget('multiple values', $instance) == FIELD_BEHAVIOR_CUSTOM) {
    return devel_generate_multiple('_taxonomy_devel_generate', $object, $field, $instance, $bundle);
  }
  else {
    return _taxonomy_devel_generate($object, $field, $instance, $bundle);
  }
}

function _taxonomy_devel_generate($object, $field, $instance, $bundle) {
  $object_field = array();
  // TODO: For free tagging vocabularies that do not already have terms, this
  // will not result in any tags being added.
  $machine_name = $field['settings']['allowed_values'][0]['vocabulary'];
  $vocabulary = taxonomy_vocabulary_machine_name_load($machine_name);
  $max = db_query('SELECT MAX(tid) FROM {taxonomy_term_data} WHERE vid = :vid', array(':vid' => $vocabulary->vid))->fetchField();
  $candidate = mt_rand(1, $max);
  $query = db_select('taxonomy_term_data', 't');
  $tid = $query
            ->fields('t', array('tid'))
            ->condition('t.vid', $vocabulary->vid, '=')
            ->condition('t.tid', $candidate, '>=')
            ->range(0,1)
            ->execute()
            ->fetchField();
  // If there are no terms for the taxonomy, the query will fail, in which
  // case we return NULL.
  if ($tid === FALSE) {
    return NULL;
  }
  $object_field['tid'] = (int) $tid;
  return $object_field;
}

Other Drupal examples (source code examples)

Here is a short list of links related to this Drupal taxonomy.devel_generate.inc source code file:

new blog posts

"Drupal" is a registered trademark of Dries Buytaert.

my drupal tutorials and examples  

Copyright 1998-2016 Alvin Alexander, alvinalexander.com
All Rights Reserved.

Beginning in 2016, a portion of the proceeds from pages under the '/drupal-code-examples/' URI will be donated to charity.