Untitled
unknown
plain_text
2 years ago
1.2 kB
8
Indexable
/**
* Custom filter handler for filtering by file name.
*
* @ViewsFilter("custom_filter_handler")
*/
class CustomFilterHandler extends StringFilter {
/**
* {@inheritdoc}
*/
public function query() {
$this->ensureMyTable();
// First, join the media__field_media_document table.
$this->query->addRelationship(
'media__field_media_document',
'field_media_document_target_id',
[
'table' => 'file_managed',
'field' => 'fid',
'left_table' => 'node__field_attachments', // Adjust this if needed.
'left_field' => 'field_attachments_target_id', // Adjust this if needed.
]
);
// Then, join the file_managed table.
$this->query->addRelationship(
'file_managed',
'fid',
[
'table' => 'media__field_media_document',
'field' => 'field_media_document_target_id',
]
);
if (!empty($this->value)) {
$escaped_value = Database::getConnection()->escapeLike($this->value);
$this->query->addWhere(0, "file_managed.filename LIKE :file_name", [':file_name' => '%' . $escaped_value . '%']);
}
}
}
Editor is loading...