You are here

public function MigrateExampleAvailabilityCalendar::__construct in Availability Calendars 7.5

Describe migration.

Overrides Migration::__construct

File

examples/availability_calendar_migrate/availability_calendar_migrate.migrate.inc, line 14
Example of availability data migration.

Class

MigrateExampleAvailabilityCalendar
Migration class to test import of availability data.

Code

public function __construct($arguments) {
  parent::__construct($arguments);
  $this->description = t('Import availability data');
  $this->map = new MigrateSQLMap($this->machineName, array(
    'id' => array(
      'type' => 'int',
      'unsigned' => TRUE,
      'not null' => TRUE,
      'description' => 'Technical ID',
    ),
  ), MigrateDestinationNode::getKeySchema());

  // Source fields available in the XML file.
  $fields = array(
    'id' => t('Source id'),
    'title' => t('Title'),
    'availability' => t('Availability data'),
  );

  // Our test data is in an XML file.
  $xml_folder = drupal_get_path('module', 'availability_calendar_migrate');
  $items_url = $xml_folder . '/availability_calendar_migrate.xml';
  $item_xpath = '/source_data/item';
  $item_id_xpath = 'id';
  $items_class = new MigrateItemsXML($items_url, $item_xpath, $item_id_xpath);
  $this->source = new MigrateSourceMultiItems($items_class, $fields);
  $this->destination = new MigrateDestinationNode('availability_calendar_migrate');

  // Basic fields.
  $this
    ->addFieldMapping('title', 'title')
    ->xpath('title');
  $this
    ->addFieldMapping('uid')
    ->defaultValue(1);
  $this
    ->addFieldMapping('field_availability', 'availability')
    ->xpath('availability');

  // Unmapped destination fields.
  $this
    ->addUnmigratedDestinations(array(
    'is_new',
    'status',
    'promote',
    'revision',
    'language',
    'sticky',
    'created',
    'changed',
    'revision_uid',
    'path',
  ));
}