]> git.mxchange.org Git - friendica.git/blobdiff - object/Conversation.php
make event confirmation work
[friendica.git] / object / Conversation.php
index ca2ed2bb82f7f574e44fcfa43bfceb75b98bb664..94eed94d5f9eaa8661d6a9508b4be21a0512ff90 100644 (file)
@@ -15,11 +15,13 @@ require_once('include/text.php');
 class Conversation extends BaseObject {
        private $threads = array();
        private $mode = null;
-       private $writeable = false;
+       private $writable = false;
        private $profile_owner = 0;
+       private $preview = false;
 
-       public function __construct($mode) {
+       public function __construct($mode, $preview) {
                $this->set_mode($mode);
+               $this->preview = $preview;
        }
 
        /**
@@ -35,21 +37,22 @@ class Conversation extends BaseObject {
                        case 'network':
                        case 'notes':
                                $this->profile_owner = local_user();
-                               $this->writeable = true;
+                               $this->writable = true;
                                break;
                        case 'profile':
                                $this->profile_owner = $a->profile['profile_uid'];
-                               $this->writeable = can_write_wall($a,$this->profile_owner);
+                               $this->writable = can_write_wall($a,$this->profile_owner);
                                break;
                        case 'display':
                                $this->profile_owner = $a->profile['uid'];
-                               $this->writeable = can_write_wall($a,$this->profile_owner);
+                               $this->writable = can_write_wall($a,$this->profile_owner);
                                break;
                        default:
                                logger('[ERROR] Conversation::set_mode : Unhandled mode ('. $mode .').', LOGGER_DEBUG);
                                return false;
                                break;
                }
+               $this->mode = $mode;
        }
 
        /**
@@ -60,10 +63,17 @@ class Conversation extends BaseObject {
        }
 
        /**
-        * Check if page is writeable
+        * Check if page is writable
         */
-       public function is_writeable() {
-               return $this->writeable;
+       public function is_writable() {
+               return $this->writable;
+       }
+
+       /**
+        * Check if page is a preview
+        */
+       public function is_preview() {
+               return $this->preview;
        }
 
        /**
@@ -77,8 +87,8 @@ class Conversation extends BaseObject {
         * Add a thread to the conversation
         *
         * Returns:
-        *              _ The inserted item on success
-        *              _ false on failure
+        *      _ The inserted item on success
+        *      _ false on failure
         */
        public function add_thread($item) {
                $item_id = $item->get_id();
@@ -90,6 +100,18 @@ class Conversation extends BaseObject {
                        logger('[WARN] Conversation::add_thread : Thread already exists ('. $item->get_id() .').', LOGGER_DEBUG);
                        return false;
                }
+
+               /*
+                * Only add will be displayed
+                */
+               if($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid')) {
+                       logger('[WARN] Conversation::add_thread : Thread is a mail ('. $item->get_id() .').', LOGGER_DEBUG);
+                       return false;
+               }
+               if($item->get_data_value('verb') === ACTIVITY_LIKE || $item->get_data_value('verb') === ACTIVITY_DISLIKE) {
+                       logger('[WARN] Conversation::add_thread : Thread is a (dis)like ('. $item->get_id() .').', LOGGER_DEBUG);
+                       return false;
+               }
                $item->set_conversation($this);
                $this->threads[] = $item;
                return end($this->threads);
@@ -101,16 +123,21 @@ class Conversation extends BaseObject {
         * We should find a way to avoid using those arguments (at least most of them)
         *
         * Returns:
-        *              _ The data requested on success
-        *              _ false on failure
+        *      _ The data requested on success
+        *      _ false on failure
         */
-       public function get_template_data($cmnt_tpl, $alike, $dlike) {
+       public function get_template_data($conv_responses) {
+               global $a;
                $result = array();
 
+               $i = 0;
+
                foreach($this->threads as $item) {
                        if($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid'))
                                continue;
-                       $item_data = $item->get_template_data($cmnt_tpl, $alike, $dlike);
+
+                       $item_data = $item->get_template_data($conv_responses);
+
                        if(!$item_data) {
                                logger('[ERROR] Conversation::get_template_data : Failed to get item template data ('. $item->get_id() .').', LOGGER_DEBUG);
                                return false;
@@ -118,6 +145,7 @@ class Conversation extends BaseObject {
                        $result[] = $item_data;
                }
 
+               //$a->mark_timestamp();
                return $result;
        }
 
@@ -125,8 +153,8 @@ class Conversation extends BaseObject {
         * Get a thread based on its item id
         *
         * Returns:
-        *              _ The found item on success
-        *              _ false on failure
+        *      _ The found item on success
+        *      _ false on failure
         */
        private function get_thread($id) {
                foreach($this->threads as $item) {