original_string: protected function get_not_visible_children_ids() {
          global $DB;
          $coursecatcache = cache::make('core', 'coursecat');
          if (($invisibleids = $coursecatcache->get('ic'. $this->id)) === false) {
              // We never checked visible children before.
              $hidden = self::get_tree($this->id.'i');
              $catids = self::get_tree($this->id);
              $invisibleids = array();
              if ($catids) {
                  // Preload categories contexts.
                  list($sql, $params) = $DB->get_in_or_equal($catids, SQL_PARAMS_NAMED, 'id');
                  $ctxselect = context_helper::get_preload_record_columns_sql('ctx');
                  $contexts = $DB->get_records_sql("SELECT $ctxselect FROM {context} ctx
                      WHERE ctx.contextlevel = :contextcoursecat AND ctx.instanceid ".$sql,
                          array('contextcoursecat' => CONTEXT_COURSECAT) + $params);
                  foreach ($contexts as $record) {
                      context_helper::preload_from_record($record);
                  }
                  // Check access for each category.
                  foreach ($catids as $id) {
                      $cat = (object)['id' => $id, 'visible' => in_array($id, $hidden) ? 0 : 1];
                      if (!self::can_view_category($cat)) {
                          $invisibleids[] = $id;
                      }
                  }
              }
              $coursecatcache->set('ic'. $this->id, $invisibleids);
          }
          return $invisibleids;
      }
code: protected function get_not_visible_children_ids() {
          global $DB;
          $coursecatcache = cache::make('core', 'coursecat');
          if (($invisibleids = $coursecatcache->get('ic'. $this->id)) === false) {
              // We never checked visible children before.
              $hidden = self::get_tree($this->id.'i');
              $catids = self::get_tree($this->id);
              $invisibleids = array();
              if ($catids) {
                  // Preload categories contexts.
                  list($sql, $params) = $DB->get_in_or_equal($catids, SQL_PARAMS_NAMED, 'id');
                  $ctxselect = context_helper::get_preload_record_columns_sql('ctx');
                  $contexts = $DB->get_records_sql("SELECT $ctxselect FROM {context} ctx
                      WHERE ctx.contextlevel = :contextcoursecat AND ctx.instanceid ".$sql,
                          array('contextcoursecat' => CONTEXT_COURSECAT) + $params);
                  foreach ($contexts as $record) {
                      context_helper::preload_from_record($record);
                  }
                  // Check access for each category.
                  foreach ($catids as $id) {
                      $cat = (object)['id' => $id, 'visible' => in_array($id, $hidden) ? 0 : 1];
                      if (!self::can_view_category($cat)) {
                          $invisibleids[] = $id;
                      }
                  }
              }
              $coursecatcache->set('ic'. $this->id, $invisibleids);
          }
          return $invisibleids;
      }
code_tokens: protected function get_not_visible_children_ids ( ) { global $ DB ; $ coursecatcache = cache :: make ( 'core' , 'coursecat' ) ; if ( ( $ invisibleids = $ coursecatcache -> get ( 'ic' . $ this -> id ) ) === false ) { // We never checked visible children before. $ hidden = self :: get_tree ( $ this -> id . 'i' ) ; $ catids = self :: get_tree ( $ this -> id ) ; $ invisibleids = array ( ) ; if ( $ catids ) { // Preload categories contexts. list ( $ sql , $ params ) = $ DB -> get_in_or_equal ( $ catids , SQL_PARAMS_NAMED , 'id' ) ; $ ctxselect = context_helper :: get_preload_record_columns_sql ( 'ctx' ) ; $ contexts = $ DB -> get_records_sql ( "SELECT $ctxselect FROM {context} ctx
                      WHERE ctx.contextlevel = :contextcoursecat AND ctx.instanceid " . $ sql , array ( 'contextcoursecat' => CONTEXT_COURSECAT ) + $ params ) ; foreach ( $ contexts as $ record ) { context_helper :: preload_from_record ( $ record ) ; } // Check access for each category. foreach ( $ catids as $ id ) { $ cat = ( object ) [ 'id' => $ id , 'visible' => in_array ( $ id , $ hidden ) ? 0 : 1 ] ; if ( ! self :: can_view_category ( $ cat ) ) { $ invisibleids [ ] = $ id ; } } } $ coursecatcache -> set ( 'ic' . $ this -> id , $ invisibleids ) ; } return $ invisibleids ; }
docstring: Returns array of ids of children categories that current user can not see
  
  This data is cached in user session cache
  
  @return array
docstring_tokens: Returns array of ids of children categories that current user can not see