/**
  * 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;
             }
         }
     }
 }
示例#2
0
$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();