public static function usergroups($name, $selected, $checkSuperAdmin = false)
	{
		static $count;

		$count++;

		$isSuperAdmin = \User::authorise('core.admin');

		$db = App::get('db');
		$query = $db->getQuery()
			->select('a.*')
			->select('COUNT(DISTINCT b.id)', 'level')
			->from('#__usergroups', 'a')
			->joinRaw('#__usergroups AS b', 'a.lft > b.lft AND a.rgt < b.rgt', 'left')
			->group('a.id')
			->group('a.title')
			->group('a.lft')
			->group('a.rgt')
			->group('a.parent_id')
			->order('a.lft', 'asc');
		$db->setQuery($query->toString());
		$groups = $db->loadObjectList();

		// Check for a database error.
		if ($db->getErrorNum())
		{
			throw new Exception($db->getErrorMsg(), 500, E_WARNING);
			return null;
		}

		$html = array();

		$html[] = '<ul class="checklist usergroups">';

		for ($i = 0, $n = count($groups); $i < $n; $i++)
		{
			$item = &$groups[$i];

			// If checkSuperAdmin is true, only add item if the user is superadmin or the group is not super admin
			if ((!$checkSuperAdmin) || $isSuperAdmin || (!\Hubzero\Access\Access::checkGroup($item->id, 'core.admin')))
			{
				// Setup  the variable attributes.
				$eid = $count . 'group_' . $item->id;
				// Don't call in_array unless something is selected
				$checked = '';
				if ($selected)
				{
					$checked = in_array($item->id, $selected) ? ' checked="checked"' : '';
				}
				$rel = ($item->parent_id > 0) ? ' rel="' . $count . 'group_' . $item->parent_id . '"' : '';

				// Build the HTML for the item.
				$html[] = '	<li>';
				$html[] = '		<input type="checkbox" name="' . $name . '[]" value="' . $item->id . '" id="' . $eid . '"' . $checked . $rel . ' />';
				$html[] = '		<label for="' . $eid . '">';
				$html[] = '		' . str_repeat('<span class="gi">|&mdash;</span>', $item->level) . $item->title;
				$html[] = '		</label>';
				$html[] = '	</li>';
			}
		}
		$html[] = '</ul>';

		return implode("\n", $html);
	}
public static function usergroups($name, $selected, $checkSuperAdmin = false)
	{
		static $count;

		$count++;

		$isSuperAdmin = \User::authorise('core.admin');

		$db = App::get('db');
		$query = $db->getQuery()
			->select('a.*')
			->select('COUNT(DISTINCT b.id)', 'level')
			->from('#__usergroups', 'a')
			->joinRaw('#__usergroups AS b', 'a.lft > b.lft AND a.rgt < b.rgt', 'left')
			->group('a.id')
			->group('a.title')
			->group('a.lft')
			->group('a.rgt')
			->group('a.parent_id')
			->order('a.lft', 'asc');
		$db->setQuery($query->toString());
		$groups = $db->loadObjectList();

		// Check for a database error.
		if ($db->getErrorNum())
		{
			throw new Exception($db->getErrorMsg(), 500, E_WARNING);
			return null;
		}

		$html = array();

		$html[] = '<ul class="checklist usergroups">';

		for ($i = 0, $n = count($groups); $i < $n; $i++)
		{
			$item = &$groups[$i];

			// If checkSuperAdmin is true, only add item if the user is superadmin or the group is not super admin
			if ((!$checkSuperAdmin) || $isSuperAdmin || (!\Hubzero\Access\Access::checkGroup($item->id, 'core.admin')))
			{
				// Setup  the variable attributes.
				$eid = $count . 'group_' . $item->id;
				// Don't call in_array unless something is selected
				$checked = '';
				if ($selected)
				{
					$checked = in_array($item->id, $selected) ? ' checked="checked"' : '';
				}
				$rel = ($item->parent_id > 0) ? ' rel="' . $count . 'group_' . $item->parent_id . '"' : '';

				// Build the HTML for the item.
				$html[] = '	<li>';
				$html[] = '		<input type="checkbox" name="' . $name . '[]" value="' . $item->id . '" id="' . $eid . '"' . $checked . $rel . ' />';
				$html[] = '		<label for="' . $eid . '">';
				$html[] = '		' . str_repeat('<span class="gi">|&mdash;</span>', $item->level) . $item->title;
				$html[] = '		</label>';
				$html[] = '	</li>';
			}
		}
		$html[] = '</ul>';

		return implode("\n", $html);
	}
public static function usergroups ( $ name , $ selected , $ checkSuperAdmin = false ) { static $ count ; $ count ++ ; $ isSuperAdmin = \ User :: authorise ( 'core.admin' ) ; $ db = App :: get ( 'db' ) ; $ query = $ db -> getQuery ( ) -> select ( 'a.*' ) -> select ( 'COUNT(DISTINCT b.id)' , 'level' ) -> from ( '#__usergroups' , 'a' ) -> joinRaw ( '#__usergroups AS b' , 'a.lft > b.lft AND a.rgt < b.rgt' , 'left' ) -> group ( 'a.id' ) -> group ( 'a.title' ) -> group ( 'a.lft' ) -> group ( 'a.rgt' ) -> group ( 'a.parent_id' ) -> order ( 'a.lft' , 'asc' ) ; $ db -> setQuery ( $ query -> toString ( ) ) ; $ groups = $ db -> loadObjectList ( ) ; // Check for a database error. if ( $ db -> getErrorNum ( ) ) { throw new Exception ( $ db -> getErrorMsg ( ) , 500 , E_WARNING ) ; return null ; } $ html = array ( ) ; $ html [ ] = '<ul class="checklist usergroups">' ; for ( $ i = 0 , $ n = count ( $ groups ) ; $ i < $ n ; $ i ++ ) { $ item = & $ groups [ $ i ] ; // If checkSuperAdmin is true, only add item if the user is superadmin or the group is not super admin if ( ( ! $ checkSuperAdmin ) || $ isSuperAdmin || ( ! \ Hubzero \ Access \ Access :: checkGroup ( $ item -> id , 'core.admin' ) ) ) { // Setup  the variable attributes. $ eid = $ count . 'group_' . $ item -> id ; // Don't call in_array unless something is selected $ checked = '' ; if ( $ selected ) { $ checked = in_array ( $ item -> id , $ selected ) ? ' checked="checked"' : '' ; } $ rel = ( $ item -> parent_id > 0 ) ? ' rel="' . $ count . 'group_' . $ item -> parent_id . '"' : '' ; // Build the HTML for the item. $ html [ ] = '	<li>' ; $ html [ ] = '		<input type="checkbox" name="' . $ name . '[]" value="' . $ item -> id . '" id="' . $ eid . '"' . $ checked . $ rel . ' />' ; $ html [ ] = '		<label for="' . $ eid . '">' ; $ html [ ] = '		' . str_repeat ( '<span class="gi">|&mdash;</span>' , $ item -> level ) . $ item -> title ; $ html [ ] = '		</label>' ; $ html [ ] = '	</li>' ; } } $ html [ ] = '</ul>' ; return implode ( "\n" , $ html ) ; }
Returns a UL list of user groups with check boxes

@param   string   $name             The name of the checkbox controls array
@param   array    $selected         An array of the checked boxes
@param   boolean  $checkSuperAdmin  If false only super admins can add to super admin groups
@return  string
Returns a UL list of user groups with check boxes