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


PHP Conversation::getKV方法代码示例

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


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

示例1: prepare

 /**
  * Initialization.
  *
  * @param array $args Web and URL arguments
  *
  * @return boolean false if id not passed in
  */
 protected function prepare(array $args = array())
 {
     parent::prepare($args);
     $convId = $this->int('id');
     $this->conv = Conversation::getKV('id', $convId);
     if (!$this->conv instanceof Conversation) {
         throw new ClientException('Could not find specified conversation');
     }
     return true;
 }
开发者ID:phpsource,项目名称:gnu-social,代码行数:17,代码来源:conversation.php

示例2: prepare

 protected function prepare(array $args = array())
 {
     parent::prepare($args);
     $convId = $this->trimmed('id');
     if (empty($convId)) {
         // TRANS: Client exception thrown when no conversation ID is given.
         throw new ClientException(_('No conversation ID.'));
     }
     $this->conversation = Conversation::getKV('id', $convId);
     if (empty($this->conversation)) {
         // TRANS: Client exception thrown when referring to a non-existing conversation ID (%d).
         throw new ClientException(sprintf(_('No conversation with ID %d.'), $convId), 404);
     }
     $stream = new ConversationNoticeStream($convId, $this->scoped);
     $notice = $stream->getNotices(($this->page - 1) * $this->count, $this->count, $this->since_id, $this->max_id);
     $this->notices = $notice->fetchAll();
     return true;
 }
开发者ID:bashrc,项目名称:gnusocial-debian,代码行数:18,代码来源:apiconversation.php

示例3: asActivity

 /**
  * Convert a notice into an activity for export.
  *
  * @param Profile $scoped   The currently logged in/scoped profile
  *
  * @return Activity activity object representing this Notice.
  */
 function asActivity(Profile $scoped = null)
 {
     $act = self::cacheGet(Cache::codeKey('notice:as-activity:' . $this->id));
     if ($act instanceof Activity) {
         return $act;
     }
     $act = new Activity();
     if (Event::handle('StartNoticeAsActivity', array($this, $act, $scoped))) {
         $act->id = $this->uri;
         $act->time = strtotime($this->created);
         try {
             $act->link = $this->getUrl();
         } catch (InvalidUrlException $e) {
             // The notice is probably a share or similar, which don't
             // have a representational URL of their own.
         }
         $act->content = common_xml_safe_str($this->getRendered());
         $profile = $this->getProfile();
         $act->actor = $profile->asActivityObject();
         $act->actor->extra[] = $profile->profileInfo($scoped);
         $act->verb = $this->verb;
         if (!$this->repeat_of) {
             $act->objects[] = $this->asActivityObject();
         }
         // XXX: should this be handled by default processing for object entry?
         // Categories
         $tags = $this->getTags();
         foreach ($tags as $tag) {
             $cat = new AtomCategory();
             $cat->term = $tag;
             $act->categories[] = $cat;
         }
         // Enclosures
         // XXX: use Atom Media and/or File activity objects instead
         $attachments = $this->attachments();
         foreach ($attachments as $attachment) {
             // Include local attachments in Activity
             if (!empty($attachment->filename)) {
                 $act->enclosures[] = $attachment->getEnclosure();
             }
         }
         $ctx = new ActivityContext();
         try {
             $reply = $this->getParent();
             $ctx->replyToID = $reply->getUri();
             $ctx->replyToUrl = $reply->getUrl(true);
             // true for fallback to local URL, less messy
         } catch (NoParentNoticeException $e) {
             // This is not a reply to something
         } catch (NoResultException $e) {
             // Parent notice was probably deleted
         }
         try {
             $ctx->location = Notice_location::locFromStored($this);
         } catch (ServerException $e) {
             $ctx->location = null;
         }
         $conv = null;
         if (!empty($this->conversation)) {
             $conv = Conversation::getKV('id', $this->conversation);
             if ($conv instanceof Conversation) {
                 $ctx->conversation = $conv->uri;
             }
         }
         // This covers the legacy getReplies and getGroups too which get their data
         // from entries stored via Notice::saveNew (which we want to move away from)...
         foreach ($this->getAttentionProfiles() as $target) {
             // User and group profiles which get the attention of this notice
             $ctx->attention[$target->getUri()] = $target->getObjectType();
         }
         switch ($this->scope) {
             case Notice::PUBLIC_SCOPE:
                 $ctx->attention[ActivityContext::ATTN_PUBLIC] = ActivityObject::COLLECTION;
                 break;
             case Notice::FOLLOWER_SCOPE:
                 $surl = common_local_url("subscribers", array('nickname' => $profile->nickname));
                 $ctx->attention[$surl] = ActivityObject::COLLECTION;
                 break;
         }
         $act->context = $ctx;
         $source = $this->getSource();
         if ($source instanceof Notice_source) {
             $act->generator = ActivityObject::fromNoticeSource($source);
         }
         // Source
         $atom_feed = $profile->getAtomFeed();
         if (!empty($atom_feed)) {
             $act->source = new ActivitySource();
             // XXX: we should store the actual feed ID
             $act->source->id = $atom_feed;
             // XXX: we should store the actual feed title
             $act->source->title = $profile->getBestName();
             $act->source->links['alternate'] = $profile->profileurl;
//.........这里部分代码省略.........
开发者ID:a780201,项目名称:gnu-social,代码行数:101,代码来源:Notice.php

示例4: testConversationLink

 public function testConversationLink()
 {
     $orig = $this->_fakeNotice($this->targetUser1);
     $text = "@" . $this->targetUser1->nickname . " reply text " . common_random_hexstr(4);
     $reply = Notice::saveNew($this->author1->id, $text, 'test', array('uri' => null, 'reply_to' => $orig->id));
     $conv = Conversation::getKV('id', $reply->conversation);
     $entry = $reply->asAtomEntry();
     $element = $this->_entryToElement($entry, true);
     $this->assertEquals($conv->getUri(), ActivityUtils::getLink($element, 'ostatus:conversation'));
 }
开发者ID:bashrc,项目名称:gnusocial-debian,代码行数:10,代码来源:ActivityGenerationTests.php

示例5: linkback_save

function linkback_save($source, $target, $response, $notice_or_user)
{
    $dupe = linkback_is_dupe('uri', $response->getEffectiveUrl());
    if (!$dupe) {
        $dupe = linkback_is_dupe('url', $response->getEffectiveUrl());
    }
    if (!$dupe) {
        $dupe = linkback_is_dupe('uri', $source);
    }
    if (!$dupe) {
        $dupe = linkback_is_dupe('url', $source);
    }
    $mf2 = new Mf2\Parser($response->getBody(), $response->getEffectiveUrl());
    $mf2 = $mf2->parse();
    $entry = linkback_find_entry($mf2, $target);
    if (!$entry) {
        preg_match('/<title>([^<]+)', $response->getBody(), $match);
        $entry = array('content' => array('html' => $response->getBody()), 'name' => $match[1] ? htmlspecialchars_decode($match[1]) : $source);
    }
    if (!$entry['url']) {
        $entry['url'] = array($response->getEffectiveUrl());
    }
    if (!$dupe) {
        $dupe = linkback_is_dupe('uri', $entry['url'][0]);
    }
    if (!$dupe) {
        $dupe = linkback_is_dupe('url', $entry['url'][0]);
    }
    $entry['type'] = linkback_entry_type($entry, $mf2, $target);
    list($profile, $author) = linkback_profile($entry, $mf2, $response, $target);
    list($content, $options) = linkback_notice($source, $notice_or_user, $entry, $author, $mf2);
    if ($dupe) {
        $orig = clone $dupe;
        try {
            // Ignore duplicate save error
            try {
                $dupe->saveKnownReplies($options['replies']);
            } catch (ServerException $ex) {
            }
            try {
                $dupe->saveKnownTags($options['tags']);
            } catch (ServerException $ex) {
            }
            try {
                $dupe->saveKnownUrls($options['urls']);
            } catch (ServerException $ex) {
            }
            if ($options['reply_to']) {
                $dupe->reply_to = $options['reply_to'];
            }
            if ($options['repeat_of']) {
                $dupe->repeat_of = $options['repeat_of'];
            }
            if ($dupe->reply_to != $orig->reply_to || $dupe->repeat_of != $orig->repeat_of) {
                $parent = Notice::getKV('id', $dupe->repost_of ? $dupe->repost_of : $dupe->reply_to);
                if ($parent instanceof Notice) {
                    // If we changed the reply_to or repeat_of we might live in a new conversation now
                    $dupe->conversation = $parent->conversation;
                }
            }
            if ($dupe->update($orig)) {
                $saved = $dupe;
            }
            if ($dupe->conversation != $orig->conversation && Conversation::noticeCount($orig->conversation) < 1) {
                // Delete empty conversation
                $emptyConversation = Conversation::getKV('id', $orig->conversation);
                $emptyConversation->delete();
            }
        } catch (Exception $e) {
            common_log(LOG_ERR, "Linkback update of remote message {$source} failed: " . $e->getMessage());
            return false;
        }
        common_log(LOG_INFO, "Linkback updated remote message {$source} as notice id {$saved->id}");
    } else {
        if ($entry['type'] == 'like' || $entry['type'] == 'reply' && $entry['rsvp']) {
            $act = new Activity();
            $act->type = ActivityObject::ACTIVITY;
            $act->time = $options['created'] ? strtotime($options['created']) : time();
            $act->title = $entry["name"] ? $entry["name"][0] : _m("Favor");
            $act->actor = $profile->asActivityObject();
            $act->target = $notice_or_user->asActivityObject();
            $act->objects = array(clone $act->target);
            // TRANS: Message that is the "content" of a favorite (%1$s is the actor's nickname, %2$ is the favorited
            //        notice's nickname and %3$s is the content of the favorited notice.)
            $act->content = sprintf(_('%1$s favorited something by %2$s: %3$s'), $profile->getNickname(), $notice_or_user->getProfile()->getNickname(), $notice_or_user->getRendered());
            if ($entry['rsvp']) {
                $act->content = $options['rendered'];
            }
            $act->verb = ActivityVerb::FAVORITE;
            if (strtolower($entry['rsvp'][0]) == 'yes') {
                $act->verb = 'http://activitystrea.ms/schema/1.0/rsvp-yes';
            } else {
                if (strtolower($entry['rsvp'][0]) == 'no') {
                    $act->verb = 'http://activitystrea.ms/schema/1.0/rsvp-no';
                } else {
                    if (strtolower($entry['rsvp'][0]) == 'maybe') {
                        $act->verb = 'http://activitystrea.ms/schema/1.0/rsvp-maybe';
                    }
                }
            }
//.........这里部分代码省略.........
开发者ID:bashrc,项目名称:gnusocial-debian,代码行数:101,代码来源:util.php


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