Fixing the copy course by session see CT#1253

skala
Julio Montoya 16 years ago
parent 25aa1aac19
commit 5d0be497a5
  1. 11
      main/coursecopy/classes/CourseSelectForm.class.php
  2. 36
      main/coursecopy/copy_course_session.php

@ -16,7 +16,7 @@ class CourseSelectForm
* @param array $hidden_fiels Hidden fields to add to the form.
* @param boolean the document array will be serialize. This is used in the course_copy.php file
*/
function display_form($course, $hidden_fields = null, $avoid_serialize=false) {
function display_form($course, $hidden_fields = null, $avoid_serialize=false) {
$resource_titles[RESOURCE_EVENT] = get_lang('Events');
$resource_titles[RESOURCE_ANNOUNCEMENT] = get_lang('Announcements');
$resource_titles[RESOURCE_DOCUMENT] = get_lang('Documents');
@ -110,7 +110,7 @@ class CourseSelectForm
case RESOURCE_SURVEYINVITATION:
case RESOURCE_SCORM:
break;
default :
default :
echo '<img id="img_'.$type.'" src="../img/1.gif" onclick="javascript: exp('."'$type'".');" />';
echo '<b onclick="javascript:exp('."'$type'".');" >'.$resource_titles[$type].'</b><br />';
echo '<div id="div_'.$type.'">';
@ -131,7 +131,7 @@ class CourseSelectForm
}
}
}
if ($avoid_serialize) {
//Documents are avoided due the huge amount of memory that the serialize php function "eats" (when there are directories with hundred/thousand of files)
// this is a known issue of serialize
@ -200,7 +200,7 @@ class CourseSelectForm
*/
function get_posted_course($from='', $session_id = 0, $course_code = '') {
$course = unserialize(base64_decode($_POST['course']));
print_r($course);
//Create the resource DOCUMENT objects
//Loading the results from the checkboxes of the javascript
$resource = $_POST['resource'][RESOURCE_DOCUMENT];
@ -215,7 +215,8 @@ class CourseSelectForm
}
// Searching the documents resource that have been set to null because $avoid_serialize is true in the display_form() function
if ($from=='copy_course') {
if ($from == 'copy_course') {
if (is_array($resource)) {
$resource = array_keys($resource);
foreach ($resource as $resource_item) {

@ -5,7 +5,7 @@
* Copy resources from one course in a session to another one.
*
* @author Christian Fasanando <christian.fasanando@dokeos.com>
* @author Julio Montoya <gugli100@gmail.com>
* @author Julio Montoya <gugli100@gmail.com> Lots of bug fixes/improvements
* @package chamilo.backup
*/
@ -18,10 +18,12 @@ $cidReset = true;
require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'fileManage.lib.php';
require_once api_get_path(LIBRARY_PATH).'sessionmanager.lib.php';
require_once api_get_path(LIBRARY_PATH).'xajax/xajax.inc.php';
require_once 'classes/CourseBuilder.class.php';
require_once 'classes/CourseRestorer.class.php';
require_once 'classes/CourseSelectForm.class.php';
require_once '../inc/lib/xajax/xajax.inc.php';
$xajax = new xajax();
$xajax -> registerFunction('search_courses');
@ -76,10 +78,9 @@ function make_select_session_list($name, $sessions, $attr = array()) {
}
function display_form() {
$html = '';
$sessions = SessionManager::get_sessions_list();
// Actions
$html .= '<div class="sectiontitle">';
// Link back to the documents overview
@ -251,7 +252,7 @@ $xajax -> processRequests();
/* HTML head extra */
$htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/');
$htmlHeadXtra[] = $xajax->getJavascript( api_get_path(WEB_LIBRARY_PATH).'xajax/');
$htmlHeadXtra[] = '<script type="text/javascript">
function checkSelected(id_select,id_radio,id_title,id_destination) {
@ -302,17 +303,19 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
$destination_course = $origin_course = $destination_session = $origin_session = '';
if (isset ($_POST['action']) && $_POST['action'] == 'course_select_form') {
$destination_course = $_POST['destination_course'];
$origin_course = $_POST['origin_course'];
$destination_session = $_POST['destination_session'];
$origin_session = $_POST['origin_session'];
$course = CourseSelectForm :: get_posted_course('copy_course',$origin_session,$origin_course);
$course = CourseSelectForm :: get_posted_course('copy_course', $origin_session, $origin_course);
//print_r($course);
$cr = new CourseRestorer($course);
//$cr->set_file_option($_POST['same_file_name_option']);
$cr->restore($destination_course,$destination_session);
$cr->restore($destination_course, $destination_session);
Display::display_normal_message(get_lang('CopyFinished'));
display_form();
} else {
@ -360,9 +363,7 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
Display::display_error_message(get_lang('YouMustSelectACourseFromOriginalSession'));
display_form();
}
}
} elseif (isset($_POST['copy_option']) && $_POST['copy_option'] == 'select_items') {
// Else, if a CourseSelectForm is requested, show it
@ -379,7 +380,7 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
$arr_course_origin = $_POST['SessionCoursesListOrigin'];
}
if (isset($_POST['SessionCoursesListDestination'])) {
$arr_course_destination = $_POST['SessionCoursesListDestination'];
$arr_course_destination = $_POST['SessionCoursesListDestination'];
}
if (isset($_POST['sessions_list_destination'])) {
$destination_session = $_POST['sessions_list_destination'];
@ -390,14 +391,17 @@ if ((isset($_POST['action']) && $_POST['action'] == 'course_select_form') || (is
if ((is_array($arr_course_origin) && count($arr_course_origin) > 0) && !empty($destination_session)) {
Display::display_normal_message(get_lang('ToExportLearnpathWithQuizYouHaveToSelectQuiz'));
$cb = new CourseBuilder();
$course = $cb->build($origin_session,$arr_course_origin[0]);
$course_origin = api_get_course_info($arr_course_origin[0]);
$cb = new CourseBuilder('', $course_origin);
$course = $cb->build($origin_session, $arr_course_origin[0]);
//$hidden_fields['same_file_name_option'] = $_POST['same_file_name_option'];
$hidden_fields['destination_course'] = $arr_course_origin[0];
$hidden_fields['destination_course'] = $arr_course_destination[0];
$hidden_fields['origin_course'] = $arr_course_origin[0];
$hidden_fields['destination_session'] = $destination_session;
$hidden_fields['origin_session'] = $origin_session;
CourseSelectForm :: display_form($course,$hidden_fields, true);
//echo '<pre>'; print_r($course);
CourseSelectForm :: display_form($course, $hidden_fields, true);
echo '<div style="float:right"><a href="javascript:window.back();">'.Display::return_icon('back.png', get_lang('Back').' '.get_lang('To').' '.get_lang('PlatformAdmin'), array('style' => 'vertical-align:middle')).get_lang('Back').'</a></div>';
} else {
Display::display_error_message(get_lang('You must select a course from original session and select a destination session'));

Loading…
Cancel
Save