]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Item.php
Merge pull request #4766 from MrPetovan/task/4721-group-button-color
[friendica.git] / src / Model / Item.php
index d6257d99a17f566a1f414ed49234100e9f7f677b..bdb85af44141e28f5bad05507af81338283ce1a0 100644 (file)
@@ -22,13 +22,13 @@ use Friendica\Object\Image;
 use Friendica\Protocol\Diaspora;
 use Friendica\Protocol\OStatus;
 use Friendica\Util\DateTimeFormat;
+use Friendica\Util\XML;
 use dba;
 use Text_LanguageDetect;
 
 require_once 'boot.php';
 require_once 'include/items.php';
 require_once 'include/text.php';
-require_once 'include/event.php';
 
 class Item extends BaseObject
 {
@@ -97,7 +97,7 @@ class Item extends BaseObject
         * @param integer $item_id Item ID that should be delete
         * @param integer $priority Priority for the notification
         *
-        * @return $boolean success
+        * @return boolean success
         */
        public static function deleteById($item_id, $priority = PRIORITY_HIGH)
        {
@@ -152,7 +152,7 @@ class Item extends BaseObject
 
                // If item is a link to an event, delete the event.
                if (intval($item['event-id'])) {
-                       event_delete($item['event-id']);
+                       Event::delete($item['event-id']);
                }
 
                // If item has attachments, drop them
@@ -355,6 +355,10 @@ class Item extends BaseObject
                        }
                }
 
+               if (!empty($item['thr-parent'])) {
+                       $item['parent-uri'] = $item['thr-parent'];
+               }
+
                if (x($item, 'gravity')) {
                        $item['gravity'] = intval($item['gravity']);
                } elseif ($item['parent-uri'] === $item['uri']) {
@@ -897,7 +901,11 @@ class Item extends BaseObject
                                $item['uid'] = 0;
                                $item['origin'] = 0;
                                $item['wall'] = 0;
-                               $item['contact-id'] = Contact::getIdForURL($item['author-link']);
+                               if ($item['uri'] == $item['parent-uri']) {
+                                       $item['contact-id'] = Contact::getIdForURL($item['owner-link']);
+                               } else {
+                                       $item['contact-id'] = Contact::getIdForURL($item['author-link']);
+                               }
 
                                if (in_array($item['type'], ["net-comment", "wall-comment"])) {
                                        $item['type'] = 'remote-comment';
@@ -1264,21 +1272,23 @@ class Item extends BaseObject
                }
 
                // now change this copy of the post to a forum head message and deliver to all the tgroup members
-               $self = dba::selectFirst('contact', ['name', 'url', 'thumb'], ['uid' => $uid, 'self' => true]);
+               $self = dba::selectFirst('contact', ['id', 'name', 'url', 'thumb'], ['uid' => $uid, 'self' => true]);
                if (!DBM::is_result($self)) {
                        return;
                }
 
+               $owner_id = Contact::getIdForURL($self['url']);
+
                // also reset all the privacy bits to the forum default permissions
 
                $private = ($user['allow_cid'] || $user['allow_gid'] || $user['deny_cid'] || $user['deny_gid']) ? 1 : 0;
 
                $forum_mode = ($prvgroup ? 2 : 1);
 
-               $fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode,
-                       'owner-name' => $self['name'], 'owner-link' => $self['url'], 'owner-avatar' => $self['thumb'],
-                       'private' => $private, 'allow_cid' => $user['allow_cid'], 'allow_gid' => $user['allow_gid'],
-                       'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']];
+               $fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode, 'contact-id' => $self['id'],
+                       'owner-id' => $owner_id, 'owner-name' => $self['name'], 'owner-link' => $self['url'],
+                       'owner-avatar' => $self['thumb'], 'private' => $private, 'allow_cid' => $user['allow_cid'],
+                       'allow_gid' => $user['allow_gid'], 'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']];
                dba::update('item', $fields, ['id' => $item_id]);
 
                self::updateThread($item_id);