original_string: public static function import_tour_from_json($json) {
          $tourconfig = json_decode($json);
  
          // We do not use this yet - we may do in the future.
          unset($tourconfig->version);
  
          $steps = $tourconfig->steps;
          unset($tourconfig->steps);
  
          $tourconfig->id = null;
          $tourconfig->sortorder = null;
          $tour = tour::load_from_record($tourconfig, true);
          $tour->persist(true);
  
          // Ensure that steps are orderered by their sortorder.
          \core_collator::asort_objects_by_property($steps, 'sortorder', \core_collator::SORT_NUMERIC);
  
          foreach ($steps as $stepconfig) {
              $stepconfig->id = null;
              $stepconfig->tourid = $tour->get_id();
              $step = step::load_from_record($stepconfig, true);
              $step->persist(true);
          }
  
          return $tour;
      }
code: public static function import_tour_from_json($json) {
          $tourconfig = json_decode($json);
  
          // We do not use this yet - we may do in the future.
          unset($tourconfig->version);
  
          $steps = $tourconfig->steps;
          unset($tourconfig->steps);
  
          $tourconfig->id = null;
          $tourconfig->sortorder = null;
          $tour = tour::load_from_record($tourconfig, true);
          $tour->persist(true);
  
          // Ensure that steps are orderered by their sortorder.
          \core_collator::asort_objects_by_property($steps, 'sortorder', \core_collator::SORT_NUMERIC);
  
          foreach ($steps as $stepconfig) {
              $stepconfig->id = null;
              $stepconfig->tourid = $tour->get_id();
              $step = step::load_from_record($stepconfig, true);
              $step->persist(true);
          }
  
          return $tour;
      }
code_tokens: public static function import_tour_from_json ( $ json ) { $ tourconfig = json_decode ( $ json ) ; // We do not use this yet - we may do in the future. unset ( $ tourconfig -> version ) ; $ steps = $ tourconfig -> steps ; unset ( $ tourconfig -> steps ) ; $ tourconfig -> id = null ; $ tourconfig -> sortorder = null ; $ tour = tour :: load_from_record ( $ tourconfig , true ) ; $ tour -> persist ( true ) ; // Ensure that steps are orderered by their sortorder. \ core_collator :: asort_objects_by_property ( $ steps , 'sortorder' , \ core_collator :: SORT_NUMERIC ) ; foreach ( $ steps as $ stepconfig ) { $ stepconfig -> id = null ; $ stepconfig -> tourid = $ tour -> get_id ( ) ; $ step = step :: load_from_record ( $ stepconfig , true ) ; $ step -> persist ( true ) ; } return $ tour ; }
docstring: Import the provided tour JSON.
  
  @param   string      $json           The tour configuration.
  @return  tour
docstring_tokens: Import the provided tour JSON .