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.
76 lines
1.9 KiB
76 lines
1.9 KiB
<?php
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
use ChamiloSession as Session;
|
|
|
|
require_once '../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();
|
|
}
|
|
|
|
$audioFileName = Security::remove_XSS($file['name']);
|
|
$audioFileName = Database::escape_string($audioFileName);
|
|
$audioFileName = api_replace_dangerous_char($audioFileName);
|
|
$audioFileName = disable_dangerous_file($audioFileName);
|
|
$audioDir = Security::remove_XSS($audioDir);
|
|
|
|
$dirBaseDocuments = api_get_path(SYS_COURSE_PATH) . $courseInfo['path'] . '/document';
|
|
$saveDir = $dirBaseDocuments . $audioDir;
|
|
|
|
if (!is_dir($saveDir)) {
|
|
DocumentManager::createDefaultAudioFolder($courseInfo);
|
|
}
|
|
|
|
$documentPath = $saveDir . '/' . $audioFileName;
|
|
|
|
$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;
|
|
}
|
|
|