original_string: protected static function get_calendar_subscription_details_by_contextlist(approved_contextlist $contextlist) {
          global $DB;
  
          $user = $contextlist->get_user();
  
          list($contextsql, $contextparams) = $DB->get_in_or_equal($contextlist->get_contextids(), SQL_PARAMS_NAMED);
  
          $params = [
              'sitecontext' => CONTEXT_SYSTEM,
              'categorycontext' => CONTEXT_COURSECAT,
              'coursecontext' => CONTEXT_COURSE,
              'groupcontext' => CONTEXT_COURSE,
              'usercontext' => CONTEXT_USER,
              'userid' => $user->id
          ];
          $params += $contextparams;
  
          // Get Calendar Subscriptions for the approved contexts and the owner.
          $sql = "SELECT DISTINCT
                         c.id as contextid,
                         s.id as subscriptionid,
                         s.name as name,
                         s.url as url,
                         s.eventtype as eventtype
                    FROM {context} c
              INNER JOIN {event_subscriptions} s ON
                         (s.eventtype = 'site' AND c.contextlevel = :sitecontext) OR
                         (s.categoryid = c.instanceid AND s.eventtype = 'category' AND c.contextlevel = :categorycontext) OR
                         (s.courseid = c.instanceid AND s.eventtype = 'course' AND c.contextlevel = :coursecontext) OR
                         (s.courseid = c.instanceid AND s.eventtype = 'group' AND c.contextlevel = :groupcontext) OR
                         (s.userid = c.instanceid AND s.eventtype = 'user' AND c.contextlevel = :usercontext)
                   WHERE s.userid = :userid
                     AND c.id {$contextsql}";
  
          return $DB->get_recordset_sql($sql, $params);
      }
code: protected static function get_calendar_subscription_details_by_contextlist(approved_contextlist $contextlist) {
          global $DB;
  
          $user = $contextlist->get_user();
  
          list($contextsql, $contextparams) = $DB->get_in_or_equal($contextlist->get_contextids(), SQL_PARAMS_NAMED);
  
          $params = [
              'sitecontext' => CONTEXT_SYSTEM,
              'categorycontext' => CONTEXT_COURSECAT,
              'coursecontext' => CONTEXT_COURSE,
              'groupcontext' => CONTEXT_COURSE,
              'usercontext' => CONTEXT_USER,
              'userid' => $user->id
          ];
          $params += $contextparams;
  
          // Get Calendar Subscriptions for the approved contexts and the owner.
          $sql = "SELECT DISTINCT
                         c.id as contextid,
                         s.id as subscriptionid,
                         s.name as name,
                         s.url as url,
                         s.eventtype as eventtype
                    FROM {context} c
              INNER JOIN {event_subscriptions} s ON
                         (s.eventtype = 'site' AND c.contextlevel = :sitecontext) OR
                         (s.categoryid = c.instanceid AND s.eventtype = 'category' AND c.contextlevel = :categorycontext) OR
                         (s.courseid = c.instanceid AND s.eventtype = 'course' AND c.contextlevel = :coursecontext) OR
                         (s.courseid = c.instanceid AND s.eventtype = 'group' AND c.contextlevel = :groupcontext) OR
                         (s.userid = c.instanceid AND s.eventtype = 'user' AND c.contextlevel = :usercontext)
                   WHERE s.userid = :userid
                     AND c.id {$contextsql}";
  
          return $DB->get_recordset_sql($sql, $params);
      }
code_tokens: protected static function get_calendar_subscription_details_by_contextlist ( approved_contextlist $ contextlist ) { global $ DB ; $ user = $ contextlist -> get_user ( ) ; list ( $ contextsql , $ contextparams ) = $ DB -> get_in_or_equal ( $ contextlist -> get_contextids ( ) , SQL_PARAMS_NAMED ) ; $ params = [ 'sitecontext' => CONTEXT_SYSTEM , 'categorycontext' => CONTEXT_COURSECAT , 'coursecontext' => CONTEXT_COURSE , 'groupcontext' => CONTEXT_COURSE , 'usercontext' => CONTEXT_USER , 'userid' => $ user -> id ] ; $ params += $ contextparams ; // Get Calendar Subscriptions for the approved contexts and the owner. $ sql = "SELECT DISTINCT
                         c.id as contextid,
                         s.id as subscriptionid,
                         s.name as name,
                         s.url as url,
                         s.eventtype as eventtype
                    FROM {context} c
              INNER JOIN {event_subscriptions} s ON
                         (s.eventtype = 'site' AND c.contextlevel = :sitecontext) OR
                         (s.categoryid = c.instanceid AND s.eventtype = 'category' AND c.contextlevel = :categorycontext) OR
                         (s.courseid = c.instanceid AND s.eventtype = 'course' AND c.contextlevel = :coursecontext) OR
                         (s.courseid = c.instanceid AND s.eventtype = 'group' AND c.contextlevel = :groupcontext) OR
                         (s.userid = c.instanceid AND s.eventtype = 'user' AND c.contextlevel = :usercontext)
                   WHERE s.userid = :userid
                     AND c.id {$contextsql}" ; return $ DB -> get_recordset_sql ( $ sql , $ params ) ; }
docstring: Helper function to return the Calendar Subscriptions for a given user and context list.
  
  @param approved_contextlist $contextlist
  @return array
  @throws \coding_exception
  @throws \dml_exception
docstring_tokens: Helper function to return the Calendar Subscriptions for a given user and context list .