97 lines
2.2 KiB
PHP
97 lines
2.2 KiB
PHP
<?php
|
|
/**
|
|
* Copyright 2013-2015 Horde LLC (http://www.horde.org/)
|
|
*
|
|
* See the enclosed file LICENSE for license information (BSD). If you
|
|
* did not receive this file, see http://www.horde.org/licenses/bsd.
|
|
*
|
|
* @author Jan Schneider <jan@horde.org>
|
|
* @category Horde
|
|
* @license http://www.horde.org/licenses/bsd BSD
|
|
* @package Dav
|
|
*/
|
|
|
|
use Sabre\DAV;
|
|
|
|
/**
|
|
* A collection (directory) object for the root folder.
|
|
*
|
|
* @author Jan Schneider <jan@horde.org>
|
|
* @category Horde
|
|
* @license http://www.horde.org/licenses/bsd BSD
|
|
* @package Dav
|
|
*/
|
|
class Horde_Dav_RootCollection extends DAV\Collection
|
|
{
|
|
/**
|
|
* A registry object.
|
|
*
|
|
* @var Horde_Registry
|
|
*/
|
|
protected $_registry;
|
|
|
|
/**
|
|
* Additional collections.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $_collections = array();
|
|
|
|
/**
|
|
* The path to a MIME magic database.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $_mimedb;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param Horde_Registry $registry A registry object.
|
|
* @param array $collections Additional collections to add to the
|
|
* root node.
|
|
* @param string $mimedb Location of a MIME magic database.
|
|
*/
|
|
public function __construct(Horde_Registry $registry,
|
|
array $collections,
|
|
$mimedb)
|
|
{
|
|
$this->_registry = $registry;
|
|
$this->_collections = $collections;
|
|
$this->_mimedb = $mimedb;
|
|
}
|
|
|
|
/**
|
|
* Returns the name of the node.
|
|
*
|
|
* This is used to generate the url.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getName()
|
|
{
|
|
return 'root';
|
|
}
|
|
|
|
/**
|
|
* Returns an array with all the child nodes
|
|
*
|
|
* @return DAV\INode[]
|
|
*/
|
|
public function getChildren()
|
|
{
|
|
$apps = $this->_collections;
|
|
foreach ($this->_registry->listApps() as $app) {
|
|
if ($this->_registry->hasMethod('browse', $app)) {
|
|
$apps[] = new Horde_Dav_Collection(
|
|
$app,
|
|
array(),
|
|
$this->_registry,
|
|
$this->_mimedb
|
|
);
|
|
}
|
|
}
|
|
return $apps;
|
|
}
|
|
}
|