mirror of
https://github.com/moodle/moodle.git
synced 2025-03-22 00:20:37 +01:00
MDL-77791 data: Fix file attachment to search doc
This commit is contained in:
parent
b2d0712748
commit
e5c89630af
@ -239,12 +239,30 @@ class entry extends \core_search\base_mod {
|
||||
$cm = $this->get_cm('data', $entry->dataid, $doc->get('courseid'));
|
||||
$context = \context_module::instance($cm->id);
|
||||
|
||||
// Get the files and attach them.
|
||||
$fs = get_file_storage();
|
||||
$files = $fs->get_area_files($context->id, 'mod_data', 'content', $entryid, 'filename', false);
|
||||
foreach ($files as $file) {
|
||||
$doc->add_stored_file($file);
|
||||
// Get all content fields which have files in them.
|
||||
$contentssql = "
|
||||
SELECT con.*
|
||||
FROM {data_content} con
|
||||
JOIN {files} fil
|
||||
ON fil.component = :component
|
||||
AND fil.filearea = :filearea
|
||||
AND fil.itemid = con.id
|
||||
WHERE con.recordid = :recordid
|
||||
";
|
||||
$contents = $DB->get_recordset_sql($contentssql, [
|
||||
'recordid' => $entryid,
|
||||
'component' => 'mod_data',
|
||||
'filearea' => 'content',
|
||||
]);
|
||||
foreach ($contents as $content) {
|
||||
// Get the files and attach them.
|
||||
$fs = get_file_storage();
|
||||
$files = $fs->get_area_files($context->id, 'mod_data', 'content', $content->id, 'filename', false);
|
||||
foreach ($files as $file) {
|
||||
$doc->add_stored_file($file);
|
||||
}
|
||||
}
|
||||
$contents->close();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -923,22 +923,22 @@ class search_test extends \advanced_testcase {
|
||||
|
||||
$data1record1id = $DB->insert_record('data_records', $record);
|
||||
|
||||
$filerecord = array(
|
||||
'contextid' => \context_module::instance($data1->cmid)->id,
|
||||
'component' => 'mod_data',
|
||||
'filearea' => 'content',
|
||||
'itemid' => $data1record1id,
|
||||
'filepath' => '/',
|
||||
'filename' => 'myfile1.txt'
|
||||
);
|
||||
|
||||
$data1record1file = $fs->create_file_from_string($filerecord, 'Some contents 1');
|
||||
|
||||
$record = new \stdClass;
|
||||
$record->fieldid = $data1filefieldid;
|
||||
$record->recordid = $data1record1id;
|
||||
$record->content = 'myfile1.txt';
|
||||
$DB->insert_record('data_content', $record);
|
||||
$data1contentfileid1 = $DB->insert_record('data_content', $record);
|
||||
|
||||
$filerecord = [
|
||||
'contextid' => \context_module::instance($data1->cmid)->id,
|
||||
'component' => 'mod_data',
|
||||
'filearea' => 'content',
|
||||
'itemid' => $data1contentfileid1,
|
||||
'filepath' => '/',
|
||||
'filename' => 'myfile1.txt'
|
||||
];
|
||||
|
||||
$data1record1file = $fs->create_file_from_string($filerecord, 'Some contents 1');
|
||||
|
||||
$record = new \stdClass;
|
||||
$record->fieldid = $data1textfieldid;
|
||||
@ -960,15 +960,15 @@ class search_test extends \advanced_testcase {
|
||||
$record->groupid = 0;
|
||||
$data1record2id = $DB->insert_record('data_records', $record);
|
||||
|
||||
$filerecord['itemid'] = $data1record2id;
|
||||
$filerecord['filename'] = 'myfile2.txt';
|
||||
$data1record2file = $fs->create_file_from_string($filerecord, 'Some contents 2');
|
||||
|
||||
$record = new \stdClass;
|
||||
$record->fieldid = $data1filefieldid;
|
||||
$record->recordid = $data1record2id;
|
||||
$record->content = 'myfile2.txt';
|
||||
$DB->insert_record('data_content', $record);
|
||||
$data1contentfileid2 = $DB->insert_record('data_content', $record);
|
||||
|
||||
$filerecord['itemid'] = $data1contentfileid2;
|
||||
$filerecord['filename'] = 'myfile2.txt';
|
||||
$data1record2file = $fs->create_file_from_string($filerecord, 'Some contents 2');
|
||||
|
||||
$record = new \stdClass;
|
||||
$record->fieldid = $data1textfieldid;
|
||||
|
Loading…
x
Reference in New Issue
Block a user