chamilo/chamilo-lms

View on GitHub
public/main/plagiarism/compilatio/download.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/* For licensing terms, see /license.txt */

exit;

/**
 *    This file is responsible for  passing requested documents to the browser.
 *    Html files are parsed to fix a few problems with URLs,
 *    but this code will hopefully be replaced soon by an Apache URL
 *    rewrite mechanism.
 */
session_cache_limiter('public');
require_once '../../inc/global.inc.php';
$current_course_tool = TOOL_STUDENTPUBLICATION;
$this_section = SECTION_COURSES;

// IMPORTANT to avoid caching of documents
header('Expires: Wed, 01 Jan 1990 00:00:00 GMT');
header('Cache-Control: public');
header('Pragma: no-cache');

api_protect_course_script(true);

$id = (int) $_GET['id'];
$courseInfo = api_get_course_info();

if (empty($courseInfo)) {
    api_not_allowed(true);
}

$tbl_student_publication = Database::get_course_table(TABLE_STUDENT_PUBLICATION);

if (!empty($courseInfo['real_id'])) {
    $courseId = $courseInfo['real_id'];
    $sql = "SELECT * FROM $tbl_student_publication
            WHERE c_id = $courseId AND id = $id";
    $result = Database::query($sql);
    if ($result && Database::num_rows($result)) {
        $row = Database::fetch_assoc($result);
        $full_file_name = $courseInfo['course_sys_path'].$row['url'];

        $item_info = api_get_item_property_info($courseId, 'work', $row['id']);
        if (empty($item_info)) {
            exit;
        }
        if (0 == $courseInfo['show_score'] || 1 == $item_info['visibility'] && 1 == $row['accepted'] &&
            ($row['user_id'] == api_get_user_id() || api_is_allowed_to_edit())
        ) {
            $title = str_replace(' ', '_', $row['title']);
            Event::event_download($title);
            if (Security::check_abs_path($full_file_name, $courseInfo['course_sys_path'])) {
                DocumentManager::file_send_for_download($full_file_name, true, $title);
            }
        } else {
            api_not_allowed();
        }
    }
}

exit;