parent
							
								
									3957b5933b
								
							
						
					
					
						commit
						67ff7589a5
					
				@ -0,0 +1,170 @@ | 
				
			||||
<?php | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
$cidReset = true; | 
				
			||||
require_once __DIR__.'/../inc/global.inc.php'; | 
				
			||||
 | 
				
			||||
// Setting the section (for the tabs). | 
				
			||||
$this_section = SECTION_PLATFORM_ADMIN; | 
				
			||||
 | 
				
			||||
api_protect_admin_script(true); | 
				
			||||
 | 
				
			||||
$sessionId = isset($_REQUEST['session_id']) ? (int) $_REQUEST['session_id'] : null; | 
				
			||||
$courseId = isset($_GET['selected_course']) ? (int) $_GET['selected_course'] : null; | 
				
			||||
$exerciseId = isset($_REQUEST['exerciseId']) ? (int) $_REQUEST['exerciseId'] : null; | 
				
			||||
$courseIdChanged = isset($_GET['course_id_changed']) ? (int) $_GET['course_id_changed'] : null; | 
				
			||||
$exerciseIdChanged = isset($_GET['exercise_id_changed']) ? (int) $_GET['exercise_id_changed'] : null; | 
				
			||||
 | 
				
			||||
// Get the session list | 
				
			||||
$sessionList = SessionManager::get_sessions_by_user(api_get_user_id(), api_is_platform_admin()); | 
				
			||||
 | 
				
			||||
// Course list, get course list of session, or for course where user is admin | 
				
			||||
$courseList = []; | 
				
			||||
if (!empty($sessionId) && $sessionId != '-1' && !empty($sessionList)) { | 
				
			||||
    $sessionInfo = []; | 
				
			||||
    foreach ($sessionList as $session) { | 
				
			||||
        if ($session['session_id'] == $sessionId) { | 
				
			||||
            $sessionInfo = $session; | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
    $courseList = $sessionInfo['courses']; | 
				
			||||
} else { | 
				
			||||
    if (api_is_platform_admin()) { | 
				
			||||
        $courseList = CourseManager::get_courses_list(0, 0, 'title'); | 
				
			||||
    } else { | 
				
			||||
        $courseList = CourseManager::get_course_list_of_user_as_course_admin(api_get_user_id()); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$courseInfo = []; | 
				
			||||
if (empty($courseId)) { | 
				
			||||
    $exerciseId = 0; | 
				
			||||
} else { | 
				
			||||
    $courseInfo = api_get_course_info_by_id($courseId); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('PlatformAdmin')]; | 
				
			||||
 | 
				
			||||
$confirmYourChoice = addslashes(get_lang('ConfirmYourChoice')); | 
				
			||||
$htmlHeadXtra[] = " | 
				
			||||
<script> | 
				
			||||
    function submit_form(obj) { | 
				
			||||
        document.export_all_results_form.submit(); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    function mark_course_id_changed() { | 
				
			||||
        $('#course_id_changed').val('0'); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    function mark_exercise_id_changed() { | 
				
			||||
        $('#exercise_id_changed').val('0'); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    function confirm_your_choice() { | 
				
			||||
        return confirm('$confirmYourChoice'); | 
				
			||||
    } | 
				
			||||
</script>"; | 
				
			||||
 | 
				
			||||
$sessionSelectList = [0 => get_lang('Select')]; | 
				
			||||
foreach ($sessionList as $item) { | 
				
			||||
    $sessionSelectList[$item['session_id']] = $item['session_name']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$courseSelectList = [0 => get_lang('Select')]; | 
				
			||||
foreach ($courseList as $item) { | 
				
			||||
    $courseItemId = $item['real_id']; | 
				
			||||
    $courseInfo = api_get_course_info_by_id($courseItemId); | 
				
			||||
    $courseSelectList[$courseItemId] = ''; | 
				
			||||
    if ($courseItemId == $courseId) { | 
				
			||||
        $courseSelectList[$courseItemId] = '>    '; | 
				
			||||
    } | 
				
			||||
    $courseSelectList[$courseItemId] = $courseInfo['title']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
// If course has changed, reset the menu default | 
				
			||||
if (!empty($courseSelectList) && !in_array($courseId, array_keys($courseSelectList))) { | 
				
			||||
    $courseId = 0; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$courseInfo = api_get_course_info_by_id($courseId); | 
				
			||||
 | 
				
			||||
// Get exercise list for this course | 
				
			||||
$exerciseList = ExerciseLib::get_all_exercises_for_course_id( | 
				
			||||
    $courseInfo, | 
				
			||||
    $sessionId, | 
				
			||||
    $courseId, | 
				
			||||
    false | 
				
			||||
); | 
				
			||||
 | 
				
			||||
$exerciseSelectList = []; | 
				
			||||
$exerciseSelectList = [0 => get_lang('Select')]; | 
				
			||||
if (is_array($exerciseList)) { | 
				
			||||
    foreach ($exerciseList as $row) { | 
				
			||||
        $exerciseTitle = $row['title']; | 
				
			||||
        $exerciseSelectList[$row['iid']] = $exerciseTitle; | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$url = api_get_self().'?'.api_get_cidreq().'&'.http_build_query( | 
				
			||||
        [ | 
				
			||||
            'session_id' => $sessionId, | 
				
			||||
            'selected_course' => $courseId, | 
				
			||||
            'exerciseId' => $exerciseId, | 
				
			||||
            'course_id_changed' => $courseIdChanged, | 
				
			||||
            'exercise_id_changed' => $exerciseIdChanged, | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
// Form | 
				
			||||
$form = new FormValidator('export_all_results_form', 'GET', $url); | 
				
			||||
$form->addHeader(get_lang('ExportExerciseAllResults')); | 
				
			||||
$form | 
				
			||||
    ->addSelect( | 
				
			||||
        'session_id', | 
				
			||||
        get_lang('Session'), | 
				
			||||
        $sessionSelectList, | 
				
			||||
        ['onchange' => 'submit_form(this)', 'id' => 'session_id'] | 
				
			||||
    ) | 
				
			||||
    ->setSelected($sessionId); | 
				
			||||
$form | 
				
			||||
    ->addSelect( | 
				
			||||
        'selected_course', | 
				
			||||
        get_lang('Course'), | 
				
			||||
        $courseSelectList, | 
				
			||||
        ['onchange' => 'mark_course_id_changed(); submit_form(this);', 'id' => 'selected_course'] | 
				
			||||
    ) | 
				
			||||
    ->setSelected($courseId); | 
				
			||||
$form | 
				
			||||
    ->addSelect( | 
				
			||||
        'exerciseId', | 
				
			||||
        get_lang('Exercise'), | 
				
			||||
        $exerciseSelectList | 
				
			||||
    ) | 
				
			||||
    ->setSelected($exerciseId); | 
				
			||||
 | 
				
			||||
$form->addHidden('course_id_changed', '0'); | 
				
			||||
$form->addHidden('exercise_id_changed', '0'); | 
				
			||||
$form->addButtonExport(get_lang('Export'), 'name'); | 
				
			||||
 | 
				
			||||
if ($form->validate()) { | 
				
			||||
    $values = $form->getSubmitValues(); | 
				
			||||
 | 
				
			||||
    if (!empty($values['exerciseId']) && !empty($values['selected_course'])) { | 
				
			||||
        $sessionId = (int) $values['session_id']; | 
				
			||||
        $courseId = (int) $values['selected_course']; | 
				
			||||
        $exerciseId = (int) $values['exerciseId']; | 
				
			||||
        ExerciseLib::exportExerciseAllResultsZip($sessionId, $courseId, $exerciseId); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
 | 
				
			||||
Display::display_header(get_lang('ExportExerciseAllResults')); | 
				
			||||
 | 
				
			||||
echo Display::return_message( | 
				
			||||
    get_lang('ThisProcessCantakeALongTime'), | 
				
			||||
    'normal', | 
				
			||||
    false, | 
				
			||||
); | 
				
			||||
 | 
				
			||||
echo $form->display(); | 
				
			||||
 | 
				
			||||
Display::display_footer(); | 
				
			||||
					Loading…
					
					
				
		Reference in new issue