/** * Restore Works * @param int $sessionId */ public function restore_works($sessionId = 0) { require_once api_get_path(SYS_CODE_PATH) . 'work/work.lib.php'; if ($this->course->has_resources(RESOURCE_WORK)) { $table_work_assignment = Database::get_course_table(TABLE_STUDENT_PUBLICATION_ASSIGNMENT); $resources = $this->course->resources; foreach ($resources[RESOURCE_WORK] as $obj) { // check resources inside html from ckeditor tool and copy correct urls into recipient course $obj->params['description'] = DocumentManager::replace_urls_inside_content_html_from_copy_course($obj->params['description'], $this->course->code, $this->course->destination_path, $this->course->backup_path, $this->course->info['path']); $id_work = $obj->params['id']; $obj->params['id'] = null; $obj->params['c_id'] = $this->destination_course_info['real_id']; // re-create dir // @todo check security against injection of dir in crafted course backup here! $path = $obj->params['url']; $path = '/' . str_replace('/', '', substr($path, 1)); $workData = array(); switch ($this->file_option) { case FILE_SKIP: $workData = get_work_data_by_path($path, $this->destination_course_info['real_id']); if (!empty($workData)) { continue; } case FILE_OVERWRITE: // Creating folder. $workData = get_work_data_by_path($path, $this->destination_course_info['real_id']); case FILE_RENAME: $obj->params['new_dir'] = $obj->params['title']; if (!empty($this->course_origin_id)) { $sql = 'SELECT * FROM ' . $table_work_assignment . ' WHERE c_id = ' . $this->course_origin_id . ' AND publication_id = ' . $id_work; $result = Database::query($sql); $cant = Database::num_rows($result); if ($cant > 0) { $row = Database::fetch_assoc($result); } //$obj->params['qualification'] = empty($row['enable_qualification']) ? true : false; $obj->params['enableExpiryDate'] = $row['expires_on'] == '0000-00-00 00:00:00' ? false : true; $obj->params['enableEndDate'] = $row['ends_on'] == '0000-00-00 00:00:00' ? false : true; $obj->params['expires_on'] = $row['expires_on']; $obj->params['ends_on'] = $row['ends_on']; $obj->params['enable_qualification'] = $row['enable_qualification']; $obj->params['add_to_calendar'] = !empty($row['add_to_calendar']) ? 1 : 0; if (empty($workData)) { addDir($obj->params, api_get_user_id(), $this->destination_course_info, 0, $sessionId); } else { $workId = $workData['id']; updateWork($workId, $obj->params, $this->destination_course_info, $sessionId); updatePublicationAssignment($workId, $obj->params, $this->destination_course_info, 0); } } break; } } } }
$form->addElement('style_submit_button', 'submit', get_lang('ModifyDirectory'), 'class="save"'); if ($form->validate()) { $params = $form->exportValues(); $workId = $params['work_id']; $editCheck = false; $workData = get_work_data_by_id($workId); if (!empty($workData)) { $editCheck = true; } else { $editCheck = true; } if ($editCheck) { updateWork($workId, $params, $courseInfo, $sessionId); updatePublicationAssignment($workId, $params, $courseInfo, $groupId); updateDirName($workData, $params['new_dir']); $currentUrl = api_get_path(WEB_CODE_PATH).'work/edit_work.php?id='.$workId.'&'.api_get_cidreq(); Session::write('message', Display::return_message(get_lang('FolderEdited'), 'success')); header('Location: '.$currentUrl); exit; } else { Session::write('message', Display::return_message(get_lang('FileExists'), 'warning')); } } Display::display_header();