Blame view

sources/lib/private/search/provider/file.php 1.86 KB
03e52840d   Kload   Init
1
  <?php
6d9380f96   Cédric Dupont   Update sources OC...
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  /**
   * ownCloud
   *
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
   * License as published by the Free Software Foundation; either
   * version 3 of the License, or any later version.
   *
   * This library is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
   *
   * You should have received a copy of the GNU Affero General Public
   * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
   *
   */
03e52840d   Kload   Init
19

6d9380f96   Cédric Dupont   Update sources OC...
20
21
22
23
24
25
26
  namespace OC\Search\Provider;
  use OC\Files\Filesystem;
  
  /**
   * Provide search results from the 'files' app
   */
  class File extends \OCP\Search\Provider {
03e52840d   Kload   Init
27

6d9380f96   Cédric Dupont   Update sources OC...
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
  	/**
  	 * Search for files and folders matching the given query
  	 * @param string $query
  	 * @return \OCP\Search\Result
  	 */
  	function search($query) {
  		$files = Filesystem::search($query);
  		$results = array();
  		// edit results
  		foreach ($files as $fileData) {
  			// skip versions
  			if (strpos($fileData['path'], '_versions') === 0) {
  				continue;
  			}
  			// skip top-level folder
  			if ($fileData['name'] === 'files' && $fileData['parent'] === -1) {
  				continue;
  			}
  			// create audio result
  			if($fileData['mimepart'] === 'audio'){
  				$result = new \OC\Search\Result\Audio($fileData);
  			}
  			// create image result
  			elseif($fileData['mimepart'] === 'image'){
  				$result = new \OC\Search\Result\Image($fileData);
  			}
  			// create folder result
  			elseif($fileData['mimetype'] === 'httpd/unix-directory'){
  				$result = new \OC\Search\Result\Folder($fileData);
03e52840d   Kload   Init
57
  			}
6d9380f96   Cédric Dupont   Update sources OC...
58
59
60
  			// or create file result
  			else{
  				$result = new \OC\Search\Result\File($fileData);
03e52840d   Kload   Init
61
  			}
6d9380f96   Cédric Dupont   Update sources OC...
62
63
  			// add to results
  			$results[] = $result;
03e52840d   Kload   Init
64
  		}
6d9380f96   Cédric Dupont   Update sources OC...
65
  		// return
03e52840d   Kload   Init
66
67
  		return $results;
  	}
6d9380f96   Cédric Dupont   Update sources OC...
68
  	
03e52840d   Kload   Init
69
  }