]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
- Set the root of a new local conversation to a new conversation.id
authorZach Copley <zach@status.net>
Wed, 17 Feb 2010 09:12:13 +0000 (01:12 -0800)
committerZach Copley <zach@status.net>
Wed, 17 Feb 2010 09:12:13 +0000 (01:12 -0800)
- Output conversation URIs from conversation.uri

classes/Notice.php

index f184b9c52c24962323bca5088131a20c89fede04..b0edb6de60053500ec34c01fbf686a4f8da64cf4 100644 (file)
@@ -309,7 +309,8 @@ class Notice extends Memcached_DataObject
             // the beginning of a new conversation.
 
             if (empty($notice->conversation)) {
-                $notice->conversation = $notice->id;
+                $conv = Conversation::create();
+                $notice->conversation = $conv->id;
                 $changed = true;
             }
 
@@ -331,14 +332,15 @@ class Notice extends Memcached_DataObject
         return $notice;
     }
 
-    function blowOnInsert()
+    function blowOnInsert($conversation = false)
     {
         self::blow('profile:notice_ids:%d', $this->profile_id);
         self::blow('public');
 
-        if ($this->conversation != $this->id) {
-            self::blow('notice:conversation_ids:%d', $this->conversation);
-        }
+        // XXX: Before we were blowing the casche only if the notice id
+        // was not the root of the conversation.  What to do now?
+
+        self::blow('notice:conversation_ids:%d', $this->conversation);
 
         if (!empty($this->repeat_of)) {
             self::blow('notice:repeats:%d', $this->repeat_of);
@@ -1015,24 +1017,25 @@ class Notice extends Memcached_DataObject
             }
         }
 
-        if (!empty($this->conversation)
-            && $this->conversation != $this->id) {
-            $xs->element(
-                'link', array(
-                    'rel' => 'ostatus:conversation',
-                    'href' => common_local_url(
-                        'conversation',
-                        array('id' => $this->conversation)
-                        )
+        if (!empty($this->conversation)) {
+
+            $conv = Conversation::staticGet('id', $this->conversation);
+
+            if (!empty($conv)) {
+                $xs->element(
+                    'link', array(
+                        'rel' => 'ostatus:conversation',
+                        'href' => $conv->uri
                     )
                 );
+            }
         }
 
         $reply_ids = $this->getReplies();
 
         foreach ($reply_ids as $id) {
             $profile = Profile::staticGet('id', $id);
-            if (!empty($profile)) {
+           if (!empty($profile)) {
                 $xs->element(
                     'link', array(
                         'rel' => 'ostatus:attention',