5 * Migration for entityreference fields.
8 abstract
class RelationMigrateReference
extends Migration
{
13 * @param $field_type Field type machine name.
15 public
function __construct($field_type) {
16 parent
::__construct();
17 $this->fields
= array_filter(variable_get('relation_migrate_' .
$field_type .
'_fields', array()));
18 $this->relation_type
= variable_get('relation_migrate_' .
$field_type .
'_relation_type', NULL
);
19 $this->dependencies
= array();
20 $this->description
= 'Copy the contents from the ' .
$field_type .
' fields to relation entities.';
21 $this->map
= new
MigrateSQLMap($this->machineName
,
23 'source_type' => array(
33 'destination_type' => array(
38 'destination_id' => array(
49 MigrateDestinationRelation
::getKeySchema()
52 $this->destination
= new
MigrateDestinationRelation($this->relation_type
);
54 $this->addFieldMapping('uid')->defaultValue(variable_get('relation_migrate_' .
$field_type .
'_user', 1))->description(t('The owner of relation.'));
57 public
function prepare(stdClass
$relation, stdClass
$source_row) {
58 $relation->endpoints
[LANGUAGE_NONE
] = array(
59 array('entity_type' => $source_row->source_type
, 'entity_id' => $source_row->source_id
),
60 array('entity_type' => $source_row->destination_type
, 'entity_id' => $source_row->destination_id
),
65 class RelationMigrateEntityReference
extends RelationMigrateReference
{
66 public
function __construct() {
67 parent
::__construct('entityreference');
68 $this->source
= new
MigrateSourceEntityReference($this->fields
);
72 class RelationMigrateNodeReference
extends RelationMigrateReference
{
73 public
function __construct() {
74 parent
::__construct('node_reference');
75 $this->source
= new
MigrateSourceNodeReference($this->fields
);
79 class RelationMigrateUserReference
extends RelationMigrateReference
{
80 public
function __construct() {
81 parent
::__construct('user_reference');
82 $this->source
= new
MigrateSourceUserReference($this->fields
);
86 class RelationMigrateTermReference
extends RelationMigrateReference
{
87 public
function __construct() {
88 parent
::__construct('taxonomy_term_reference');
89 $this->source
= new
MigrateSourceTermReference($this->fields
);