protected function ExtractedText::isFileIndexable in Search API attachments 8
Same name and namespace in other branches
- 9.0.x src/Plugin/Field/FieldFormatter/ExtractedText.php \Drupal\search_api_attachments\Plugin\Field\FieldFormatter\ExtractedText::isFileIndexable()
Check if the file is allowed to be indexed.
Parameters
object $file: A file object.
Return value
bool TRUE or FALSE
1 call to ExtractedText::isFileIndexable()
- ExtractedText::extractFileContents in src/
Plugin/ Field/ FieldFormatter/ ExtractedText.php - Extracts content of given file.
File
- src/
Plugin/ Field/ FieldFormatter/ ExtractedText.php, line 204
Class
- ExtractedText
- File formatter displaying text extracted form attachment document.
Namespace
Drupal\search_api_attachments\Plugin\Field\FieldFormatterCode
protected function isFileIndexable($file) {
// This method is a copy of
// Drupal\search_api_attachments\Plugin\search_api\processor\FilesExtractor::isFileIndexable()
// and differs mostly in the signature. Unfortunately it can't be used here
// as it requires second argument of type
// \Drupal\search_api\Item\ItemInterface.
// File should exist in disc.
$indexable = file_exists($file
->getFileUri());
if (!$indexable) {
return FALSE;
}
// File should have a mime type that is allowed.
$excluded_extensions_array = explode(' ', $this
->getSetting('excluded_extensions'));
$all_excluded_mimes = $this->extractFileValidator
->getExcludedMimes($excluded_extensions_array);
$indexable = $indexable && !in_array($file
->getMimeType(), $all_excluded_mimes);
if (!$indexable) {
return FALSE;
}
// File permanent.
$indexable = $indexable && $file
->isPermanent();
if (!$indexable) {
return FALSE;
}
// File shouldn't exceed configured file size.
$max_filesize = $this
->getSetting('max_filesize');
$indexable = $indexable && $this->extractFileValidator
->isFileSizeAllowed($file, $max_filesize);
if (!$indexable) {
return FALSE;
}
// Whether a private file can be indexed or not.
$excluded_private = $this
->getSetting('excluded_private');
$indexable = $indexable && $this->extractFileValidator
->isPrivateFileAllowed($file, $excluded_private);
if (!$indexable) {
return FALSE;
}
$result = $this->moduleHandler
->invokeAll('search_api_attachments_indexable', [
$file,
]);
$indexable = !in_array(FALSE, $result, TRUE);
return $indexable;
}