Пример #1
0
 /**
  * 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();
 }
Пример #2
0
 /**
  * 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');
 }
Пример #3
0
 /**
  * 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');
 }
Пример #4
0
 /**
  * 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']);
 }
Пример #5
0
     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>';
 ?>
Пример #6
0
     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>';
 ?>