/** * Update group and membership info in underlying 'course-' group (group type 4) * * Method is called anytime after a course is saved * * @param $course - course object */ public function onAfterStoreCourse($course) { // Get a new group object $group = new \Hubzero\User\Group(); // If the course doesn't have a group id set, then we need to create a new group if (!$course->get('group_id')) { // Set some group info $group->set('cn', 'course-' . $course->cn); $group->create(); $group->set('type', 4); // group type 4 = course // Set the new group gidNumber as the group_id in the course and update $course->set('group_id', $group->get('gidNumber')); $course->update(); } else { $group->read($course->get('group_id')); } // Set the group description (in case it's been changed) $group->set('description', $course->get('description')); // Get all of the course members that are not yet group members (i.e. they need to be added to the group) $add = array_diff($course->get('members'), $group->get('members')); foreach ($add as $a) { $group->add('members', $a); } // Get all of the group members that are not members of the course (i.e. they need to be removed from the group) $remove = array_diff($group->get('members'), $course->get('members')); foreach ($remove as $r) { $group->remove('members', $r); } // Finally, update the group $group->update(); }
/** * Constructor * * @param integer $scope_id Scope ID (group, course, etc.) * @return void */ public function __construct($scope_id) { $group = \Hubzero\User\Group::getInstance($scope_id); if (!$group) { $group = new \Hubzero\User\Group(); $group->set('cn', '_unknown_'); } $this->_segments['cn'] = $group->get('cn'); $this->_segments['active'] = 'forum'; $this->_segments['scope'] = ''; $this->_name = $group->get('cn'); }
/** * Constructor * * @param string $pagename * @param string $path * @param integer $scope_id * @return void */ public function __construct($pagename = null, $path = null, $scope_id = 0) { $pagename = ($path ? $path . '/' : '') . $pagename; $this->_segments['pagename'] = $pagename; $this->_scope_id = $scope_id; $group = \Hubzero\User\Group::getInstance($this->_scope_id); if (!$group) { $group = new \Hubzero\User\Group(); $group->set('gidNumber', $this->_scope_id); } $this->_segments['cn'] = $group->get('cn'); }
/** * Constructor * * @param integer $scope_id Scope ID (group, course, etc.) * @return void */ public function __construct($scope_id = 0) { $this->set('scope_id', $scope_id); $group = \Hubzero\User\Group::getInstance($scope_id); if (!$group || !$group->get('cn')) { $group = new \Hubzero\User\Group(); $group->set('gidNumber', $scope_id); $group->set('cn', $scope_id); $group->set('description', Lang::txt('(unknown)')); } $this->_group = $group; $this->_segments['cn'] = $group->get('cn'); $this->_segments['active'] = 'collections'; $this->set('option', $this->_segments['option']); }
case '1': $type = Lang::txt('COM_GROUPS_TYPE_HUB'); break; case '2': $type = Lang::txt('COM_GROUPS_TYPE_PROJECT'); break; case '3': $type = Lang::txt('COM_GROUPS_TYPE_SUPER'); break; case '4': $type = Lang::txt('COM_GROUPS_TYPE_COURSE'); break; } //get group invite emails $hubzeroGroupInviteEmail = new \Hubzero\User\Group\InviteEmail($database); $inviteemails = $hubzeroGroupInviteEmail->getInviteEmails($group->get('gidNumber')); //get group membership $members = $group->get('members'); $managers = $group->get('managers'); $applicants = $group->get('applicants'); $invitees = $group->get('invitees'); //remove any managers from members list $true_members = array_diff($members, $managers); //build membership tooltip $tip = '<table><tbody>'; $tip .= '<tr><th>' . Lang::txt('COM_GROUPS_MEMBERS') . '</th><td>' . count($true_members) . '</td></tr>'; $tip .= '<tr><th>' . Lang::txt('COM_GROUPS_MANAGERS') . '</th><td>' . count($managers) . '</td></tr>'; $tip .= '<tr><th>' . Lang::txt('COM_GROUPS_APPLICANTS') . '</th><td>' . count($applicants) . '</td></tr>'; $tip .= '<tr><th>' . Lang::txt('COM_GROUPS_INVITEES') . '</th><td>' . (count($invitees) + count($inviteemails)) . '</td></tr>'; $tip .= '</tbody></table>'; ?>
case '1': $type = Lang::txt('COM_GROUPS_TYPE_HUB'); break; case '2': $type = Lang::txt('COM_GROUPS_TYPE_PROJECT'); break; case '3': $type = Lang::txt('COM_GROUPS_TYPE_SUPER'); break; case '4': $type = Lang::txt('COM_GROUPS_TYPE_COURSE'); break; } $pages = $p->count(array('gidNumber' => $row->gidNumber)); //get group invite emails $inviteemails = \Hubzero\User\Group\InviteEmail::all()->whereEquals('gidNumber', $group->get('gidNumber'))->total(); //get group membership $members = $group->get('members'); $managers = $group->get('managers'); $applicants = $group->get('applicants'); $invitees = $group->get('invitees'); //remove any managers from members list $true_members = array_diff($members, $managers); //build membership tooltip $tip = '<table><tbody>'; $tip .= '<tr><th>' . Lang::txt('COM_GROUPS_MEMBERS') . '</th><td>' . count($true_members) . '</td></tr>'; $tip .= '<tr><th>' . Lang::txt('COM_GROUPS_MANAGERS') . '</th><td>' . count($managers) . '</td></tr>'; $tip .= '<tr><th>' . Lang::txt('COM_GROUPS_APPLICANTS') . '</th><td>' . count($applicants) . '</td></tr>'; $tip .= '<tr><th>' . Lang::txt('COM_GROUPS_INVITEES') . '</th><td>' . (count($invitees) + $inviteemails) . '</td></tr>'; $tip .= '</tbody></table>'; ?>