Example #1
0
 /**
  * Internal function to return a GroupMembership object from a row.
  * @param $row array
  * @return GroupMembership
  */
 function &_returnMembershipFromRow(&$row)
 {
     // Keep a cache of users.
     static $users;
     if (!isset($users)) {
         $users = array();
     }
     $userId = $row['user_id'];
     if (!isset($users[$userId])) {
         $users[$userId] =& $this->userDao->getUser($userId);
     }
     $membership = new GroupMembership();
     $membership->setGroupId($row['group_id']);
     $membership->setUserId($row['user_id']);
     $membership->setUser($users[$userId]);
     $membership->setSequence($row['seq']);
     $membership->setAboutDisplayed($row['about_displayed']);
     HookRegistry::call('GroupMembershipDAO::_returnMemberFromRow', array(&$membership, &$row));
     return $membership;
 }
 function importGroups()
 {
     assert($this->xml->name == 'groups');
     $journal = $this->journal;
     $groupDao =& DAORegistry::getDAO('GroupDAO');
     $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO');
     $this->nextElement();
     while ($this->xml->name == 'group') {
         $groupXML = $this->getCurrentElementAsDom();
         $group =& new Group();
         $group->setAssocType(ASSOC_TYPE_JOURNAL);
         $group->setAssocId($journal->getId());
         $group->setAboutDisplayed((int) $groupXML->aboutDisplayed);
         $group->setPublishEmail((int) $groupXML->publishEmail);
         $group->setSequence((int) $groupXML->sequence);
         $group->setContext((int) $groupXML->context);
         $groupDao->insertGroup($group);
         foreach ($groupXML->groupMembership as $groupMembershipXML) {
             $groupMembership = new GroupMembership();
             $groupMembership->setGroupId($group->getId());
             $groupMembership->setUserId($this->idTranslationTable->resolve(INTERNAL_TRANSFER_OBJECT_USER, (int) $groupMembershipXML->userId));
             $groupMembership->setSequence((int) $groupMembershipXML->sequence);
             $groupMembership->setAboutDisplayed((int) $groupMembershipXML->aboutDisplayed);
             $groupMembershipDao->insertMembership($groupMembership);
         }
         $this->restoreDataObjectSettings($groupDao, $groupXML->settings, 'group_settings', 'group_id', $group->getId());
         $this->idTranslationTable->register(INTERNAL_TRANSFER_OBJECT_GROUP, (int) $groupXML->oldId, $group->getId());
         $this->nextElement();
     }
 }