/** * 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(); } }