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',
));
}