/** * Helper function to handle edit actions * * @param object $pagemenu Page menu instance * @param string $action Action that is being performed * @return boolean If return true, then a redirect will occure (in edit.php at least) **/ function pagemenu_handle_edit_action($pagemenu, $action = NULL) { global $CFG; if (!confirm_sesskey()) { error(get_string('confirmsesskeybad', 'error')); } $linkid = required_param('linkid', PARAM_INT); if ($action === NULL) { $action = required_param('action', PARAM_ALPHA); } switch ($action) { case 'edit': case 'move': return false; break; case 'movehere': $after = required_param('after', PARAM_INT); pagemenu_move_link($pagemenu, $linkid, $after); pagemenu_set_message(get_string('linkmoved', 'pagemenu'), 'notifysuccess'); break; case 'delete': pagemenu_delete_link($linkid); pagemenu_set_message(get_string('linkdeleted', 'pagemenu'), 'notifysuccess'); break; default: error('Inavlid action: ' . $action); break; } return true; }
/** * This function makes all the necessary calls to {@link restore_decode_content_links_worker()} * function in order to mantain inter-activities during the restore process. * It's called from {@link restore_decode_content_links()} * function in restore process. * * @uses $CFG * @param object $restore Restore object * @return boolean **/ function pagemenu_decode_content_links_caller($restore) { global $CFG; $status = true; if ($links = get_records_sql("SELECT l.id, l.type\n FROM {$CFG->prefix}pagemenu p,\n {$CFG->prefix}pagemenu_links l\n WHERE p.id = l.pagemenuid\n AND p.course = {$restore->course_id}")) { // Include all link type classes require_once $CFG->dirroot . '/mod/pagemenu/link.class.php'; foreach (pagemenu_get_links() as $type) { $path = "{$CFG->dirroot}/mod/pagemenu/links/{$type}.class.php"; if (file_exists($path)) { require_once $path; } } $i = 0; foreach ($links as $link) { $deleteme = true; if ($data = get_records('pagemenu_link_data', 'linkid', $link->id)) { // Call statically for speed if (call_user_func(array("mod_pagemenu_link_{$link->type}", 'restore_data'), $data, $restore)) { $deleteme = false; } } if ($deleteme) { // Restore of data failed, link is useless pagemenu_delete_link($link->id); } // Do some output if (($i + 1) % 5 == 0) { if (!defined('RESTORE_SILENTLY')) { echo "."; if (($i + 1) % 100 == 0) { echo "<br />"; } } backup_flush(300); } $i++; } } return $status; }