Files
server/usr/share/psa-pear/pear/php/Horde/Dav/RootCollection.php
2026-01-07 20:52:11 +01:00

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;
}
}