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,
'overwrite',
false,
in_array($tool, ['document', 'exercise'])
in_array($tool, ['document', 'exercise']),
'file',
true,
true
);
$error = empty($uploadedDocument) || !is_array($uploadedDocument);

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

Loading…
Cancel
Save