protected function search($args)
{
$q = trim($args['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());
}
}
$result = array('files' => $result);
if ($errors) {
$result['warning'] = $errors;
}
return $result;
}