/** * Reset the sortorder for all steps in the tour. * * @return $this */ public function reset_step_sortorder() { global $DB; $steps = $DB->get_records('tool_usertours_steps', array('tourid' => $this->id), 'sortorder ASC', 'id'); $index = 0; foreach ($steps as $step) { $DB->set_field('tool_usertours_steps', 'sortorder', $index, array('id' => $step->id)); $index++; } // Notify of a change to the step configuration. // Note: Do not notify of a tour change here. This is only a step change for a tour. cache::notify_step_change($this->get_id()); return $this; }
/** * Remove this step. */ public function remove() { global $DB; if ($this->id === null) { return; } $DB->delete_records('tool_usertours_steps', array('id' => $this->id)); $this->get_tour()->reset_step_sortorder(); // Notify of a change to the step configuration. // This must be done separately to tour change notifications. cache::notify_step_change($this->get_id()); // Notify the cache that a tour has changed. // Tours are only stored in the cache if there are steps. // If there step count has changed for some reason, this will change the potential cache results. cache::notify_tour_change(); }