/** * Manage inplace editable saves. * * @param string $itemtype The type of item. * @param int $itemid The ID of the item. * @param mixed $newvalue The new value * @return string */ function tool_usertours_inplace_editable($itemtype, $itemid, $newvalue) { $context = \context_system::instance(); external_api::validate_context($context); require_capability('tool/usertours:managetours', $context); if ($itemtype === 'tourname') { $tour = helper::get_tour($itemid); $tour->set_name($newvalue)->persist(); return helper::render_tourname_inplace_editable($tour); } else { if ($itemtype === 'tourdescription') { $tour = helper::get_tour($itemid); $tour->set_description($newvalue)->persist(); return helper::render_tourdescription_inplace_editable($tour); } else { if ($itemtype === 'tourenabled') { $tour = helper::get_tour($itemid); $tour->set_enabled(!!$newvalue)->persist(); return helper::render_tourenabled_inplace_editable($tour); } else { if ($itemtype === 'stepname') { $step = helper::get_step($itemid); $step->set_title($newvalue)->persist(); return helper::render_stepname_inplace_editable($step); } } } } }
/** * Print the view tour page. * * @param int $tourid The ID of the tour to display. */ protected function view_tour($tourid) { global $PAGE; $tour = helper::get_tour($tourid); $PAGE->navbar->add($tour->get_name(), $tour->get_view_link()); $this->header($tour->get_name()); echo \html_writer::span(get_string('viewtour_info', 'tool_usertours', ['tourname' => $tour->get_name(), 'path' => $tour->get_pathmatch()])); echo \html_writer::div(get_string('viewtour_edit', 'tool_usertours', ['editlink' => $tour->get_edit_link()->out(), 'resetlink' => $tour->get_reset_link()->out()])); $table = new table\step_list($tourid); foreach ($tour->get_steps() as $step) { $table->add_data_keyed($table->format_row($step)); } $table->finish_output(); $this->print_edit_step_link($tourid); // JS for Step management. $PAGE->requires->js_call_amd('tool_usertours/managesteps', 'setup'); $this->footer(); }