You are here

commons_events.install in Drupal Commons 7.3

File

modules/commons/commons_events/commons_events.install
View source
<?php

/**
 * Set default events roles upon enable
 */
function commons_events_enable() {
  $revert = array(
    'commons_events' => array(
      'og_features_permission',
    ),
  );
  features_revert($revert);
  $groups = og_get_all_group();
  foreach ($groups as $gid) {
    commons_groups_features_permission_rebuild('commons_events', $gid);
  }
}

/**
 * Implements hook_install().
 * Creates a default datetime format for events.
 */
function commons_events_install() {
  db_insert('date_formats')
    ->fields(array(
    'format' => 'M d Y, g:ia T',
    'type' => 'event_datetime',
    'locked' => 1,
  ))
    ->execute();
  db_insert('date_format_type')
    ->fields(array(
    'type' => 'event_datetime',
    'title' => 'Event Datetime',
    'locked' => 0,
  ))
    ->execute();
  variable_set('date_format_event_datetime', 'M d Y, g:ia T');
}

/**
 * Disable summary on Event nodes.
 */
function commons_events_update_7000() {
  $revert = array(
    'commons_events' => array(
      'field_instance',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Switch attendee view and event logo to use 50x50 image style.
 */
function commons_events_update_7001() {
  $revert = array(
    'commons_events' => array(
      'views',
      'node',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Add the Organizers entity reference field to Events and update existing nodes
 * with the event's creator as the default value.
 */
function commons_events_update_7002() {

  // Revert node and views to use default implementations. This resets field
  // weights to configuration due to new Organizers field.
  $revert = array(
    'commons_events' => array(
      'node',
    ),
  );
  features_revert($revert);
  if (field_info_field('field_organizers') == NULL) {

    // Create the field so we can update the default values for existing events.
    module_load_include('inc', 'commons_events', 'commons_events.features.field_base');
    $fields = commons_events_field_default_field_bases();
    field_create_field($fields['field_organizers']);
  }
  if (field_info_instance('node', 'field_organizers', 'event') == NULL) {

    // Create the instance on Events.
    module_load_include('inc', 'commons_events', 'commons_events.features.field_instance');
    $instances = commons_events_field_default_field_instances();
    field_create_instance($instances['node-event-field_organizers']);
  }

  // Now update all existing Events to have the creator as the default organizer.
  $events = new EntityFieldQuery();
  $events
    ->entityCondition('entity_type', 'node')
    ->entityCondition('bundle', 'event');
  $events = $events
    ->execute();
  $events = entity_load('node', array_keys($events['node']));
  foreach ($events as $nid => $event) {
    if (!property_exists($event, 'field_organizers') || empty($event->field_organizers)) {
      $event->field_organizers = array(
        $event->language => array(
          0 => array(
            'target_id' => $event->uid,
          ),
        ),
      );
      node_save($event);
    }
  }
  return array();
}

/**
 * Change event teaser display to show logo, date, and address.
 */
function commons_events_update_7003() {
  $revert = array(
    'commons_events' => array(
      'field_instance',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Create the event_datetime date format.
 */
function commons_events_update_7004() {
  db_insert('date_formats')
    ->fields(array(
    'format' => 'M d Y - g:ia T',
    'type' => 'event_datetime',
    'locked' => 1,
  ))
    ->execute();
  db_insert('date_format_type')
    ->fields(array(
    'type' => 'event_datetime',
    'title' => 'Event Datetime',
    'locked' => 0,
  ))
    ->execute();
  variable_set('date_format_event_datetime', 'M d Y - g:ia T');

  // Revert commons_events to make sure its referencing the event_datetime module.
  $revert = array(
    'commons_events' => array(
      'field_instance',
    ),
    'commons_events' => array(
      'views_view',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Set event nodes to use site default country set during install as default.
 */
function commons_events_update_7005() {
  $revert = array(
    'commons_events' => array(
      'field_instance',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Upcoming events view pane exposed sort should redirect to the view pane and
 * not the feed.
 */
function commons_events_update_7006() {
  $revert = array(
    'commons_events' => array(
      'views_view',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Change event displays to abbreviate state names.
 */
function commons_events_update_7007() {
  $revert = array(
    'commons_events' => array(
      'field_instance',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Alter the event display formatter, it should be a ',' and not '-'
 */

/**
 * Create the event_datetime date format.
 */
function commons_events_update_7008() {
  db_update('date_formats')
    ->fields(array(
    'format' => 'M d Y, g:ia T',
    'type' => 'event_datetime',
    'locked' => 1,
  ))
    ->condition('format', 'M d Y - g:ia T', '=')
    ->condition('type', 'event_datetime', '=')
    ->execute();
  variable_set('date_format_event_datetime', 'M d Y, g:ia T');

  // Revert commons_events to make sure its referencing the event_datetime module.
  $revert = array(
    'commons_events' => array(
      'field_instance',
    ),
    'commons_events' => array(
      'views_view',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Need to force update so that Drupal sees the new hook_forms implementation.
 */
function commons_events_update_7009() {
  cache_clear_all('module_implements', 'cache_bootstrap');
  return array();
}

/**
 * Display current events in addition to upcoming events.
 */
function commons_events_update_7010() {
  $revert = array(
    'commons_events' => array(
      'views_view',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Add empty text to Commons Events views.
 */
function commons_events_update_7011() {
  $revert = array(
    'commons_events' => array(
      'views_view',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Add an event specific message_type feature.
 */
function commons_events_update_7012() {
  $revert = array(
    'commons_events' => array(
      'message_type',
      'field_instance',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Sort and filter the upcoming user events view by start date.
 */
function commons_events_update_7013() {
  $revert = array(
    'commons_events' => array(
      'views_view',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Replace the title attribute with the title field in view displays.
 */
function commons_events_update_7014() {
  $revert = array(
    'commons_events' => array(
      'views_view',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Ensure that the target comments field instance used for custom event messages
 * is detected and fix Commons Events appearing overridden.
 */
function commons_events_update_7015() {
  $revert = array(
    'commons_events' => array(
      'field_instance',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Move event menu item handling from menu links to page manager pages.
 */
function commons_events_update_7016() {
  $revert = array(
    'commons_events' => array(
      'page_manager_pages',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Standardize browsing widget field weights.
 */
function commons_events_update_7017() {
  $revert = array(
    'commons_events' => array(
      'field_instance',
    ),
  );
  features_revert($revert);
  return array();
}

/**
 * Accommodated changes to Address Field.
 */
function commons_events_update_7018() {
  $revert = array(
    'commons_events' => array(
      'field_instance',
    ),
  );
  features_revert($revert);
  return array();
}

Functions

Namesort descending Description
commons_events_enable Set default events roles upon enable
commons_events_install Implements hook_install(). Creates a default datetime format for events.
commons_events_update_7000 Disable summary on Event nodes.
commons_events_update_7001 Switch attendee view and event logo to use 50x50 image style.
commons_events_update_7002 Add the Organizers entity reference field to Events and update existing nodes with the event's creator as the default value.
commons_events_update_7003 Change event teaser display to show logo, date, and address.
commons_events_update_7004 Create the event_datetime date format.
commons_events_update_7005 Set event nodes to use site default country set during install as default.
commons_events_update_7006 Upcoming events view pane exposed sort should redirect to the view pane and not the feed.
commons_events_update_7007 Change event displays to abbreviate state names.
commons_events_update_7008 Create the event_datetime date format.
commons_events_update_7009 Need to force update so that Drupal sees the new hook_forms implementation.
commons_events_update_7010 Display current events in addition to upcoming events.
commons_events_update_7011 Add empty text to Commons Events views.
commons_events_update_7012 Add an event specific message_type feature.
commons_events_update_7013 Sort and filter the upcoming user events view by start date.
commons_events_update_7014 Replace the title attribute with the title field in view displays.
commons_events_update_7015 Ensure that the target comments field instance used for custom event messages is detected and fix Commons Events appearing overridden.
commons_events_update_7016 Move event menu item handling from menu links to page manager pages.
commons_events_update_7017 Standardize browsing widget field weights.
commons_events_update_7018 Accommodated changes to Address Field.