Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/main/inc/ajax/record_audio_rtc.ajax.php

70 lines
1.6 KiB

<?php
/* For licensing terms, see /license.txt */
use ChamiloSession as Session;
require_once __DIR__.'/../global.inc.php';
// Add security from Chamilo
api_protect_course_script();
api_block_anonymous_users();
$courseInfo = api_get_course_info();
if (!isset($_FILES['audio_blob'], $_REQUEST['audio_dir'])) {
api_not_allowed();
}
$file = $_FILES['audio_blob'];
$audioDir = Security::remove_XSS($_REQUEST['audio_dir']);
$userId = api_get_user_id();
if (empty($userId)) {
api_not_allowed();
}
$audioDir = Security::remove_XSS($audioDir);
$dirBaseDocuments = api_get_path(SYS_COURSE_PATH).$courseInfo['path'].'/document';
$saveDir = $dirBaseDocuments.$audioDir;
if (!is_dir($saveDir)) {
mkdir($saveDir, api_get_permissions_for_new_directories(), true);
}
$file['file'] = $file;
$result = DocumentManager::upload_document(
$file,
$audioDir,
$file['name'],
null,
0,
'overwrite',
false,
false
);
if (!empty($result) && is_array($result)) {
$newDocId = $result['id'];
$courseId = $result['c_id'];
/** @var learnpath $lp */
$lp = Session::read('oLP');
$lpItemId = isset($_REQUEST['lp_item_id']) && !empty($_REQUEST['lp_item_id']) ? $_REQUEST['lp_item_id'] : null;
if (!empty($lp) && empty($lpItemId)) {
$lp->set_modified_on();
$lpItem = new learnpathItem($lpItemId);
$lpItem->add_audio_from_documents($newDocId);
}
$data = DocumentManager::get_document_data_by_id($newDocId, $courseInfo['code']);
Display::addFlash(
Display::return_message(get_lang('DocumentCreated'), 'success')
);
echo $data['document_url'];
exit;
}