original_string: protected static function export_user_calendar_subscription_data(approved_contextlist $contextlist) {
          // Calendar Subscriptions can exist at Site, Course Category, Course, Course Group, or User contexts.
          $subscriptiondetails = self::get_calendar_subscription_details_by_contextlist($contextlist);
  
          // Multiple Calendar Subscriptions of the same eventtype can exist for a context, so collate them for export.
          $subscriptionrecords = [];
          foreach ($subscriptiondetails as $subscriptiondetail) {
              // Create an array key based on the contextid and eventtype.
              $key = $subscriptiondetail->contextid . $subscriptiondetail->eventtype;
  
              if (array_key_exists($key, $subscriptionrecords) === false) {
                  $subscriptionrecords[$key] = [ $subscriptiondetail ];
              } else {
                  $subscriptionrecords[$key] = array_merge($subscriptionrecords[$key], [$subscriptiondetail]);
              }
          }
          $subscriptiondetails->close();
  
          // Export Calendar Subscription data.
          foreach ($subscriptionrecords as $subscriptionrecord) {
              $index = (count($subscriptionrecord) > 1) ? 1 : 0;
  
              foreach ($subscriptionrecord as $subscription) {
                  // Export the events using the structure Calendar/Subscriptions/{eventtype}-subscription.json.
                  $subcontexts = [
                      get_string('calendar', 'calendar'),
                      get_string('subscriptions', 'calendar')
                  ];
                  $name = $subscription->eventtype . '-subscription';
  
                  // Use name {eventtype}-subscription-{index}.json if multiple eventtypes exists at the same context.
                  if ($index != 0) {
                      $name .= '-' . $index;
                      $index++;
                  }
  
                  $context = \context::instance_by_id($subscription->contextid);
                  writer::with_context($context)->export_related_data($subcontexts, $name, $subscription);
              }
          }
      }
code: protected static function export_user_calendar_subscription_data(approved_contextlist $contextlist) {
          // Calendar Subscriptions can exist at Site, Course Category, Course, Course Group, or User contexts.
          $subscriptiondetails = self::get_calendar_subscription_details_by_contextlist($contextlist);
  
          // Multiple Calendar Subscriptions of the same eventtype can exist for a context, so collate them for export.
          $subscriptionrecords = [];
          foreach ($subscriptiondetails as $subscriptiondetail) {
              // Create an array key based on the contextid and eventtype.
              $key = $subscriptiondetail->contextid . $subscriptiondetail->eventtype;
  
              if (array_key_exists($key, $subscriptionrecords) === false) {
                  $subscriptionrecords[$key] = [ $subscriptiondetail ];
              } else {
                  $subscriptionrecords[$key] = array_merge($subscriptionrecords[$key], [$subscriptiondetail]);
              }
          }
          $subscriptiondetails->close();
  
          // Export Calendar Subscription data.
          foreach ($subscriptionrecords as $subscriptionrecord) {
              $index = (count($subscriptionrecord) > 1) ? 1 : 0;
  
              foreach ($subscriptionrecord as $subscription) {
                  // Export the events using the structure Calendar/Subscriptions/{eventtype}-subscription.json.
                  $subcontexts = [
                      get_string('calendar', 'calendar'),
                      get_string('subscriptions', 'calendar')
                  ];
                  $name = $subscription->eventtype . '-subscription';
  
                  // Use name {eventtype}-subscription-{index}.json if multiple eventtypes exists at the same context.
                  if ($index != 0) {
                      $name .= '-' . $index;
                      $index++;
                  }
  
                  $context = \context::instance_by_id($subscription->contextid);
                  writer::with_context($context)->export_related_data($subcontexts, $name, $subscription);
              }
          }
      }
code_tokens: protected static function export_user_calendar_subscription_data ( approved_contextlist $ contextlist ) { // Calendar Subscriptions can exist at Site, Course Category, Course, Course Group, or User contexts. $ subscriptiondetails = self :: get_calendar_subscription_details_by_contextlist ( $ contextlist ) ; // Multiple Calendar Subscriptions of the same eventtype can exist for a context, so collate them for export. $ subscriptionrecords = [ ] ; foreach ( $ subscriptiondetails as $ subscriptiondetail ) { // Create an array key based on the contextid and eventtype. $ key = $ subscriptiondetail -> contextid . $ subscriptiondetail -> eventtype ; if ( array_key_exists ( $ key , $ subscriptionrecords ) === false ) { $ subscriptionrecords [ $ key ] = [ $ subscriptiondetail ] ; } else { $ subscriptionrecords [ $ key ] = array_merge ( $ subscriptionrecords [ $ key ] , [ $ subscriptiondetail ] ) ; } } $ subscriptiondetails -> close ( ) ; // Export Calendar Subscription data. foreach ( $ subscriptionrecords as $ subscriptionrecord ) { $ index = ( count ( $ subscriptionrecord ) > 1 ) ? 1 : 0 ; foreach ( $ subscriptionrecord as $ subscription ) { // Export the events using the structure Calendar/Subscriptions/{eventtype}-subscription.json. $ subcontexts = [ get_string ( 'calendar' , 'calendar' ) , get_string ( 'subscriptions' , 'calendar' ) ] ; $ name = $ subscription -> eventtype . '-subscription' ; // Use name {eventtype}-subscription-{index}.json if multiple eventtypes exists at the same context. if ( $ index != 0 ) { $ name .= '-' . $ index ; $ index ++ ; } $ context = \ context :: instance_by_id ( $ subscription -> contextid ) ; writer :: with_context ( $ context ) -> export_related_data ( $ subcontexts , $ name , $ subscription ) ; } } }
docstring: Helper function to export Calendar Subscriptions data by a User's contextlist.
  
  @param approved_contextlist $contextlist
  @throws \coding_exception
docstring_tokens: Helper function to export Calendar Subscriptions data by a User s contextlist .