parent
2bfad189e7
commit
2ff8d7a8bc
@ -0,0 +1,45 @@ |
||||
<?php |
||||
global $FAKEDIRS; |
||||
$FAKEDIRS=array(); |
||||
|
||||
class fakeDirStream{ |
||||
private $name; |
||||
private $data; |
||||
private $index; |
||||
|
||||
public function dir_opendir($path,$options){ |
||||
global $FAKEDIRS; |
||||
$url=parse_url($path); |
||||
$this->name=substr($path,strlen('fakedir://')); |
||||
$this->index=0; |
||||
if(isset($FAKEDIRS[$this->name])){ |
||||
$this->data=$FAKEDIRS[$this->name]; |
||||
}else{ |
||||
$this->data=array(); |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
public function dir_readdir(){ |
||||
if($this->index>=count($this->data)){ |
||||
return false; |
||||
} |
||||
$filename=$this->data[$this->index]; |
||||
$this->index++; |
||||
return $filename; |
||||
} |
||||
|
||||
public function dir_closedir() { |
||||
$this->data=false; |
||||
$this->name=''; |
||||
return true; |
||||
} |
||||
|
||||
public function dir_rewinddir() { |
||||
$this->index=0; |
||||
return true; |
||||
} |
||||
} |
||||
|
||||
stream_wrapper_register("fakedir", "fakeDirStream"); |
||||
|
@ -0,0 +1,16 @@ |
||||
<?php |
||||
/** |
||||
* provides search functionalty |
||||
*/ |
||||
abstract class OC_Search_Provider{ |
||||
public function __construct(){ |
||||
OC_SEARCH::registerProvider($this); |
||||
} |
||||
|
||||
/** |
||||
* search for $query |
||||
* @param string $query |
||||
* @return array An array of OC_Search_Result's |
||||
*/ |
||||
abstract function search($query); |
||||
} |
@ -0,0 +1,16 @@ |
||||
<?php |
||||
|
||||
class OC_Search_Provider_File extends OC_Search_Provider{ |
||||
function search($query){ |
||||
$files=OC_FILESYSTEM::search($query); |
||||
$results=array(); |
||||
foreach($files as $file){ |
||||
if(OC_FILESYSTEM::is_dir($file)){ |
||||
$results[]=new OC_Search_Result(basename($file),$file,OC_HELPER::linkTo( 'files', 'index.php?dir='.$file ),'Files'); |
||||
}else{ |
||||
$results[]=new OC_Search_Result(basename($file),$file,OC_HELPER::linkTo( 'files', 'download.php?file='.$file ),'Files'); |
||||
} |
||||
} |
||||
return $results; |
||||
} |
||||
} |
@ -0,0 +1,37 @@ |
||||
<?php |
||||
/** |
||||
* a result of a search |
||||
*/ |
||||
class OC_Search_Result{ |
||||
private $name; |
||||
private $text; |
||||
private $link; |
||||
private $type; |
||||
|
||||
/** |
||||
* create a new search result |
||||
* @param string $name short name for the result |
||||
* @param string $text some more information about the result |
||||
* @param string $link link for the result |
||||
* @param string $type the type of result as human readable string ('File', 'Music', etc) |
||||
*/ |
||||
public function __construct($name,$text,$link,$type){ |
||||
$this->name=$name; |
||||
$this->text=$text; |
||||
$this->link=$link; |
||||
$this->type=$type; |
||||
} |
||||
|
||||
public function __get($name){ |
||||
switch($name){ |
||||
case 'name': |
||||
return $this->name; |
||||
case 'text': |
||||
return $this->text; |
||||
case 'link': |
||||
return $this->link; |
||||
case 'type': |
||||
return $this->type; |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue