original_string: protected function get_all_concepts() {
          global $USER;
  
          if ($this->cache === null) {
              $this->cache = cache::make_from_params(cache_store::MODE_REQUEST, 'filter', 'glossary');
          }
  
          // Try to get current course.
          $coursectx = $this->context->get_course_context(false);
          if (!$coursectx) {
              // Only global glossaries will be linked.
              $courseid = 0;
          } else {
              $courseid = $coursectx->instanceid;
          }
  
          $cached = $this->cache->get('concepts');
          if ($cached !== false && ($cached->cachecourseid != $courseid || $cached->cacheuserid != $USER->id)) {
              // Invalidate the page cache.
              $cached = false;
          }
  
          if ($cached !== false && is_array($cached->cacheconceptlist)) {
              return $cached->cacheconceptlist;
          }
  
          list($glossaries, $allconcepts) = \mod_glossary\local\concept_cache::get_concepts($courseid);
  
          if (!$allconcepts) {
              $tocache = new stdClass();
              $tocache->cacheuserid = $USER->id;
              $tocache->cachecourseid = $courseid;
              $tocache->cacheconceptlist = [];
              $this->cache->set('concepts', $tocache);
              return [];
          }
  
          $conceptlist = array();
  
          foreach ($allconcepts as $concepts) {
              foreach ($concepts as $concept) {
                  $conceptlist[] = new filterobject($concept->concept, null, null,
                          $concept->casesensitive, $concept->fullmatch, null,
                          [$this, 'filterobject_prepare_replacement_callback'], [$concept, $glossaries]);
              }
          }
  
          // We sort longest first, so that when we replace the terms,
          // the longest ones are replaced first. This does the right thing
          // when you have two terms like 'Moodle' and 'Moodle 3.5'. You want the longest match.
          usort($conceptlist, [$this, 'sort_entries_by_length']);
  
          $conceptlist = filter_prepare_phrases_for_filtering($conceptlist);
  
          $tocache = new stdClass();
          $tocache->cacheuserid = $USER->id;
          $tocache->cachecourseid = $courseid;
          $tocache->cacheconceptlist = $conceptlist;
          $this->cache->set('concepts', $tocache);
  
          return $conceptlist;
      }
code: protected function get_all_concepts() {
          global $USER;
  
          if ($this->cache === null) {
              $this->cache = cache::make_from_params(cache_store::MODE_REQUEST, 'filter', 'glossary');
          }
  
          // Try to get current course.
          $coursectx = $this->context->get_course_context(false);
          if (!$coursectx) {
              // Only global glossaries will be linked.
              $courseid = 0;
          } else {
              $courseid = $coursectx->instanceid;
          }
  
          $cached = $this->cache->get('concepts');
          if ($cached !== false && ($cached->cachecourseid != $courseid || $cached->cacheuserid != $USER->id)) {
              // Invalidate the page cache.
              $cached = false;
          }
  
          if ($cached !== false && is_array($cached->cacheconceptlist)) {
              return $cached->cacheconceptlist;
          }
  
          list($glossaries, $allconcepts) = \mod_glossary\local\concept_cache::get_concepts($courseid);
  
          if (!$allconcepts) {
              $tocache = new stdClass();
              $tocache->cacheuserid = $USER->id;
              $tocache->cachecourseid = $courseid;
              $tocache->cacheconceptlist = [];
              $this->cache->set('concepts', $tocache);
              return [];
          }
  
          $conceptlist = array();
  
          foreach ($allconcepts as $concepts) {
              foreach ($concepts as $concept) {
                  $conceptlist[] = new filterobject($concept->concept, null, null,
                          $concept->casesensitive, $concept->fullmatch, null,
                          [$this, 'filterobject_prepare_replacement_callback'], [$concept, $glossaries]);
              }
          }
  
          // We sort longest first, so that when we replace the terms,
          // the longest ones are replaced first. This does the right thing
          // when you have two terms like 'Moodle' and 'Moodle 3.5'. You want the longest match.
          usort($conceptlist, [$this, 'sort_entries_by_length']);
  
          $conceptlist = filter_prepare_phrases_for_filtering($conceptlist);
  
          $tocache = new stdClass();
          $tocache->cacheuserid = $USER->id;
          $tocache->cachecourseid = $courseid;
          $tocache->cacheconceptlist = $conceptlist;
          $this->cache->set('concepts', $tocache);
  
          return $conceptlist;
      }
code_tokens: protected function get_all_concepts ( ) { global $ USER ; if ( $ this -> cache === null ) { $ this -> cache = cache :: make_from_params ( cache_store :: MODE_REQUEST , 'filter' , 'glossary' ) ; } // Try to get current course. $ coursectx = $ this -> context -> get_course_context ( false ) ; if ( ! $ coursectx ) { // Only global glossaries will be linked. $ courseid = 0 ; } else { $ courseid = $ coursectx -> instanceid ; } $ cached = $ this -> cache -> get ( 'concepts' ) ; if ( $ cached !== false && ( $ cached -> cachecourseid != $ courseid || $ cached -> cacheuserid != $ USER -> id ) ) { // Invalidate the page cache. $ cached = false ; } if ( $ cached !== false && is_array ( $ cached -> cacheconceptlist ) ) { return $ cached -> cacheconceptlist ; } list ( $ glossaries , $ allconcepts ) = \ mod_glossary \ local \ concept_cache :: get_concepts ( $ courseid ) ; if ( ! $ allconcepts ) { $ tocache = new stdClass ( ) ; $ tocache -> cacheuserid = $ USER -> id ; $ tocache -> cachecourseid = $ courseid ; $ tocache -> cacheconceptlist = [ ] ; $ this -> cache -> set ( 'concepts' , $ tocache ) ; return [ ] ; } $ conceptlist = array ( ) ; foreach ( $ allconcepts as $ concepts ) { foreach ( $ concepts as $ concept ) { $ conceptlist [ ] = new filterobject ( $ concept -> concept , null , null , $ concept -> casesensitive , $ concept -> fullmatch , null , [ $ this , 'filterobject_prepare_replacement_callback' ] , [ $ concept , $ glossaries ] ) ; } } // We sort longest first, so that when we replace the terms, // the longest ones are replaced first. This does the right thing // when you have two terms like 'Moodle' and 'Moodle 3.5'. You want the longest match. usort ( $ conceptlist , [ $ this , 'sort_entries_by_length' ] ) ; $ conceptlist = filter_prepare_phrases_for_filtering ( $ conceptlist ) ; $ tocache = new stdClass ( ) ; $ tocache -> cacheuserid = $ USER -> id ; $ tocache -> cachecourseid = $ courseid ; $ tocache -> cacheconceptlist = $ conceptlist ; $ this -> cache -> set ( 'concepts' , $ tocache ) ; return $ conceptlist ; }
docstring: Get all the concepts for this context.
  @return filterobject[] the concepts, and filterobjects.
docstring_tokens: Get all the concepts for this context .