nextcloud/lib/search/provider/file.php

42 lines
982 B
PHP
Raw Normal View History

2011-07-29 23:03:53 +04:00
<?php
class OC_Search_Provider_File extends OC_Search_Provider{
2012-09-07 17:22:01 +04:00
function search($query) {
2012-01-31 19:12:49 +04:00
$files=OC_FileCache::search($query,true);
2011-07-29 23:03:53 +04:00
$results=array();
2012-09-07 17:22:01 +04:00
foreach($files as $fileData) {
$path = $fileData['path'];
$mime = $fileData['mimetype'];
$name = basename($path);
$text = '';
$path = urlencode($path);
2012-09-07 17:22:01 +04:00
if($mime=='httpd/unix-directory') {
$link = OC_Helper::linkTo( 'files', 'index.php', array('dir' => $path));
$type = 'Files';
2011-07-29 23:03:53 +04:00
}else{
$link = OC_Helper::linkTo( 'files', 'download.php', array('file' => $path));
$mimeBase = $fileData['mimepart'];
2012-09-07 17:22:01 +04:00
switch($mimeBase) {
2011-07-31 04:20:34 +04:00
case 'audio':
break;
case 'text':
$type = 'Text';
break;
2011-07-31 04:20:34 +04:00
case 'image':
$type = 'Images';
2011-07-31 04:20:34 +04:00
break;
default:
2012-09-07 17:22:01 +04:00
if($mime=='application/xml') {
$type = 'Text';
}else{
$type = 'Files';
}
2011-07-31 04:20:34 +04:00
}
2011-07-29 23:03:53 +04:00
}
$results[] = new OC_Search_Result($name, $text, $link, $type);
2011-07-29 23:03:53 +04:00
}
return $results;
}
}