2011-07-29 23:03:53 +04:00
|
|
|
<?php
|
|
|
|
|
2012-04-14 13:29:44 +04:00
|
|
|
class OC_Search_Provider_File extends OC_Search_Provider{
|
2012-09-07 17:22:01 +04:00
|
|
|
function search($query) {
|
2012-10-27 01:05:02 +04:00
|
|
|
$files=\OC\Files\Filesystem::search($query, true);
|
2011-07-29 23:03:53 +04:00
|
|
|
$results=array();
|
2012-10-22 22:52:51 +04:00
|
|
|
$l=OC_L10N::get('lib');
|
2012-09-07 17:22:01 +04:00
|
|
|
foreach($files as $fileData) {
|
2012-09-28 23:14:59 +04:00
|
|
|
$path = $fileData['path'];
|
|
|
|
$mime = $fileData['mimetype'];
|
|
|
|
|
|
|
|
$name = basename($path);
|
2013-08-01 00:24:52 +04:00
|
|
|
$container = dirname($path);
|
2012-09-28 23:14:59 +04:00
|
|
|
$text = '';
|
2012-10-01 21:11:26 +04:00
|
|
|
$skip = false;
|
2012-09-07 17:22:01 +04:00
|
|
|
if($mime=='httpd/unix-directory') {
|
2012-09-28 23:14:59 +04:00
|
|
|
$link = OC_Helper::linkTo( 'files', 'index.php', array('dir' => $path));
|
2012-10-22 22:52:51 +04:00
|
|
|
$type = (string)$l->t('Files');
|
2011-07-29 23:03:53 +04:00
|
|
|
}else{
|
2012-09-29 00:19:37 +04:00
|
|
|
$link = OC_Helper::linkToRoute( 'download', array('file' => $path));
|
2012-09-28 23:14:59 +04:00
|
|
|
$mimeBase = $fileData['mimepart'];
|
2012-09-07 17:22:01 +04:00
|
|
|
switch($mimeBase) {
|
2011-07-31 04:20:34 +04:00
|
|
|
case 'audio':
|
2012-10-01 21:11:26 +04:00
|
|
|
$skip = true;
|
2011-07-31 04:20:34 +04:00
|
|
|
break;
|
2011-08-03 02:30:21 +04:00
|
|
|
case 'text':
|
2012-10-22 22:52:51 +04:00
|
|
|
$type = (string)$l->t('Text');
|
2011-08-03 02:30:21 +04:00
|
|
|
break;
|
2011-07-31 04:20:34 +04:00
|
|
|
case 'image':
|
2012-10-22 22:52:51 +04:00
|
|
|
$type = (string)$l->t('Images');
|
2011-07-31 04:20:34 +04:00
|
|
|
break;
|
|
|
|
default:
|
2012-09-07 17:22:01 +04:00
|
|
|
if($mime=='application/xml') {
|
2012-10-22 22:52:51 +04:00
|
|
|
$type = (string)$l->t('Text');
|
2011-08-03 02:30:21 +04:00
|
|
|
}else{
|
2012-10-22 22:52:51 +04:00
|
|
|
$type = (string)$l->t('Files');
|
2011-08-03 02:30:21 +04:00
|
|
|
}
|
2011-07-31 04:20:34 +04:00
|
|
|
}
|
2011-07-29 23:03:53 +04:00
|
|
|
}
|
2012-10-01 21:11:26 +04:00
|
|
|
if(!$skip) {
|
2013-08-01 00:24:52 +04:00
|
|
|
$results[] = new OC_Search_Result($name, $text, $link, $type, $container);
|
2012-10-01 21:11:26 +04:00
|
|
|
}
|
2011-07-29 23:03:53 +04:00
|
|
|
}
|
|
|
|
return $results;
|
|
|
|
}
|
|
|
|
}
|