Untitled

mail@pastecode.io avatarunknown
plain_text
a month ago
816 B
2
Indexable
Never
/**
 * Custom filter handler for filtering by file name.
 *
 * @ViewsFilter("custom_filter_handler")
 */
class CustomFilterHandler extends StringFilter {

  /**
   * {@inheritdoc}
   */
  public function query() {
    $this->ensureMyTable();
    $this->query->addRelationship('node__field_attachments', 'field_attachments_target_id', ['table' => 'media__field_media_document', 'field' => 'entity_id']);
    $this->query->addRelationship('media__field_media_document', 'field_media_document_target_id', ['table' => 'file_managed', 'field' => 'fid']);
    
    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 . '%']);
    }
  }
}