You are here

protected function elFinderDrupal::search in elFinder file manager 7.2

Same name and namespace in other branches
  1. 6.2 inc/elfinder.drupal.inc \elFinderDrupal::search()
  2. 7.3 inc/elfinder.drupal.inc \elFinderDrupal::search()

File

inc/elfinder.drupal.inc, line 50
elFinder conenctor class

Class

elFinderDrupal
@file

Code

protected function search($args) {
  $q = trim($args['elfinder_search_q']);
  $mimes = !empty($args['mimes']) && is_array($args['mimes']) ? $args['mimes'] : array();
  $target = !empty($args['target']) ? $args['target'] : null;
  $result = array();
  $errors = array();
  if ($target) {
    if ($volume = $this
      ->volume($target)) {
      $result = $volume
        ->search($q, $mimes, $target);
      $errors = array_merge($errors, $volume
        ->error());
    }
  }
  else {
    foreach ($this->volumes as $volume) {
      $result = array_merge($result, $volume
        ->search($q, $mimes));
      $errors = array_merge($errors, $volume
        ->error());
    }
  }

  // Exclude hidden folders from search results.
  $hidden_folders = variable_get('elfinder_settings_misc_hidden_folders', '');
  if ($hidden_folders) {
    $hidden_folders = explode(',', $hidden_folders);
    foreach ($result as $key => $file) {
      $parts = explode('/', $file['path']);
      if (in_array($parts[1], $hidden_folders)) {
        unset($result[$key]);
      }
    }
  }
  $result = array(
    'files' => $result,
  );
  if ($errors) {
    $result['warning'] = $errors;
  }
  return $result;
}