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