Fix exercise record audio BT#18764

pull/4101/head
Julio Montoya 5 years ago
parent 46161a1a30
commit 4ad717d928
  1. 5
      main/inc/ajax/record_audio_rtc.ajax.php
  2. 82
      main/inc/lib/document.lib.php

@ -56,7 +56,10 @@ switch ($type) {
0, 0,
'overwrite', 'overwrite',
false, false,
in_array($tool, ['document', 'exercise']) in_array($tool, ['document', 'exercise']),
'file',
true,
true
); );
$error = empty($uploadedDocument) || !is_array($uploadedDocument); $error = empty($uploadedDocument) || !is_array($uploadedDocument);

@ -600,8 +600,8 @@ class DocumentManager
docs.id = last.ref AND docs.id = last.ref AND
docs.c_id = last.c_id docs.c_id = last.c_id
) )
WHERE WHERE
last.tool = '".TOOL_DOCUMENT."' AND last.tool = '".TOOL_DOCUMENT."' AND
docs.c_id = {$courseInfo['real_id']} AND docs.c_id = {$courseInfo['real_id']} AND
last.c_id = {$courseInfo['real_id']} AND last.c_id = {$courseInfo['real_id']} AND
docs.path LIKE '".Database::escape_string($path.$addedSlash.'%')."' AND docs.path LIKE '".Database::escape_string($path.$addedSlash.'%')."' AND
@ -776,7 +776,7 @@ class DocumentManager
docs.id = last.ref AND docs.id = last.ref AND
docs.c_id = last.c_id docs.c_id = last.c_id
) )
WHERE WHERE
last.tool = '".TOOL_DOCUMENT."' AND last.tool = '".TOOL_DOCUMENT."' AND
last.c_id = {$_course['real_id']} AND last.c_id = {$_course['real_id']} AND
docs.c_id = {$_course['real_id']} AND docs.c_id = {$_course['real_id']} AND
@ -784,7 +784,7 @@ class DocumentManager
$groupCondition AND $groupCondition AND
docs.path NOT LIKE '%shared_folder%' AND docs.path NOT LIKE '%shared_folder%' AND
docs.path NOT LIKE '%_DELETED_%' AND docs.path NOT LIKE '%_DELETED_%' AND
last.visibility <> 2 last.visibility <> 2
$condition_session "; $condition_session ";
} else { } else {
$sql = "SELECT DISTINCT docs.id, path $sql = "SELECT DISTINCT docs.id, path
@ -792,7 +792,7 @@ class DocumentManager
INNER JOIN $TABLE_DOCUMENT AS docs INNER JOIN $TABLE_DOCUMENT AS docs
ON ( ON (
docs.id = last.ref AND docs.id = last.ref AND
docs.c_id = last.c_id docs.c_id = last.c_id
) )
WHERE WHERE
last.tool = '".TOOL_DOCUMENT."' AND last.tool = '".TOOL_DOCUMENT."' AND
@ -802,8 +802,8 @@ class DocumentManager
docs.path NOT LIKE '%_DELETED_%' AND docs.path NOT LIKE '%_DELETED_%' AND
$groupCondition AND $groupCondition AND
last.visibility <> 2 last.visibility <> 2
$show_users_condition $show_users_condition
$condition_session $condition_session
"; ";
} }
$result = Database::query($sql); $result = Database::query($sql);
@ -852,7 +852,7 @@ class DocumentManager
//get visible folders //get visible folders
$sql = "SELECT DISTINCT docs.id, path $sql = "SELECT DISTINCT docs.id, path
FROM FROM
$TABLE_ITEMPROPERTY AS last $TABLE_ITEMPROPERTY AS last
INNER JOIN $TABLE_DOCUMENT AS docs INNER JOIN $TABLE_DOCUMENT AS docs
ON (docs.id = last.ref AND last.c_id = docs.c_id) ON (docs.id = last.ref AND last.c_id = docs.c_id)
WHERE WHERE
@ -878,10 +878,10 @@ class DocumentManager
//get invisible folders //get invisible folders
$sql = "SELECT DISTINCT docs.id, path $sql = "SELECT DISTINCT docs.id, path
FROM $TABLE_ITEMPROPERTY AS last FROM $TABLE_ITEMPROPERTY AS last
INNER JOIN $TABLE_DOCUMENT AS docs INNER JOIN $TABLE_DOCUMENT AS docs
ON (docs.id = last.ref AND last.c_id = docs.c_id) ON (docs.id = last.ref AND last.c_id = docs.c_id)
WHERE WHERE
docs.filetype = 'folder' AND docs.filetype = 'folder' AND
last.tool = '".TOOL_DOCUMENT."' AND last.tool = '".TOOL_DOCUMENT."' AND
$groupCondition AND $groupCondition AND
@ -893,10 +893,10 @@ class DocumentManager
while ($row = Database::fetch_array($result, 'ASSOC')) { while ($row = Database::fetch_array($result, 'ASSOC')) {
//get visible folders in the invisible ones -> they are invisible too //get visible folders in the invisible ones -> they are invisible too
$sql = "SELECT DISTINCT docs.id, path $sql = "SELECT DISTINCT docs.id, path
FROM $TABLE_ITEMPROPERTY AS last FROM $TABLE_ITEMPROPERTY AS last
INNER JOIN $TABLE_DOCUMENT AS docs INNER JOIN $TABLE_DOCUMENT AS docs
ON (docs.id = last.ref AND docs.c_id = last.c_id) ON (docs.id = last.ref AND docs.c_id = last.c_id)
WHERE WHERE
docs.path LIKE '".Database::escape_string($row['path'].'/%')."' AND docs.path LIKE '".Database::escape_string($row['path'].'/%')."' AND
docs.filetype = 'folder' AND docs.filetype = 'folder' AND
last.tool = '".TOOL_DOCUMENT."' AND last.tool = '".TOOL_DOCUMENT."' AND
@ -972,13 +972,13 @@ class DocumentManager
$path = Database::escape_string($file); $path = Database::escape_string($file);
// Check // Check
$sql = "SELECT td.id, readonly, tp.insert_user_id $sql = "SELECT td.id, readonly, tp.insert_user_id
FROM $TABLE_DOCUMENT td FROM $TABLE_DOCUMENT td
INNER JOIN $TABLE_PROPERTY tp INNER JOIN $TABLE_PROPERTY tp
ON (td.c_id = tp.c_id AND tp.ref= td.id) ON (td.c_id = tp.c_id AND tp.ref= td.id)
WHERE WHERE
td.c_id = $course_id AND td.c_id = $course_id AND
tp.c_id = $course_id AND tp.c_id = $course_id AND
td.session_id = $sessionId AND td.session_id = $sessionId AND
(path='".$path."' OR path LIKE BINARY '".$path."/%' ) "; (path='".$path."' OR path LIKE BINARY '".$path."/%' ) ";
// Get all id's of documents that are deleted // Get all id's of documents that are deleted
$what_to_check_result = Database::query($sql); $what_to_check_result = Database::query($sql);
@ -1008,13 +1008,13 @@ class DocumentManager
if (!empty($document_id)) { if (!empty($document_id)) {
$sql = "SELECT a.insert_user_id, b.readonly $sql = "SELECT a.insert_user_id, b.readonly
FROM $TABLE_PROPERTY a FROM $TABLE_PROPERTY a
INNER JOIN $TABLE_DOCUMENT b INNER JOIN $TABLE_DOCUMENT b
ON (a.c_id = b.c_id AND a.ref= b.id) ON (a.c_id = b.c_id AND a.ref= b.id)
WHERE WHERE
a.c_id = $course_id AND a.c_id = $course_id AND
b.c_id = $course_id AND b.c_id = $course_id AND
a.ref = $document_id a.ref = $document_id
LIMIT 1"; LIMIT 1";
$result = Database::query($sql); $result = Database::query($sql);
$doc_details = Database::fetch_array($result, 'ASSOC'); $doc_details = Database::fetch_array($result, 'ASSOC');
@ -1636,7 +1636,7 @@ class DocumentManager
INNER JOIN $propTable ip INNER JOIN $propTable ip
ON (d.id = ip.ref AND d.c_id = ip.c_id) ON (d.id = ip.ref AND d.c_id = ip.c_id)
WHERE WHERE
d.c_id = $course_id AND d.c_id = $course_id AND
ip.c_id = $course_id AND ip.c_id = $course_id AND
ip.tool = '".TOOL_DOCUMENT."' $condition AND ip.tool = '".TOOL_DOCUMENT."' $condition AND
filetype = '$file_type' AND filetype = '$file_type' AND
@ -2158,7 +2158,7 @@ class DocumentManager
{ {
$tbl_document = Database::get_course_table(TABLE_DOCUMENT); $tbl_document = Database::get_course_table(TABLE_DOCUMENT);
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
$sql = "SELECT id FROM $tbl_document $sql = "SELECT id FROM $tbl_document
WHERE c_id = $course_id AND path='/certificates' "; WHERE c_id = $course_id AND path='/certificates' ";
$rs = Database::query($sql); $rs = Database::query($sql);
$row = Database::fetch_array($rs); $row = Database::fetch_array($rs);
@ -2911,7 +2911,8 @@ class DocumentManager
$index_document = false, $index_document = false,
$show_output = false, $show_output = false,
$fileKey = 'file', $fileKey = 'file',
$treat_spaces_as_hyphens = true $treat_spaces_as_hyphens = true,
$recordAudio = false
) { ) {
$course_info = api_get_course_info(); $course_info = api_get_course_info();
$sessionId = api_get_session_id(); $sessionId = api_get_session_id();
@ -2919,6 +2920,11 @@ class DocumentManager
$sys_course_path = api_get_path(SYS_COURSE_PATH); $sys_course_path = api_get_path(SYS_COURSE_PATH);
$base_work_dir = $sys_course_path.$course_dir; $base_work_dir = $sys_course_path.$course_dir;
if ($recordAudio) {
$base_work_dir = $sys_course_path.$course_info['path'].'/exercises';
$path = str_replace('/../exercises/', '/', $path);
}
if (isset($files[$fileKey])) { if (isset($files[$fileKey])) {
$uploadOk = process_uploaded_file($files[$fileKey], $show_output); $uploadOk = process_uploaded_file($files[$fileKey], $show_output);
if ($uploadOk) { if ($uploadOk) {
@ -3195,7 +3201,7 @@ class DocumentManager
features: [\'playpause\'], features: [\'playpause\'],
audioWidth: 30, audioWidth: 30,
audioHeight: 30, audioHeight: 30,
success: function(mediaElement, originalNode, instance) { success: function(mediaElement, originalNode, instance) {
} }
});'; });';
@ -3370,7 +3376,7 @@ class DocumentManager
} }
$sql = "SELECT DISTINCT last.visibility, docs.* $sql = "SELECT DISTINCT last.visibility, docs.*
FROM $tbl_item_prop AS last FROM $tbl_item_prop AS last
INNER JOIN $tbl_doc AS docs INNER JOIN $tbl_doc AS docs
ON (docs.id = last.ref AND docs.c_id = last.c_id) ON (docs.id = last.ref AND docs.c_id = last.c_id)
WHERE WHERE
@ -4910,11 +4916,11 @@ class DocumentManager
} }
$folder_sql = implode("','", $escaped_folders); $folder_sql = implode("','", $escaped_folders);
$sql = "SELECT path, title $sql = "SELECT path, title
FROM $doc_table FROM $doc_table
WHERE WHERE
filetype = 'folder' AND filetype = 'folder' AND
c_id = $course_id AND c_id = $course_id AND
path IN ('".$folder_sql."')"; path IN ('".$folder_sql."')";
$res = Database::query($sql); $res = Database::query($sql);
$folder_titles = []; $folder_titles = [];
@ -6201,8 +6207,8 @@ class DocumentManager
$new_path = Database::escape_string($new_path); $new_path = Database::escape_string($new_path);
$query = "UPDATE $dbTable SET $query = "UPDATE $dbTable SET
path = CONCAT('".$new_path."', SUBSTRING(path, LENGTH('".$old_path."')+1) ) path = CONCAT('".$new_path."', SUBSTRING(path, LENGTH('".$old_path."')+1) )
WHERE WHERE
c_id = $course_id AND c_id = $course_id AND
(path LIKE BINARY '".$old_path."' OR path LIKE BINARY '".$old_path."/%')"; (path LIKE BINARY '".$old_path."' OR path LIKE BINARY '".$old_path."/%')";
Database::query($query); Database::query($query);
break; break;
@ -6280,11 +6286,11 @@ class DocumentManager
$sql = "SELECT SUM(table1.size) FROM ( $sql = "SELECT SUM(table1.size) FROM (
SELECT props.ref, size SELECT props.ref, size
FROM $table_itemproperty AS props FROM $table_itemproperty AS props
INNER JOIN $table_document AS docs INNER JOIN $table_document AS docs
ON (docs.id = props.ref AND docs.c_id = props.c_id) ON (docs.id = props.ref AND docs.c_id = props.c_id)
WHERE WHERE
docs.c_id = $course_id AND docs.c_id = $course_id AND
docs.path LIKE '$path/%' AND docs.path LIKE '$path/%' AND
props.c_id = $course_id AND props.c_id = $course_id AND
props.tool = '$tool_document' AND props.tool = '$tool_document' AND
@ -6405,12 +6411,12 @@ class DocumentManager
} }
if (!empty($courseId) && !empty($path)) { if (!empty($courseId) && !empty($path)) {
$sql = "SELECT id FROM $table $sql = "SELECT id FROM $table
WHERE WHERE
c_id = $courseId AND c_id = $courseId AND
path LIKE BINARY '$path' AND path LIKE BINARY '$path' AND
comment = '$url' AND comment = '$url' AND
filetype = 'link' filetype = 'link'
LIMIT 1"; LIMIT 1";
$result = Database::query($sql); $result = Database::query($sql);
if ($result && Database::num_rows($result)) { if ($result && Database::num_rows($result)) {
@ -6505,10 +6511,10 @@ class DocumentManager
ON ( ON (
docs.c_id = c.id docs.c_id = c.id
) )
WHERE WHERE
last.tool = '".TOOL_DOCUMENT."' AND last.tool = '".TOOL_DOCUMENT."' AND
last.insert_user_id = $userId AND last.insert_user_id = $userId AND
docs.path NOT LIKE '%_DELETED_%' docs.path NOT LIKE '%_DELETED_%'
ORDER BY c.directory, docs.path ORDER BY c.directory, docs.path
"; ";
$result = Database::query($sql); $result = Database::query($sql);

Loading…
Cancel
Save