MDL-75108 block_html: Search tries to index directory entries

Search attach_files function should only attach indexable files,
not directory entries which are 0 bytes and cannot be indexed.
This commit is contained in:
sam marshall 2022-07-01 12:35:29 +01:00
parent 9ccda59e00
commit f83782af74
2 changed files with 4 additions and 5 deletions

View File

@ -83,7 +83,8 @@ class content extends \core_search\base_block {
$context = \context::instance_by_id($document->get('contextid'));
$files = $fs->get_area_files($context->id, 'block_html', 'content');
$files = $fs->get_area_files($context->id, 'block_html', 'content',
false, 'itemid, filepath, filename', false);
foreach ($files as $file) {
$document->add_stored_file($file);
}

View File

@ -137,11 +137,9 @@ class search_content_test extends \advanced_testcase {
$this->assertCount(0, $doc->get_files());
$area->attach_files($doc);
$files = $doc->get_files();
$this->assertCount(2, $files);
// The directory entry should NOT be provided for indexing.
$this->assertCount(1, $files);
foreach ($files as $file) {
if ($file->is_directory()) {
continue;
}
$this->assertEquals('file.txt', $file->get_filename());
$this->assertEquals('File content', $file->get_content());
}