original_string: public static function has_capability_on_any($capabilities) {
          global $DB;
          if (!isloggedin() || isguestuser()) {
              return false;
          }
  
          if (!is_array($capabilities)) {
              $capabilities = array($capabilities);
          }
          $keys = array();
          foreach ($capabilities as $capability) {
              $keys[$capability] = sha1($capability);
          }
  
          /** @var cache_session $cache */
          $cache = cache::make('core', 'coursecat');
          $hascapability = $cache->get_many($keys);
          $needtoload = false;
          foreach ($hascapability as $capability) {
              if ($capability === '1') {
                  return true;
              } else if ($capability === false) {
                  $needtoload = true;
              }
          }
          if ($needtoload === false) {
              // All capabilities were retrieved and the user didn't have any.
              return false;
          }
  
          $haskey = null;
          $fields = context_helper::get_preload_record_columns_sql('ctx');
          $sql = "SELECT ctx.instanceid AS categoryid, $fields
                        FROM {context} ctx
                       WHERE contextlevel = :contextlevel
                    ORDER BY depth ASC";
          $params = array('contextlevel' => CONTEXT_COURSECAT);
          $recordset = $DB->get_recordset_sql($sql, $params);
          foreach ($recordset as $context) {
              context_helper::preload_from_record($context);
              $context = context_coursecat::instance($context->categoryid);
              foreach ($capabilities as $capability) {
                  if (has_capability($capability, $context)) {
                      $haskey = $capability;
                      break 2;
                  }
              }
          }
          $recordset->close();
          if ($haskey === null) {
              $data = array();
              foreach ($keys as $key) {
                  $data[$key] = '0';
              }
              $cache->set_many($data);
              return false;
          } else {
              $cache->set($haskey, '1');
              return true;
          }
      }
code: public static function has_capability_on_any($capabilities) {
          global $DB;
          if (!isloggedin() || isguestuser()) {
              return false;
          }
  
          if (!is_array($capabilities)) {
              $capabilities = array($capabilities);
          }
          $keys = array();
          foreach ($capabilities as $capability) {
              $keys[$capability] = sha1($capability);
          }
  
          /** @var cache_session $cache */
          $cache = cache::make('core', 'coursecat');
          $hascapability = $cache->get_many($keys);
          $needtoload = false;
          foreach ($hascapability as $capability) {
              if ($capability === '1') {
                  return true;
              } else if ($capability === false) {
                  $needtoload = true;
              }
          }
          if ($needtoload === false) {
              // All capabilities were retrieved and the user didn't have any.
              return false;
          }
  
          $haskey = null;
          $fields = context_helper::get_preload_record_columns_sql('ctx');
          $sql = "SELECT ctx.instanceid AS categoryid, $fields
                        FROM {context} ctx
                       WHERE contextlevel = :contextlevel
                    ORDER BY depth ASC";
          $params = array('contextlevel' => CONTEXT_COURSECAT);
          $recordset = $DB->get_recordset_sql($sql, $params);
          foreach ($recordset as $context) {
              context_helper::preload_from_record($context);
              $context = context_coursecat::instance($context->categoryid);
              foreach ($capabilities as $capability) {
                  if (has_capability($capability, $context)) {
                      $haskey = $capability;
                      break 2;
                  }
              }
          }
          $recordset->close();
          if ($haskey === null) {
              $data = array();
              foreach ($keys as $key) {
                  $data[$key] = '0';
              }
              $cache->set_many($data);
              return false;
          } else {
              $cache->set($haskey, '1');
              return true;
          }
      }
code_tokens: public static function has_capability_on_any ( $ capabilities ) { global $ DB ; if ( ! isloggedin ( ) || isguestuser ( ) ) { return false ; } if ( ! is_array ( $ capabilities ) ) { $ capabilities = array ( $ capabilities ) ; } $ keys = array ( ) ; foreach ( $ capabilities as $ capability ) { $ keys [ $ capability ] = sha1 ( $ capability ) ; } /** @var cache_session $cache */ $ cache = cache :: make ( 'core' , 'coursecat' ) ; $ hascapability = $ cache -> get_many ( $ keys ) ; $ needtoload = false ; foreach ( $ hascapability as $ capability ) { if ( $ capability === '1' ) { return true ; } else if ( $ capability === false ) { $ needtoload = true ; } } if ( $ needtoload === false ) { // All capabilities were retrieved and the user didn't have any. return false ; } $ haskey = null ; $ fields = context_helper :: get_preload_record_columns_sql ( 'ctx' ) ; $ sql = "SELECT ctx.instanceid AS categoryid, $fields
                        FROM {context} ctx
                       WHERE contextlevel = :contextlevel
                    ORDER BY depth ASC" ; $ params = array ( 'contextlevel' => CONTEXT_COURSECAT ) ; $ recordset = $ DB -> get_recordset_sql ( $ sql , $ params ) ; foreach ( $ recordset as $ context ) { context_helper :: preload_from_record ( $ context ) ; $ context = context_coursecat :: instance ( $ context -> categoryid ) ; foreach ( $ capabilities as $ capability ) { if ( has_capability ( $ capability , $ context ) ) { $ haskey = $ capability ; break 2 ; } } } $ recordset -> close ( ) ; if ( $ haskey === null ) { $ data = array ( ) ; foreach ( $ keys as $ key ) { $ data [ $ key ] = '0' ; } $ cache -> set_many ( $ data ) ; return false ; } else { $ cache -> set ( $ haskey , '1' ) ; return true ; } }
docstring: Checks if the user has at least one of the given capabilities on any category.
  
  @param array|string $capabilities One or more capabilities to check. Check made is an OR.
  @return bool
docstring_tokens: Checks if the user has at least one of the given capabilities on any category .