original_string: public function get_selected_group() {
          global $SESSION, $USER;
  
          // No groups for system.
          if (empty($this->course)) {
              return 0;
          }
  
          $context = context_course::instance($this->course->id);
  
          $selectedgroup = 0;
          // Setup for group handling.
          $groupmode = groups_get_course_groupmode($this->course);
          if ($groupmode == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', $context)) {
              $selectedgroup = -1;
          } else if ($groupmode) {
              $selectedgroup = $this->groupid;
          } else {
              $selectedgroup = 0;
          }
  
          if ($selectedgroup === -1) {
              if (isset($SESSION->currentgroup[$this->course->id])) {
                  $selectedgroup = $SESSION->currentgroup[$this->course->id];
              } else {
                  $selectedgroup = groups_get_all_groups($this->course->id, $USER->id);
                  if (is_array($selectedgroup)) {
                      $groupids = array_keys($selectedgroup);
                      $selectedgroup = array_shift($groupids);
                      $SESSION->currentgroup[$this->course->id] = $selectedgroup;
                  } else {
                      $selectedgroup = 0;
                  }
              }
          }
          return $selectedgroup;
      }
code: public function get_selected_group() {
          global $SESSION, $USER;
  
          // No groups for system.
          if (empty($this->course)) {
              return 0;
          }
  
          $context = context_course::instance($this->course->id);
  
          $selectedgroup = 0;
          // Setup for group handling.
          $groupmode = groups_get_course_groupmode($this->course);
          if ($groupmode == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', $context)) {
              $selectedgroup = -1;
          } else if ($groupmode) {
              $selectedgroup = $this->groupid;
          } else {
              $selectedgroup = 0;
          }
  
          if ($selectedgroup === -1) {
              if (isset($SESSION->currentgroup[$this->course->id])) {
                  $selectedgroup = $SESSION->currentgroup[$this->course->id];
              } else {
                  $selectedgroup = groups_get_all_groups($this->course->id, $USER->id);
                  if (is_array($selectedgroup)) {
                      $groupids = array_keys($selectedgroup);
                      $selectedgroup = array_shift($groupids);
                      $SESSION->currentgroup[$this->course->id] = $selectedgroup;
                  } else {
                      $selectedgroup = 0;
                  }
              }
          }
          return $selectedgroup;
      }
code_tokens: public function get_selected_group ( ) { global $ SESSION , $ USER ; // No groups for system. if ( empty ( $ this -> course ) ) { return 0 ; } $ context = context_course :: instance ( $ this -> course -> id ) ; $ selectedgroup = 0 ; // Setup for group handling. $ groupmode = groups_get_course_groupmode ( $ this -> course ) ; if ( $ groupmode == SEPARATEGROUPS and ! has_capability ( 'moodle/site:accessallgroups' , $ context ) ) { $ selectedgroup = - 1 ; } else if ( $ groupmode ) { $ selectedgroup = $ this -> groupid ; } else { $ selectedgroup = 0 ; } if ( $ selectedgroup === - 1 ) { if ( isset ( $ SESSION -> currentgroup [ $ this -> course -> id ] ) ) { $ selectedgroup = $ SESSION -> currentgroup [ $ this -> course -> id ] ; } else { $ selectedgroup = groups_get_all_groups ( $ this -> course -> id , $ USER -> id ) ; if ( is_array ( $ selectedgroup ) ) { $ groupids = array_keys ( $ selectedgroup ) ; $ selectedgroup = array_shift ( $ groupids ) ; $ SESSION -> currentgroup [ $ this -> course -> id ] = $ selectedgroup ; } else { $ selectedgroup = 0 ; } } } return $ selectedgroup ; }
docstring: Helper function to get selected group.
  
  @return int selected group.
docstring_tokens: Helper function to get selected group .