%PDF- %PDF-
| Direktori : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/DAV/FS/ |
| Current File : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/DAV/FS/SharedDirectory.php |
<?php
/*
* Copyright 2004-2014, AfterLogic Corp.
* Licensed under AGPLv3 license or AfterLogic license
* if commercial version of the product was purchased.
* See the LICENSE file for a full license statement.
*/
namespace afterlogic\DAV\FS;
class SharedDirectory extends Directory {
protected $linkPath;
protected $sharedItem;
protected $isLink;
/**
* Constructor
*
* @param string $path
*/
public function __construct($path, $sharedItem, $isLink = false) {
parent::__construct($sharedItem->getPath());
$this->linkPath = $path;
$this->sharedItem = $sharedItem;
$this->isLink = $isLink;
}
public function getRootPath($iType = \EFileStorageType::Personal) {
return $this->path;
}
public function getPath() {
return $this->linkPath;
}
public function getName() {
if ($this->isLink)
{
return $this->sharedItem->getName();
}
else
{
list(, $name) = \Sabre\DAV\URLUtil::splitPath($this->linkPath);
return $name;
}
}
public function createDirectory($name) {
throw new DAV\Exception\Forbidden('Permission denied');
}
public function createFile($name, $data = null) {
throw new DAV\Exception\Forbidden('Permission denied');
}
public function getChild($name) {
$this->initPath();
$path = $this->path . '/' . trim($name, '/');
if (!file_exists($path)) throw new \Sabre\DAV\Exception\NotFound('File with name ' . $path . ' could not be located');
if (is_dir($path)) {
return new SharedDirectory($path, $this->sharedItem);
} else {
return new SharedFile($path, $this->sharedItem);
}
}
public function getChildren() {
$this->initPath();
$nodes = array();
if(!file_exists($this->path))
{
mkdir($this->path);
}
foreach(scandir($this->path) as $node)
if($node!='.' && $node!='..' && $node!== '.sabredav' && $node!== API_HELPDESK_PUBLIC_NAME)
{
$nodes[] = $this->getChild($node);
}
return $nodes;
}
public function childExists($name) {
$this->initPath();
return parent::childExists($name);
}
public function delete() {
$this->initPath();
parent::delete();
$this->updateQuota();
}
public function Search($pattern, $path = null) {
$this->initPath();
$aResult = array();
if ($path === null)
{
$path = $this->path;
}
$aItems = \api_Utils::SearchFiles($path, $pattern);
if ($aItems)
{
foreach ($aItems as $sItem)
{
if (is_dir($sItem))
{
$aResult[] = new Directory($sItem);
}
else
{
$aResult[] = new File($sItem);
}
}
}
return $aResult;
}
}