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;
 }
Пример #2
0
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;
    }
}