* @package dokeos.backup */ class CourseSelectForm { /** * Display the form * @param array $hidden_fiels Hidden fields to add to the form. */ function display_form($course, $hidden_fields = null) { $resource_titles[RESOURCE_EVENT] = get_lang('Events'); $resource_titles[RESOURCE_ANNOUNCEMENT] = get_lang('Announcements'); $resource_titles[RESOURCE_DOCUMENT] = get_lang('Documents'); $resource_titles[RESOURCE_LINK] = get_lang('Links'); $resource_titles[RESOURCE_COURSEDESCRIPTION] = get_lang('CourseDescription'); $resource_titles[RESOURCE_FORUM] = get_lang('Forums'); $resource_titles[RESOURCE_QUIZ] = get_lang('Tests'); $resource_titles[RESOURCE_LEARNPATH] = get_lang('Learnpaths'); $resource_titles[RESOURCE_SCORM] = 'SCORM'; $resource_titles[RESOURCE_TOOL_INTRO] = get_lang('ToolIntro'); $resource_titles[RESOURCE_SURVEY] = get_lang('Survey'); ?> '; echo get_lang('DestinationCourse').' : '.$course_infos['title']; echo ''; } echo '
'; echo get_lang('SelectResources'); echo '
'; echo ''; echo ''; echo ''; echo ''; } function display_hidden_quiz_questions($course) { foreach ($course->resources as $type => $resources) { if (count($resources) > 0) { switch ($type) { case RESOURCE_QUIZQUESTION: foreach ($resources as $id => $resource) { echo ''; } break; } } } } function display_hidden_scorm_directories($course) { foreach ($course->resources as $type => $resources) { if(count($resources) > 0) { switch($type) { case RESOURCE_SCORM: foreach ($resources as $id=>$resource) { echo ''; } break; } } } } /** * Get the posted course * @return course The course-object with all resources selected by the user * in the form given by display_form(...) */ function get_posted_course() { $course = unserialize(base64_decode($_POST['course'])); //Create the resource DOCUMENT objects //Loading the results from the checkboxes of the javascript $resource = $_POST['resource'][RESOURCE_DOCUMENT]; $table_doc = Database :: get_course_table(TABLE_DOCUMENT); $table_prop = Database :: get_course_table(TABLE_ITEM_PROPERTY); $resource = array_keys($resource); foreach ($resource as $resource_item) { $sql = 'SELECT * FROM '.$table_doc.' d, '.$table_prop.' p WHERE tool = \''.TOOL_DOCUMENT.'\' AND p.ref = d.id AND p.visibility != 2 AND id = '.$resource_item.' ORDER BY path'; $db_result = api_sql_query($sql, __FILE__, __LINE__); while ($obj = Database::fetch_object($db_result)) { $doc = new Document($obj->id, $obj->path, $obj->comment, $obj->title, $obj->filetype, $obj->size); $course->add_resource($doc); // adding item property $sql = "SELECT * FROM $table_prop WHERE TOOL = '".RESOURCE_DOCUMENT."' AND ref='".$resource_item."'"; $res = api_sql_query($sql,__FILE__,__LINE__); $all_properties = array (); while ($item_property = Database::fetch_array($res,'ASSOC')) { $all_properties[] = $item_property; } $course->resources[RESOURCE_DOCUMENT][$resource_item]->item_properties = $all_properties; } } foreach ($course->resources as $type => $resources) { switch ($type) { case RESOURCE_SURVEYQUESTION: foreach($resources as $id => $obj) { if(!in_array($obj->survey_id,array_keys($_POST['resource'][RESOURCE_SURVEY]))) { unset ($course->resources[$type][$id]); } } break; case RESOURCE_LINKCATEGORY : case RESOURCE_FORUMCATEGORY : case RESOURCE_FORUMPOST : case RESOURCE_FORUMTOPIC : case RESOURCE_QUIZQUESTION : case RESOURCE_DOCUMENT: // Mark folders to import which are not selected by the user to import, // but in which a document was selected. $documents = $_POST['resource'][RESOURCE_DOCUMENT]; foreach($resources as $id => $obj) { if( $obj->file_type == 'folder' && ! isset($_POST['resource'][RESOURCE_DOCUMENT][$id]) && is_array($documents)) { foreach($documents as $id_to_check => $post_value) { $obj_to_check = $resources[$id_to_check]; $shared_path_part = substr($obj_to_check->path,0,strlen($obj->path)); if($id_to_check != $id && $obj->path == $shared_path_part) { $_POST['resource'][RESOURCE_DOCUMENT][$id] = 1; break; } } } } default : foreach ($resources as $id => $obj) { $resource_is_used_elsewhere = $course->is_linked_resource($obj); // check if document is in a quiz (audio/video) if( $type == RESOURCE_DOCUMENT && $course->has_resources(RESOURCE_QUIZ)) { foreach($course->resources[RESOURCE_QUIZ] as $qid => $quiz) { if($quiz->media == $id) { $resource_is_used_elsewhere = true; } } } if (!isset ($_POST['resource'][$type][$id]) && !$resource_is_used_elsewhere) { unset ($course->resources[$type][$id]); } } } } return $course; } } ?>