81 lines
1.9 KiB
PHP
81 lines
1.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This node represents a list of notifications.
|
|
*
|
|
* It provides no additional functionality, but you must implement this
|
|
* interface to allow the Notifications plugin to mark the collection
|
|
* as a notifications collection.
|
|
*
|
|
* This collection should only return Sabre_CalDAV_Notifications_INode nodes as
|
|
* its children.
|
|
*
|
|
* @package Sabre
|
|
* @copyright Copyright (C) 2007-2012 Rooftop Solutions. All rights reserved.
|
|
* @author Evert Pot (http://www.rooftopsolutions.nl/)
|
|
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
|
|
*/
|
|
class Sabre_CalDAV_Notifications_Collection extends Sabre_DAV_Collection implements Sabre_CalDAV_Notifications_ICollection {
|
|
|
|
/**
|
|
* The notification backend
|
|
*
|
|
* @var Sabre_CalDAV_Backend_NotificationSupport
|
|
*/
|
|
protected $caldavBackend;
|
|
|
|
/**
|
|
* Principal uri
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $principalUri;
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @param Sabre_CalDAV_Backend_NotificationSupport $caldavBackend
|
|
* @param string $principalUri
|
|
*/
|
|
public function __construct(Sabre_CalDAV_Backend_NotificationSupport $caldavBackend, $principalUri) {
|
|
|
|
$this->caldavBackend = $caldavBackend;
|
|
$this->principalUri = $principalUri;
|
|
|
|
}
|
|
|
|
/**
|
|
* Returns all notifications for a principal
|
|
*
|
|
* @return array
|
|
*/
|
|
public function getChildren() {
|
|
|
|
$children = array();
|
|
$notifications = $this->caldavBackend->getNotificationsForPrincipal($this->principalUri);
|
|
|
|
foreach($notifications as $notification) {
|
|
|
|
$children[] = new Sabre_CalDAV_Notifications_Node(
|
|
$this->caldavBackend,
|
|
$notification
|
|
);
|
|
}
|
|
|
|
return $children;
|
|
|
|
}
|
|
|
|
/**
|
|
* Returns the name of this object
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getName() {
|
|
|
|
return 'notifications';
|
|
|
|
}
|
|
|
|
}
|