You are here

public function FileAutocompleteController::autocompleteFilename in Ubercart 8.4

Returns autocompletion content for file name textfield.

Parameters

\Symfony\Component\HttpFoundation\Request $request: The request of the page.

Return value

\Symfony\Component\HttpFoundation\JsonResponse A JSON response.

1 string reference to 'FileAutocompleteController::autocompleteFilename'
uc_file.routing.yml in uc_file/uc_file.routing.yml
uc_file/uc_file.routing.yml

File

uc_file/src/Controller/FileAutocompleteController.php, line 23

Class

FileAutocompleteController
Utility functions for autocompleting file download filenames.

Namespace

Drupal\uc_file\Controller

Code

public function autocompleteFilename(Request $request) {
  $matches = [];

  // Get the typed string from the URL, if it exists.
  if ($input = $request->query
    ->get('q')) {
    $typed_string = Tags::explode($input);
    $typed_string = mb_strtolower(array_pop($typed_string));
    $filenames = \Drupal::database()
      ->select('uc_files', 'f')
      ->fields('f', [
      'filename',
    ])
      ->condition('filename', '%' . \Drupal::database()
      ->escapeLike($typed_string) . '%', 'LIKE')
      ->execute();
    while ($name = $filenames
      ->fetchField()) {
      $matches[] = [
        'value' => $name,
      ];
    }
  }
  return new JsonResponse($matches);
}