<?php

/**
 * @file
 * Install, update and uninstall functions for the University of Cambridge installation profile.
 */

/**
 * Implements hook_install().
 *
 * Perform actions to set up the site for this profile.
 *
 * @see system_install()
 */
function cambridge_install() {
  require_once 'cambridge_lite.install';

  cambridge_lite_install();

  // Set some sensible defaults for the Image javascript crop module.

  variable_set('imagecrop_popup', 'imagecrop_popup');
  variable_set('imagecrop_scale_default', 1);
  variable_set('imagecrop_show_cancel_button', 1);
  variable_set('imagecrop_ui_controls', 1);

  // Replace standard scaling/cropping image style effects and replace them with a Javascript crop effect.

  $carousel = image_style_load('carousel');
  foreach ($carousel['effects'] as $effect) {
    image_effect_delete($effect);
  }

  image_effect_save(
    array(
      'name' => 'imagecrop_javascript',
      'data' => array(
        'width' => 885,
        'height' => 432,
        'xoffset' => 'center',
        'yoffset' => 'center',
        'resizable' => 0,
        'downscaling' => 0,
        'aspect_ratio' => 'CROP',
        'disable_if_no_data' => 0,
      ),
      'isid' => $carousel['isid'],
      'weight' => 0,
    )
  );

  $instance = field_info_instance('node', 'field_carousel_image', 'carousel_item');
  $instance['settings']['imagecrop'] = array('carousel' => 'carousel', 'leading' => 0, 'inline' => 0);
  field_update_instance($instance);

  $leading = image_style_load('leading');
  foreach ($leading['effects'] as $effect) {
    image_effect_delete($effect);
  }

  image_effect_save(
    array(
      'name' => 'imagecrop_javascript',
      'data' => array(
        'width' => 590,
        'height' => 288,
        'xoffset' => 'center',
        'yoffset' => 'center',
        'resizable' => 0,
        'downscaling' => 0,
        'aspect_ratio' => 'CROP',
        'disable_if_no_data' => 0,
      ),
      'isid' => $leading['isid'],
      'weight' => 0,
    )
  );

  $instance = field_info_instance('node', 'field_leading_image', 'page');
  $instance['settings']['imagecrop'] = array('leading' => 'leading', 'carousel' => 0, 'inline' => 0);
  field_update_instance($instance);

  $inline = image_style_load('inline');
  foreach ($inline['effects'] as $effect) {
    image_effect_delete($effect);
  }

  image_effect_save(
    array(
      'name' => 'imagecrop_javascript',
      'data' => array(
        'width' => 250,
        'height' => 250,
        'xoffset' => 'center',
        'yoffset' => 'center',
        'resizable' => 0,
        'downscaling' => 0,
        'aspect_ratio' => 'CROP',
        'disable_if_no_data' => 0,
      ),
      'isid' => $inline['isid'],
      'weight' => 0,
    )
  );

  // Use the media module for image field instances.

  $instances = array(
    field_read_instance('node', 'field_leading_image', 'page'),
    field_read_instance('node', 'field_carousel_image', 'carousel_item'),
  );

  foreach ($instances as $instance) {
    $instance['widget']['type'] = 'media_generic';
    $instance['widget']['module'] = 'media';

    field_update_instance($instance);
  }

  $field = array(
    'field_name' => 'field_user_name',
    'label' => st('Name'),
    'cardinality' => 1,
    'type' => 'text',
    'settings' => array(
      'max_length' => 255,
    ),
  );

  field_create_field($field);

  $instance = array(
    'entity_type' => 'user',
    'bundle' => 'user',
    'field_name' => 'field_user_name',
    'label' => st('Name'),
    'description' => st('The user\'s real name.'),
    'required' => 1,
    'cardinality' => 1,
    'type' => 'field_user_name',
    'settings' => array(
      'size' => 60,
      'text_processing' => 0,
      'user_register_form' => 1,
    ),
    'widget' => array(
      'weight' => -11,
    ),
    'display' => array(
      'default' => array(
        'label' => 'inline',
        'type' => 'text_plain',
        'weight' => 1,
      ),
      'teaser' => array(
        'label' => 'inline',
        'type' => 'text_plain',
        'weight' => 1,
      ),
    ),
  );

  field_create_instance($instance);

  variable_set('realname_pattern', '[user:field_user_name]');

  // Transliterate Pathauto aliases.

  variable_set('pathauto_transliterate', 1);
}