public function WineRoleMigration::__construct in Migrate 7.2
Same name and namespace in other branches
- 6.2 migrate_example/wine.inc \WineRoleMigration::__construct()
General initialization of a Migration object.
Overrides Migration::__construct
File
- migrate_example/
wine.inc, line 289 - Advanced migration examples. These serve two purposes:
Class
Code
public function __construct($arguments) {
parent::__construct($arguments);
$this->description = t('XML feed (multi items) of roles (positions)');
// There isn't a consistent way to automatically identify appropriate
// "fields" from an XML feed, so we pass an explicit list of source fields
$fields = array(
'name' => t('Position name'),
);
// IMPORTANT: Do not try this at home! We have included importable files
// with the migrate_example module so it can be very simply installed and
// run, but you should never include any data you want to keep private
// (especially user data like email addresses, phone numbers, etc.) in the
// module directory. Your source data should be outside of the webroot, and
// should not be anywhere where it may get committed into a revision control
// system.
// This can also be an URL instead of a local file path.
$xml_folder = DRUPAL_ROOT . '/' . drupal_get_path('module', 'migrate_example') . '/xml/';
$items_url = $xml_folder . 'positions.xml';
// This is the xpath identifying the items to be migrated, relative to the
// document.
$item_xpath = '/positions/position';
// This is the xpath relative to the individual items - thus the full xpath
// of an ID will be /positions/position/sourceid.
$item_ID_xpath = 'sourceid';
$items_class = new MigrateItemsXML($items_url, $item_xpath, $item_ID_xpath);
$this->source = new MigrateSourceMultiItems($items_class, $fields);
$this->destination = new MigrateDestinationRole();
// The source ID here is the one retrieved from each data item in the XML
// file, and used to identify specific items
$this->map = new MigrateSQLMap($this->machineName, array(
'sourceid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
),
), MigrateDestinationRole::getKeySchema());
$this
->addFieldMapping('name', 'name')
->xpath('name');
$this
->addUnmigratedDestinations(array(
'weight',
));
}