コード例 #1
0
ファイル: CommentNode.php プロジェクト: GitHubUser4234/core
 /**
  * Returns a list of properties for this nodes.
  *
  * The properties list is a list of propertynames the client requested,
  * encoded in clark-notation {xmlnamespace}tagname
  *
  * If the array is empty, it means 'all properties' were requested.
  *
  * Note that it's fine to liberally give properties back, instead of
  * conforming to the list of requested properties.
  * The Server class will filter out the extra.
  *
  * @param array $properties
  * @return array
  */
 function getProperties($properties)
 {
     $properties = array_keys($this->properties);
     $result = [];
     foreach ($properties as $property) {
         $getter = $this->properties[$property];
         if (method_exists($this->comment, $getter)) {
             $result[$property] = $this->comment->{$getter}();
         }
     }
     if ($this->comment->getActorType() === 'users') {
         $user = $this->userManager->get($this->comment->getActorId());
         $displayName = is_null($user) ? null : $user->getDisplayName();
         $result[self::PROPERTY_NAME_ACTOR_DISPLAYNAME] = $displayName;
     }
     $unread = null;
     $user = $this->userSession->getUser();
     if (!is_null($user)) {
         $readUntil = $this->commentsManager->getReadMark($this->comment->getObjectType(), $this->comment->getObjectId(), $user);
         if (is_null($readUntil)) {
             $unread = 'true';
         } else {
             $unread = $this->comment->getCreationDateTime() > $readUntil;
             // re-format for output
             $unread = $unread ? 'true' : 'false';
         }
     }
     $result[self::PROPERTY_NAME_UNREAD] = $unread;
     return $result;
 }
コード例 #2
0
ファイル: commentnode.php プロジェクト: Pookay/core
 /**
  * Returns a list of properties for this nodes.
  *
  * The properties list is a list of propertynames the client requested,
  * encoded in clark-notation {xmlnamespace}tagname
  *
  * If the array is empty, it means 'all properties' were requested.
  *
  * Note that it's fine to liberally give properties back, instead of
  * conforming to the list of requested properties.
  * The Server class will filter out the extra.
  *
  * @param array $properties
  * @return array
  */
 function getProperties($properties)
 {
     $properties = array_keys($this->properties);
     $result = [];
     foreach ($properties as $property) {
         $getter = $this->properties[$property];
         if (method_exists($this->comment, $getter)) {
             $result[$property] = $this->comment->{$getter}();
         }
     }
     if ($this->comment->getActorType() === 'users') {
         $user = $this->userManager->get($this->comment->getActorId());
         $displayName = is_null($user) ? null : $user->getDisplayName();
         $result['{' . self::NS_OWNCLOUD . '}actorDisplayName'] = $displayName;
     }
     return $result;
 }
コード例 #3
0
ファイル: manager.php プロジェクト: farukuzun/core-1
 /**
  * updates a Comment data row
  *
  * @param IComment $comment
  * @return bool
  * @throws NotFoundException
  */
 protected function update(IComment $comment)
 {
     $qb = $this->dbConn->getQueryBuilder();
     $affectedRows = $qb->update('comments')->set('parent_id', $qb->createNamedParameter($comment->getParentId()))->set('topmost_parent_id', $qb->createNamedParameter($comment->getTopmostParentId()))->set('children_count', $qb->createNamedParameter($comment->getChildrenCount()))->set('actor_type', $qb->createNamedParameter($comment->getActorType()))->set('actor_id', $qb->createNamedParameter($comment->getActorId()))->set('message', $qb->createNamedParameter($comment->getMessage()))->set('verb', $qb->createNamedParameter($comment->getVerb()))->set('creation_timestamp', $qb->createNamedParameter($comment->getCreationDateTime(), 'datetime'))->set('latest_child_timestamp', $qb->createNamedParameter($comment->getLatestChildDateTime(), 'datetime'))->set('object_type', $qb->createNamedParameter($comment->getObjectType()))->set('object_id', $qb->createNamedParameter($comment->getObjectId()))->where($qb->expr()->eq('id', $qb->createParameter('id')))->setParameter('id', $comment->getId())->execute();
     if ($affectedRows === 0) {
         throw new NotFoundException('Comment to update does ceased to exist');
     }
     $this->dispatcher->dispatch(CommentsEvent::EVENT_UPDATE, new CommentsEvent(CommentsEvent::EVENT_UPDATE, $comment));
     return $affectedRows > 0;
 }