public function build_session_course() { $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $list_course = Database::get_course_list(); $list = array(); foreach ($list_course as $_course) { $this->course = new Course(); $this->course->code = $_course['code']; $this->course->type = 'partial'; $this->course->path = api_get_path(SYS_COURSE_PATH) . $_course['directory'] . '/'; $this->course->backup_path = api_get_path(SYS_COURSE_PATH) . $_course['directory']; $this->course->encoding = api_get_system_encoding(); //current platform encoding $code_course = $_course['code']; $sql_session = "SELECT id, name, course_code FROM {$tbl_session_course}\n INNER JOIN {$tbl_session} ON id_session = id\n WHERE course_code = '{$code_course}' "; $query_session = Database::query($sql_session); while ($rows_session = Database::fetch_assoc($query_session)) { $session = new CourseSession($rows_session['id'], $rows_session['name']); $this->course->add_resource($session); } $list[] = $this->course; } return $list; }
function fullexportspecial() { global $tbl_session, $tbl_session_course, $export; $FileZip = create_zip(); $to_group_id = 0; $code_course = ''; $list_course = array(); $zip_folder = new PclZip($FileZip['TEMP_FILE_ZIP']); $list_course = Database::get_course_list(); $tbl_document = Database::get_course_table(TABLE_DOCUMENT); $tbl_property = Database::get_course_table(TABLE_ITEM_PROPERTY); if (count($list_course) > 0) { foreach ($list_course as $_course) { if ($FileZip['PATH'] == '/') { $querypath = ''; // to prevent ...path LIKE '//%'... in query } else { $querypath = $FileZip['PATH']; } $course_id = $_course['real_id']; //Add tem to the zip file course $sql = "SELECT path FROM {$tbl_document} AS docs, {$tbl_property} AS props\n WHERE props.tool='" . TOOL_DOCUMENT . "'\n AND docs.id=props.ref\n AND docs.path LIKE '" . $querypath . "/%'\n AND docs.filetype='file'\n AND docs.session_id = '0'\n AND props.visibility<>'2'\n AND props.to_group_id=" . $to_group_id . " AND docs.c_id = {$course_id} AND props.c_id = {$course_id}"; $query = Database::query($sql); while ($rows_course_file = Database::fetch_assoc($query)) { $rows_course_file['path']; $zip_folder->add($FileZip['PATH_COURSE'] . $_course['directory'] . "/document" . $rows_course_file['path'], PCLZIP_OPT_ADD_PATH, $_course['directory'], PCLZIP_OPT_REMOVE_PATH, $FileZip['PATH_COURSE'] . $_course['directory'] . "/document" . $FileZip['PATH_REMOVE']); } //Add tem to the zip file session course $code_course = $_course['code']; $sql_session = "SELECT id, name, course_code FROM {$tbl_session_course}\n INNER JOIN {$tbl_session} ON id_session = id\n WHERE course_code = '{$code_course}' "; $query_session = Database::query($sql_session); while ($rows_session = Database::fetch_assoc($query_session)) { $session_id = $rows_session['id']; $sql_session_doc = "SELECT path FROM {$tbl_document} AS docs, {$tbl_property} AS props\n WHERE props.tool='" . TOOL_DOCUMENT . "'\n AND docs.id=props.ref\n AND docs.path LIKE '" . $querypath . "/%'\n AND docs.filetype='file'\n AND docs.session_id = '{$session_id}'\n AND props.visibility<>'2'\n AND props.to_group_id=" . $to_group_id . " AND docs.c_id = {$course_id} AND props.c_id = {$course_id} "; $query_session_doc = Database::query($sql_session_doc); while ($rows_course_session_file = Database::fetch_assoc($query_session_doc)) { $zip_folder->add($FileZip['PATH_COURSE'] . $_course['directory'] . '/document' . $rows_course_session_file['path'], PCLZIP_OPT_ADD_PATH, $_course['directory'] . "/" . $rows_session['name'], PCLZIP_OPT_REMOVE_PATH, $FileZip['PATH_COURSE'] . $_course['directory'] . '/document' . $FileZip['PATH_REMOVE']); } } } $name = rename_zip($FileZip); if ($name === false) { $export = false; return false; } else { $export = true; return $name; } } else { Display::display_error_message(get_lang('ErrorMsgSpecialExport')); //main API $export = false; return false; } }