当前位置: 首页>>代码示例>>PHP>>正文


PHP INode::getNotificationType方法代码示例

本文整理汇总了PHP中Sabre\DAV\INode::getNotificationType方法的典型用法代码示例。如果您正苦于以下问题:PHP INode::getNotificationType方法的具体用法?PHP INode::getNotificationType怎么用?PHP INode::getNotificationType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Sabre\DAV\INode的用法示例。


在下文中一共展示了INode::getNotificationType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: beforeGetProperties

 /**
  * beforeGetProperties
  *
  * This method handler is invoked before any after properties for a
  * resource are fetched. This allows us to add in any CalDAV specific
  * properties.
  *
  * @param string $path
  * @param DAV\INode $node
  * @param array $requestedProperties
  * @param array $returnedProperties
  * @return void
  */
 public function beforeGetProperties($path, DAV\INode $node, &$requestedProperties, &$returnedProperties)
 {
     if ($node instanceof DAVACL\IPrincipal) {
         // calendar-home-set property
         $calHome = '{' . self::NS_CALDAV . '}calendar-home-set';
         if (in_array($calHome, $requestedProperties)) {
             $principalId = $node->getName();
             $calendarHomePath = self::CALENDAR_ROOT . '/' . $principalId . '/';
             unset($requestedProperties[array_search($calHome, $requestedProperties)]);
             $returnedProperties[200][$calHome] = new DAV\Property\Href($calendarHomePath);
         }
         // schedule-outbox-URL property
         $scheduleProp = '{' . self::NS_CALDAV . '}schedule-outbox-URL';
         if (in_array($scheduleProp, $requestedProperties)) {
             $principalId = $node->getName();
             $outboxPath = self::CALENDAR_ROOT . '/' . $principalId . '/outbox';
             unset($requestedProperties[array_search($scheduleProp, $requestedProperties)]);
             $returnedProperties[200][$scheduleProp] = new DAV\Property\Href($outboxPath);
         }
         // calendar-user-address-set property
         $calProp = '{' . self::NS_CALDAV . '}calendar-user-address-set';
         if (in_array($calProp, $requestedProperties)) {
             $addresses = $node->getAlternateUriSet();
             $addresses[] = $this->server->getBaseUri() . $node->getPrincipalUrl() . '/';
             unset($requestedProperties[array_search($calProp, $requestedProperties)]);
             $returnedProperties[200][$calProp] = new DAV\Property\HrefList($addresses, false);
         }
         // These two properties are shortcuts for ical to easily find
         // other principals this principal has access to.
         $propRead = '{' . self::NS_CALENDARSERVER . '}calendar-proxy-read-for';
         $propWrite = '{' . self::NS_CALENDARSERVER . '}calendar-proxy-write-for';
         if (in_array($propRead, $requestedProperties) || in_array($propWrite, $requestedProperties)) {
             $aclPlugin = $this->server->getPlugin('acl');
             $membership = $aclPlugin->getPrincipalMembership($path);
             $readList = array();
             $writeList = array();
             foreach ($membership as $group) {
                 $groupNode = $this->server->tree->getNodeForPath($group);
                 // If the node is either ap proxy-read or proxy-write
                 // group, we grab the parent principal and add it to the
                 // list.
                 if ($groupNode instanceof Principal\IProxyRead) {
                     list($readList[]) = DAV\URLUtil::splitPath($group);
                 }
                 if ($groupNode instanceof Principal\IProxyWrite) {
                     list($writeList[]) = DAV\URLUtil::splitPath($group);
                 }
             }
             if (in_array($propRead, $requestedProperties)) {
                 unset($requestedProperties[$propRead]);
                 $returnedProperties[200][$propRead] = new DAV\Property\HrefList($readList);
             }
             if (in_array($propWrite, $requestedProperties)) {
                 unset($requestedProperties[$propWrite]);
                 $returnedProperties[200][$propWrite] = new DAV\Property\HrefList($writeList);
             }
         }
         // notification-URL property
         $notificationUrl = '{' . self::NS_CALENDARSERVER . '}notification-URL';
         if (($index = array_search($notificationUrl, $requestedProperties)) !== false) {
             $principalId = $node->getName();
             $calendarHomePath = 'calendars/' . $principalId . '/notifications/';
             unset($requestedProperties[$index]);
             $returnedProperties[200][$notificationUrl] = new DAV\Property\Href($calendarHomePath);
         }
     }
     // instanceof IPrincipal
     if ($node instanceof Notifications\INode) {
         $propertyName = '{' . self::NS_CALENDARSERVER . '}notificationtype';
         if (($index = array_search($propertyName, $requestedProperties)) !== false) {
             $returnedProperties[200][$propertyName] = $node->getNotificationType();
             unset($requestedProperties[$index]);
         }
     }
     // instanceof Notifications_INode
     if ($node instanceof ICalendarObject) {
         // The calendar-data property is not supposed to be a 'real'
         // property, but in large chunks of the spec it does act as such.
         // Therefore we simply expose it as a property.
         $calDataProp = '{' . Plugin::NS_CALDAV . '}calendar-data';
         if (in_array($calDataProp, $requestedProperties)) {
             unset($requestedProperties[$calDataProp]);
             $val = $node->get();
             if (is_resource($val)) {
                 $val = stream_get_contents($val);
             }
             // Taking out \r to not screw up the xml output
//.........这里部分代码省略.........
开发者ID:noble82,项目名称:proyectos-ULS,代码行数:101,代码来源:Plugin.php


注:本文中的Sabre\DAV\INode::getNotificationType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。