| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 | 
							- <?php
 
- // $Id$
 
- /**
 
-  * @file
 
-  * VotingAPI module integration
 
-  */
 
- /**
 
-  * Destination class for the votingapi_vote table.
 
-  */
 
- class MigrateDestinationVotingapi extends MigrateDestination {
 
-   public function __toString() {
 
-     return t('votingapi');
 
-   }
 
-   
 
-   /**
 
-    * An array with content ids of imported votes. Used for recalculating results.
 
-    */
 
-   var $importedIds = array();
 
-   static public function getKeySchema() {
 
-     return array(
 
-       'vote_id' => array(
 
-         'type' => 'int',
 
-         'not null' => TRUE,
 
-       ),
 
-     );
 
-   }
 
-   /**
 
-    * Delete the provided votes and recalculate the results.
 
-    *
 
-    * @param $id
 
-    *  IDs to be deleted.
 
-    */
 
-   public function bulkRollback(array $ids) {
 
-     migrate_instrument_start(__METHOD__);
 
-     
 
-     foreach ($ids as $id) {
 
-       $votes[]['vote_id'] = $id;
 
-     }
 
-     votingapi_delete_votes($votes);
 
-     
 
-     // foreach($votes as $vote) {
 
-     //       votingapi_recalculate_results($vote['content_type'], $vote['content_id'], TRUE);
 
-     //     }
 
-     migrate_instrument_stop(__METHOD__);
 
-   }
 
-   /**
 
-    * Import a single vote.
 
-    *
 
-    * @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) {
 
-     $this->prepare($entity, $row);
 
-     // Votes have to be assigned to an entity.
 
-     if (empty($entity->entity_id)) {
 
-       watchdog('VotingAPI Import', 'Skipped import due to empty entity_id for vote import: @serial', array('@serial' => json_encode($row)), WATCHDOG_ERROR);
 
-       return FALSE;
 
-     }
 
-     if (isset($entity->timestamp)) {
 
-       $entity->timestamp = Migration::timestamp($entity->timestamp);
 
-     }
 
-     // Just converting $entity to an array doesn't work...
 
-     $vote = array();
 
-     $vote['entity_type'] = $entity->entity_type;
 
-     $vote['entity_id'] = $entity->entity_id;
 
-     $vote['value_type'] = $entity->value_type;
 
-     $vote['value'] = $entity->value;
 
-     $vote['uid'] = $entity->uid;
 
-     $vote['tag'] = $entity->tag;
 
-     $vote['timestamp'] = $entity->timestamp;
 
-     $vote['vote_source'] = $entity->vote_source;
 
-     votingapi_add_votes($vote);
 
-     if (isset($vote[0]['vote_id'])) {
 
-       $entity->vote_id = $vote[0]['vote_id'];
 
-       $this->complete($entity, $row);
 
-       $this->importedIds[$entity->entity_type][] = $entity->entity_id;
 
-       return array($entity->vote_id);
 
-     }
 
-     else {
 
-       return FALSE;
 
-     }
 
-   }
 
-   /**
 
-    * We're done with importing votes, recalculate the results.
 
-    */
 
-   function postImport() {
 
-     foreach ($this->importedIds as $entity_type => $entity_ids) {
 
-       $this->importedIds = array_unique($this->importedIds);
 
-       foreach ($entity_ids as $entity_id) {
 
-         votingapi_recalculate_results($entity_type, $entity_id, TRUE);
 
-       }
 
-     }
 
-   }
 
-   /**
 
-    * Returns a list of fields available to be mapped/
 
-    *
 
-    * @return array
 
-    *  Keys: machine names of the fields (to be passed to addFieldMapping)
 
-    *  Values: Human-friendly descriptions of the fields.
 
-    */
 
-   public function fields() {
 
-     return array(
 
-         'vote_id' => 'Vote ID',
 
-         'entity_type' => "Entity Type (defaults to 'node')",
 
-         'entity_id' => 'Entity ID',
 
-         'value' => 'Numeric vote value',
 
-         'value_type' => "Value type (percent/points, defaults to 'percent')",
 
-         'tag' => "Tag (defaults to 'vote')",
 
-         'uid' => 'User ID',
 
-         'timestamp' => 'Timestamp',
 
-         'vote_source' => 'Vote Source IP Address',
 
-     );
 
-   }
 
-   /**
 
-    * Give handlers a shot at modifying the object before saving it.
 
-    *
 
-    * @param $entity
 
-    *  Entity object to build. Prefilled with any fields mapped in the Migration.
 
-    * @param $source_row
 
-    *  Raw source data object - passed through to prepare handlers.
 
-    */
 
-   public function prepare(stdClass $entity, stdClass $source_row) {
 
-     $migration = Migration::currentMigration();
 
-     $entity->migrate = array(
 
-       'machineName' => $migration->getMachineName(),
 
-     );
 
-     // Call any prepare handler for this specific Migration.
 
-     if (method_exists($migration, 'prepare')) {
 
-       $migration->prepare($entity, $source_row);
 
-     }
 
-   }
 
-   /**
 
-    * Give handlers a shot at modifying the object (or taking additional action)
 
-    * after saving it.
 
-    *
 
-    * @param $object
 
-    *  Entity object to build. This is the complete object after saving.
 
-    * @param $source_row
 
-    *  Raw source data object - passed through to complete handlers.
 
-    */
 
-   public function complete(stdClass $entity, stdClass $source_row) {
 
-     $migration = Migration::currentMigration();
 
-     // Call any complete handler for this specific Migration.
 
-     if (method_exists($migration, 'complete')) {
 
-       $migration->complete($entity, $source_row);
 
-     }
 
-   }
 
- }
 
 
  |