print_error('invalidcoursemodule'); } $PAGE->set_cm($cm); } $context = get_context_instance(CONTEXT_MODULE, $cm->id); $PAGE->set_pagelayout('incourse'); require_course_login($course, true, $cm); require_capability('mod/ouwiki:deletepage', $context); // Get the page version to be [un]deleted $pageversion = ouwiki_get_page_version($subwiki, $pagename, $versionid); if (!$pageversion) { print_error('deleteversionerrorversion', 'ouwiki'); } // Note: No need to confirm deleting/undeleting page version // Lock page list($lockok, $lock) = ouwiki_obtain_lock($ouwiki, $pageversion->pageid); // Set default action $action = 'delete'; try { // [Un]Delete page version if (empty($pageversion->deletedat)) { // Flag page version as deleted $DB->set_field('ouwiki_versions', 'deletedat', time(), array('id' => $versionid)); // Check if current version has been deleted if ($pageversion->versionid == $pageversion->currentversionid) { // Current version deleted // Update current version to first undeleted version (or null) $pageversions = ouwiki_get_page_history($pageversion->pageid, false, 0, 1); if ($currentpageversion = reset($pageversions)) { // Page version found, update page current version id $DB->set_field('ouwiki_pages', 'currentversionid', $currentpageversion->versionid, array('id' => $pageversion->pageid));
} if ($ipagename == '' && $startpagemerge == 1) { // If start page exists then set imported start page in conflicts array. if (ouwiki_get_current_page($subwiki, $ipagename, OUWIKI_GETPAGE_ACCEPTNOVERSION)) { $conflicts[$page] = $ipagename; } // Doesn't matter if start page is locked - when adding links check and skip if is. continue; } // Check if this page already exists, and is locked. if ($currentpageexists = ouwiki_get_current_page($subwiki, $ipagename, OUWIKI_GETPAGE_ACCEPTNOVERSION)) { $conflicts[$page] = $ipagename; if (has_capability('mod/ouwiki:overridelock', $context)) { ouwiki_override_lock($currentpageexists->pageid); } list($lock, $by) = ouwiki_obtain_lock($ouwiki, $currentpageexists->pageid); if ($currentpageexists->locked) { $lock = false; // No one can edit. } if (!$lock) { throw new moodle_exception('import_process_locked', 'ouwiki'); } } } $newpagelist = array(); // Use to store names of new pages imported. $updatepagelist = array(); $importedindex = array(); $updatedindex = array(); $pbar = new progress_bar('mod_ouwiki_import', 500, true);