/** * Add group membership (or list users if none chosen). */ function addMembership($args) { $groupId = isset($args[0]) ? (int) $args[0] : 0; $userId = isset($args[1]) ? (int) $args[1] : null; $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO'); // If a user has been selected, add them to the group. // Otherwise list users. if ($userId !== null) { list($journal, $group, $user) = GroupHandler::validate($groupId, $userId); // A valid user has been chosen. Add them to // the membership list and redirect. // Avoid duplicating memberships. $groupMembership =& $groupMembershipDao->getMembership($group->getGroupId(), $user->getUserId()); if (!$groupMembership) { $groupMembership =& new GroupMembership(); $groupMembership->setGroupId($group->getGroupId()); $groupMembership->setUserId($user->getUserId()); // For now, all memberships are displayed in About $groupMembership->setAboutDisplayed(true); $groupMembershipDao->insertMembership($groupMembership); } Request::redirect(null, null, 'groupMembership', $group->getGroupId()); } else { list($journal, $group) = GroupHandler::validate($groupId); GroupHandler::setupTemplate($group, true); $searchType = null; $searchMatch = null; $search = $searchQuery = Request::getUserVar('search'); $searchInitial = Request::getUserVar('searchInitial'); if (isset($search)) { $searchType = Request::getUserVar('searchField'); $searchMatch = Request::getUserVar('searchMatch'); } else { if (isset($searchInitial)) { $searchInitial = String::strtoupper($searchInitial); $searchType = USER_FIELD_INITIAL; $search = $searchInitial; } } $roleDao =& DAORegistry::getDAO('RoleDAO'); $users = $roleDao->getUsersByRoleId(null, $journal->getJournalId(), $searchType, $search, $searchMatch); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('searchField', $searchType); $templateMgr->assign('searchMatch', $searchMatch); $templateMgr->assign('search', $searchQuery); $templateMgr->assign('searchInitial', Request::getUserVar('searchInitial')); $templateMgr->assign_by_ref('users', $users); $templateMgr->assign('fieldOptions', array(USER_FIELD_FIRSTNAME => 'user.firstName', USER_FIELD_LASTNAME => 'user.lastName', USER_FIELD_USERNAME => 'user.username', USER_FIELD_EMAIL => 'user.email')); $templateMgr->assign('alphaList', explode(' ', Locale::translate('common.alphaList'))); $templateMgr->assign_by_ref('group', $group); $templateMgr->display('manager/groups/selectUser.tpl'); } }