You are here

isotope_example.install in Isotope (with Masonry and Packery) 7.2

Create sample data to be used in isotope example.

File

isotope_example/isotope_example.install
View source
<?php

/**
 * @file
 * Create sample data to be used in isotope example.
 */

/**
 * Implements hook_install().
 *
 * Create sample data.
 */
function isotope_example_install() {
  $fields = array(
    'isotope_example_color' => array(
      'field_name' => 'isotope_example_color',
      'cardinality' => 1,
      'type' => 'text',
    ),
    'isotope_example_shape' => array(
      'field_name' => 'isotope_example_shape',
      'cardinality' => 1,
      'type' => 'text',
    ),
    'isotope_example_size' => array(
      'field_name' => 'isotope_example_size',
      'cardinality' => 1,
      'type' => 'text',
    ),
  );
  $instances = array(
    'isotope_example_color' => array(
      'field_name' => 'isotope_example_color',
      'label' => t('Color'),
      'type' => 'text',
      'widget' => array(
        'type' => 'text_textfield',
      ),
    ),
    'isotope_example_shape' => array(
      'field_name' => 'isotope_example_shape',
      'label' => t('Shape'),
      'type' => 'text',
      'widget' => array(
        'type' => 'text_textfield',
      ),
    ),
    'isotope_example_size' => array(
      'field_name' => 'isotope_example_size',
      'label' => t('Size'),
      'type' => 'text',
      'widget' => array(
        'type' => 'text_textfield',
      ),
    ),
  );

  // Create all the fields we are adding to our content type.
  foreach ($fields as $field) {
    field_create_field($field);
  }

  // Create all the instances for our fields.
  foreach ($instances as $instance) {
    $instance['entity_type'] = 'node';
    $instance['bundle'] = 'isotope_example';
    field_create_instance($instance);
  }
  $colors = array(
    'Blue',
    'Red',
    'Yellow',
  );
  $sizes = array(
    'Small',
    'Wide',
    'Big',
    'Tall',
  );
  $shapes = array(
    'Round',
    'Square',
  );

  // Create nodes of every size shape and color.
  $items = array();
  $i = 0;
  foreach ($sizes as $size) {
    foreach ($shapes as $shape) {
      foreach ($colors as $color) {
        $node = new stdClass();
        $node->type = 'isotope_example';
        $node->title = t('Sample !i', array(
          '!i' => $i,
        ));
        $node->language = LANGUAGE_NONE;
        node_object_prepare($node);
        $node->isotope_example_size[$node->language][]['value'] = $size;
        $node->isotope_example_shape[$node->language][]['value'] = $shape;
        $node->isotope_example_color[$node->language][]['value'] = $color;
        $node = node_submit($node);
        node_save($node);
        $i++;
      }
    }
  }
}

/**
 * Implements hook_uninstall().
 *
 * Delete sample data.
 */
function isotope_example_uninstall() {

  // Delete the example nodes.
  $query = new EntityFieldQuery();
  $query
    ->entityCondition('entity_type', 'node')
    ->propertyCondition('type', 'isotope_example');
  $result = $query
    ->execute();
  if (!empty($result['node'])) {
    foreach ($result['node'] as $node) {
      node_delete($node->nid);
    }
  }

  // Delete the example fields.
  $fields = array(
    'isotope_example_color',
    'isotope_example_shape',
    'isotope_example_size',
  );
  foreach ($fields as $field_name) {
    field_delete_field($field_name);
  }
}

Functions