original_string: public static function get_contexts_for_userid(int $userid) : contextlist {
          $contextlist = new contextlist();
  
          // Calendar Events can exist at Site, Course Category, Course, Course Group, User, or Course Modules contexts.
          $params = [
              'sitecontext'        => CONTEXT_SYSTEM,
              'categorycontext'    => CONTEXT_COURSECAT,
              'coursecontext'      => CONTEXT_COURSE,
              'groupcontext'       => CONTEXT_COURSE,
              'usercontext'        => CONTEXT_USER,
              'cuserid'            => $userid,
              'modulecontext'      => CONTEXT_MODULE,
              'muserid'            => $userid
          ];
  
          // Get contexts of Calendar Events for the owner.
          $sql = "SELECT ctx.id
                    FROM {context} ctx
                    JOIN {event} e ON
                         (e.eventtype = 'site' AND ctx.contextlevel = :sitecontext) OR
                         (e.categoryid = ctx.instanceid AND e.eventtype = 'category' AND ctx.contextlevel = :categorycontext) OR
                         (e.courseid = ctx.instanceid AND e.eventtype = 'course' AND ctx.contextlevel = :coursecontext) OR
                         (e.courseid = ctx.instanceid AND e.eventtype = 'group' AND ctx.contextlevel = :groupcontext) OR
                         (e.userid = ctx.instanceid AND e.eventtype = 'user' AND ctx.contextlevel = :usercontext)
                   WHERE e.userid = :cuserid
                   UNION
                  SELECT ctx.id
                    FROM {context} ctx
                    JOIN {course_modules} cm ON cm.id = ctx.instanceid AND ctx.contextlevel = :modulecontext
                    JOIN {modules} m ON m.id = cm.module
                    JOIN {event} e ON e.modulename = m.name AND e.courseid = cm.course AND e.instance = cm.instance
                   WHERE e.userid = :muserid";
          $contextlist->add_from_sql($sql, $params);
  
          // Calendar Subscriptions can exist at Site, Course Category, Course, Course Group, or User contexts.
          $params = [
              'sitecontext'       => CONTEXT_SYSTEM,
              'categorycontext'   => CONTEXT_COURSECAT,
              'coursecontext'     => CONTEXT_COURSE,
              'groupcontext'      => CONTEXT_COURSE,
              'usercontext'       => CONTEXT_USER,
              'userid'            => $userid
          ];
  
          // Get contexts for Calendar Subscriptions for the owner.
          $sql = "SELECT ctx.id
                    FROM {context} ctx
                    JOIN {event_subscriptions} s ON
                         (s.eventtype = 'site' AND ctx.contextlevel = :sitecontext) OR
                         (s.categoryid = ctx.instanceid AND s.eventtype = 'category' AND ctx.contextlevel = :categorycontext) OR
                         (s.courseid = ctx.instanceid AND s.eventtype = 'course' AND ctx.contextlevel = :coursecontext) OR
                         (s.courseid = ctx.instanceid AND s.eventtype = 'group' AND ctx.contextlevel = :groupcontext) OR
                         (s.userid = ctx.instanceid AND s.eventtype = 'user' AND ctx.contextlevel = :usercontext)
                   WHERE s.userid = :userid";
          $contextlist->add_from_sql($sql, $params);
  
          // Return combined contextlist for Calendar Events & Calendar Subscriptions.
          return $contextlist;
      }
code: public static function get_contexts_for_userid(int $userid) : contextlist {
          $contextlist = new contextlist();
  
          // Calendar Events can exist at Site, Course Category, Course, Course Group, User, or Course Modules contexts.
          $params = [
              'sitecontext'        => CONTEXT_SYSTEM,
              'categorycontext'    => CONTEXT_COURSECAT,
              'coursecontext'      => CONTEXT_COURSE,
              'groupcontext'       => CONTEXT_COURSE,
              'usercontext'        => CONTEXT_USER,
              'cuserid'            => $userid,
              'modulecontext'      => CONTEXT_MODULE,
              'muserid'            => $userid
          ];
  
          // Get contexts of Calendar Events for the owner.
          $sql = "SELECT ctx.id
                    FROM {context} ctx
                    JOIN {event} e ON
                         (e.eventtype = 'site' AND ctx.contextlevel = :sitecontext) OR
                         (e.categoryid = ctx.instanceid AND e.eventtype = 'category' AND ctx.contextlevel = :categorycontext) OR
                         (e.courseid = ctx.instanceid AND e.eventtype = 'course' AND ctx.contextlevel = :coursecontext) OR
                         (e.courseid = ctx.instanceid AND e.eventtype = 'group' AND ctx.contextlevel = :groupcontext) OR
                         (e.userid = ctx.instanceid AND e.eventtype = 'user' AND ctx.contextlevel = :usercontext)
                   WHERE e.userid = :cuserid
                   UNION
                  SELECT ctx.id
                    FROM {context} ctx
                    JOIN {course_modules} cm ON cm.id = ctx.instanceid AND ctx.contextlevel = :modulecontext
                    JOIN {modules} m ON m.id = cm.module
                    JOIN {event} e ON e.modulename = m.name AND e.courseid = cm.course AND e.instance = cm.instance
                   WHERE e.userid = :muserid";
          $contextlist->add_from_sql($sql, $params);
  
          // Calendar Subscriptions can exist at Site, Course Category, Course, Course Group, or User contexts.
          $params = [
              'sitecontext'       => CONTEXT_SYSTEM,
              'categorycontext'   => CONTEXT_COURSECAT,
              'coursecontext'     => CONTEXT_COURSE,
              'groupcontext'      => CONTEXT_COURSE,
              'usercontext'       => CONTEXT_USER,
              'userid'            => $userid
          ];
  
          // Get contexts for Calendar Subscriptions for the owner.
          $sql = "SELECT ctx.id
                    FROM {context} ctx
                    JOIN {event_subscriptions} s ON
                         (s.eventtype = 'site' AND ctx.contextlevel = :sitecontext) OR
                         (s.categoryid = ctx.instanceid AND s.eventtype = 'category' AND ctx.contextlevel = :categorycontext) OR
                         (s.courseid = ctx.instanceid AND s.eventtype = 'course' AND ctx.contextlevel = :coursecontext) OR
                         (s.courseid = ctx.instanceid AND s.eventtype = 'group' AND ctx.contextlevel = :groupcontext) OR
                         (s.userid = ctx.instanceid AND s.eventtype = 'user' AND ctx.contextlevel = :usercontext)
                   WHERE s.userid = :userid";
          $contextlist->add_from_sql($sql, $params);
  
          // Return combined contextlist for Calendar Events & Calendar Subscriptions.
          return $contextlist;
      }
code_tokens: public static function get_contexts_for_userid ( int $ userid ) : contextlist { $ contextlist = new contextlist ( ) ; // Calendar Events can exist at Site, Course Category, Course, Course Group, User, or Course Modules contexts. $ params = [ 'sitecontext' => CONTEXT_SYSTEM , 'categorycontext' => CONTEXT_COURSECAT , 'coursecontext' => CONTEXT_COURSE , 'groupcontext' => CONTEXT_COURSE , 'usercontext' => CONTEXT_USER , 'cuserid' => $ userid , 'modulecontext' => CONTEXT_MODULE , 'muserid' => $ userid ] ; // Get contexts of Calendar Events for the owner. $ sql = "SELECT ctx.id
                    FROM {context} ctx
                    JOIN {event} e ON
                         (e.eventtype = 'site' AND ctx.contextlevel = :sitecontext) OR
                         (e.categoryid = ctx.instanceid AND e.eventtype = 'category' AND ctx.contextlevel = :categorycontext) OR
                         (e.courseid = ctx.instanceid AND e.eventtype = 'course' AND ctx.contextlevel = :coursecontext) OR
                         (e.courseid = ctx.instanceid AND e.eventtype = 'group' AND ctx.contextlevel = :groupcontext) OR
                         (e.userid = ctx.instanceid AND e.eventtype = 'user' AND ctx.contextlevel = :usercontext)
                   WHERE e.userid = :cuserid
                   UNION
                  SELECT ctx.id
                    FROM {context} ctx
                    JOIN {course_modules} cm ON cm.id = ctx.instanceid AND ctx.contextlevel = :modulecontext
                    JOIN {modules} m ON m.id = cm.module
                    JOIN {event} e ON e.modulename = m.name AND e.courseid = cm.course AND e.instance = cm.instance
                   WHERE e.userid = :muserid" ; $ contextlist -> add_from_sql ( $ sql , $ params ) ; // Calendar Subscriptions can exist at Site, Course Category, Course, Course Group, or User contexts. $ params = [ 'sitecontext' => CONTEXT_SYSTEM , 'categorycontext' => CONTEXT_COURSECAT , 'coursecontext' => CONTEXT_COURSE , 'groupcontext' => CONTEXT_COURSE , 'usercontext' => CONTEXT_USER , 'userid' => $ userid ] ; // Get contexts for Calendar Subscriptions for the owner. $ sql = "SELECT ctx.id
                    FROM {context} ctx
                    JOIN {event_subscriptions} s ON
                         (s.eventtype = 'site' AND ctx.contextlevel = :sitecontext) OR
                         (s.categoryid = ctx.instanceid AND s.eventtype = 'category' AND ctx.contextlevel = :categorycontext) OR
                         (s.courseid = ctx.instanceid AND s.eventtype = 'course' AND ctx.contextlevel = :coursecontext) OR
                         (s.courseid = ctx.instanceid AND s.eventtype = 'group' AND ctx.contextlevel = :groupcontext) OR
                         (s.userid = ctx.instanceid AND s.eventtype = 'user' AND ctx.contextlevel = :usercontext)
                   WHERE s.userid = :userid" ; $ contextlist -> add_from_sql ( $ sql , $ params ) ; // Return combined contextlist for Calendar Events & Calendar Subscriptions. return $ contextlist ; }
docstring: Get the list of contexts that contain calendar user information for the specified user.
  
  @param   int $userid The user to search.
  @return  contextlist   $contextlist  The contextlist containing the list of contexts used in this plugin.
docstring_tokens: Get the list of contexts that contain calendar user information for the specified user .