original_string: public static function update_all_dates($courseid, $timeshift) {
          global $DB;
  
          $modinfo = get_fast_modinfo($courseid);
          $anychanged = false;
  
          // Adjust dates from all course modules.
          foreach ($modinfo->cms as $cm) {
              if (!$cm->availability) {
                  continue;
              }
              $info = new \core_availability\info_module($cm);
              $tree = $info->get_availability_tree();
              $dates = $tree->get_all_children('availability_date\condition');
              $changed = false;
              foreach ($dates as $date) {
                  $date->time += $timeshift;
                  $changed = true;
              }
  
              // Save the updated course module.
              if ($changed) {
                  $DB->set_field('course_modules', 'availability', json_encode($tree->save()),
                          array('id' => $cm->id));
                  $anychanged = true;
              }
          }
  
          // Adjust dates from all course sections.
          foreach ($modinfo->get_section_info_all() as $section) {
              if (!$section->availability) {
                  continue;
              }
  
              $info = new \core_availability\info_section($section);
              $tree = $info->get_availability_tree();
              $dates = $tree->get_all_children('availability_date\condition');
              $changed = false;
              foreach ($dates as $date) {
                  $date->time += $timeshift;
                  $changed = true;
              }
  
              // Save the updated course module.
              if ($changed) {
                  $updatesection = new \stdClass();
                  $updatesection->id = $section->id;
                  $updatesection->availability = json_encode($tree->save());
                  $updatesection->timemodified = time();
                  $DB->update_record('course_sections', $updatesection);
  
                  $anychanged = true;
              }
          }
  
          // Ensure course cache is cleared if required.
          if ($anychanged) {
              rebuild_course_cache($courseid, true);
          }
      }
code: public static function update_all_dates($courseid, $timeshift) {
          global $DB;
  
          $modinfo = get_fast_modinfo($courseid);
          $anychanged = false;
  
          // Adjust dates from all course modules.
          foreach ($modinfo->cms as $cm) {
              if (!$cm->availability) {
                  continue;
              }
              $info = new \core_availability\info_module($cm);
              $tree = $info->get_availability_tree();
              $dates = $tree->get_all_children('availability_date\condition');
              $changed = false;
              foreach ($dates as $date) {
                  $date->time += $timeshift;
                  $changed = true;
              }
  
              // Save the updated course module.
              if ($changed) {
                  $DB->set_field('course_modules', 'availability', json_encode($tree->save()),
                          array('id' => $cm->id));
                  $anychanged = true;
              }
          }
  
          // Adjust dates from all course sections.
          foreach ($modinfo->get_section_info_all() as $section) {
              if (!$section->availability) {
                  continue;
              }
  
              $info = new \core_availability\info_section($section);
              $tree = $info->get_availability_tree();
              $dates = $tree->get_all_children('availability_date\condition');
              $changed = false;
              foreach ($dates as $date) {
                  $date->time += $timeshift;
                  $changed = true;
              }
  
              // Save the updated course module.
              if ($changed) {
                  $updatesection = new \stdClass();
                  $updatesection->id = $section->id;
                  $updatesection->availability = json_encode($tree->save());
                  $updatesection->timemodified = time();
                  $DB->update_record('course_sections', $updatesection);
  
                  $anychanged = true;
              }
          }
  
          // Ensure course cache is cleared if required.
          if ($anychanged) {
              rebuild_course_cache($courseid, true);
          }
      }
code_tokens: public static function update_all_dates ( $ courseid , $ timeshift ) { global $ DB ; $ modinfo = get_fast_modinfo ( $ courseid ) ; $ anychanged = false ; // Adjust dates from all course modules. foreach ( $ modinfo -> cms as $ cm ) { if ( ! $ cm -> availability ) { continue ; } $ info = new \ core_availability \ info_module ( $ cm ) ; $ tree = $ info -> get_availability_tree ( ) ; $ dates = $ tree -> get_all_children ( 'availability_date\condition' ) ; $ changed = false ; foreach ( $ dates as $ date ) { $ date -> time += $ timeshift ; $ changed = true ; } // Save the updated course module. if ( $ changed ) { $ DB -> set_field ( 'course_modules' , 'availability' , json_encode ( $ tree -> save ( ) ) , array ( 'id' => $ cm -> id ) ) ; $ anychanged = true ; } } // Adjust dates from all course sections. foreach ( $ modinfo -> get_section_info_all ( ) as $ section ) { if ( ! $ section -> availability ) { continue ; } $ info = new \ core_availability \ info_section ( $ section ) ; $ tree = $ info -> get_availability_tree ( ) ; $ dates = $ tree -> get_all_children ( 'availability_date\condition' ) ; $ changed = false ; foreach ( $ dates as $ date ) { $ date -> time += $ timeshift ; $ changed = true ; } // Save the updated course module. if ( $ changed ) { $ updatesection = new \ stdClass ( ) ; $ updatesection -> id = $ section -> id ; $ updatesection -> availability = json_encode ( $ tree -> save ( ) ) ; $ updatesection -> timemodified = time ( ) ; $ DB -> update_record ( 'course_sections' , $ updatesection ) ; $ anychanged = true ; } } // Ensure course cache is cleared if required. if ( $ anychanged ) { rebuild_course_cache ( $ courseid , true ) ; } }
docstring: Changes all date restrictions on a course by the specified shift amount.
  Used by the course reset feature.
  
  @param int $courseid Course id
  @param int $timeshift Offset in seconds
docstring_tokens: Changes all date restrictions on a course by the specified shift amount . Used by the course reset feature .