| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | <?php/** * @file * Import User Relationships. *//** * Destination class implementing migration into user_relationships table. */class MigrateDestinationUserRelationships extends MigrateDestination {  protected $typeID;  protected $typeName;  /**   * Construct a destination for the specified user relationship type. Interprets   * the type as a type name - if that fails, assumes it's a type ID (rtid).   *   * @param mixed $type_name   *  Name of a user relationship type, or its rtid.   */  public function __construct($type_name) {    parent::__construct();    $type = user_relationships_type_load(array('name' => $type_name));    if ($type) {      $this->typeName = $type_name;      $this->typeID = $type->rtid;    }    else {      $type = user_relationships_type_load($type_name);      $this->typeName = $type->name;      $this->typeID = $type_name;    }  }  static public function getKeySchema() {    return array(      'rid' => array(        'type' => 'int',        'not null' => TRUE,        'description' => 'Relationship ID',      ),    );  }  /**   * Delete a membership.   * * @param $id   *  ID to be deleted.   */  public function rollback(array $id) {    migrate_instrument_start(__METHOD__);    if ($relationship = user_relationships_load(array('rid' => $id['destid1']))) {      $account = new stdClass;      user_relationships_delete_relationship(current($relationship), $account);    }    migrate_instrument_stop(__METHOD__);  }  /**   * Import a single membership.   *   * @param $entity   *  Object object to build. Prefilled with any fields mapped in the Migration.   * @param $row   *  Raw source data object - passed through to prepare/complete handlers.   * @return array   *  Array of key fields of the object that was saved if   *  successful. FALSE on failure.   */  public function import(stdClass $entity, stdClass $row) {    // Normalize to unix timestamps.    foreach (array('created_at', 'updated_at') as $property) {      if (isset($entity->$property)) {        $entity->$property = Migration::timestamp($entity->$property);      }    }    $entity->rtid = $this->typeID;    $op = isset($entity->op) ? $entity->op : 'approve';    if ($saved = user_relationships_save_relationship($entity, $op)) {      return array($saved->rid);    }  }  public function fields() {    return array(        'rid' => 'Relationship ID',        'requester_id' => 'User ID of relationship requestor',        'requestee_id' => 'User ID of relationship requestee',        'approved' => 'Whether the requestee approved the relationship',        'created_at' => 'Timestamp when the relationship was created',        'updated_at' => 'Timestamp when the relationship was last updated',        'flags' => 'UR_OK (0) or UR_BANNED (1)',        'op' => 'Default value is \'approve\'. Sent as second param to user_relationships_save_relationship().'    );  }  public function __toString() {    return t('User relationship type: !type', array('!type' => $this->typeName));  }}
 |