]> git.mxchange.org Git - friendica.git/commitdiff
Improved handling of forum mentions
authorMichael <heluecht@pirati.ca>
Tue, 27 Dec 2022 17:01:40 +0000 (17:01 +0000)
committerHypolite Petovan <hypolite@mrpetovan.com>
Fri, 13 Jan 2023 14:18:47 +0000 (09:18 -0500)
src/Protocol/ActivityPub/Transmitter.php

index 6b0064c3e914acf43416324b8320656562780829..66ee9e4b5cb623d8dbc591642578306d1aa4e58e 100644 (file)
@@ -674,6 +674,7 @@ class Transmitter
                }
 
                $exclusive = false;
+               $mention   = false;
 
                if ($is_forum_thread) {
                        foreach (Tag::getByURIId($item['parent-uri-id'], [Tag::MENTION, Tag::EXCLUSIVE_MENTION]) as $term) {
@@ -682,7 +683,7 @@ class Transmitter
                                        if ($term['type'] == Tag::EXCLUSIVE_MENTION) {
                                                $exclusive = true;
                                        } elseif ($term['type'] == Tag::MENTION) {
-                                               $exclusive = false;
+                                               $mention = true;
                                        }
                                }
                        }
@@ -718,7 +719,7 @@ class Transmitter
                                                        $data['cc'][] = $profile['followers'];
                                                }
                                        } elseif (($term['type'] == Tag::MENTION) && ($profile['type'] == 'Group')) {
-                                               $exclusive = false;
+                                               $mention = true;
                                        }
                                        $data['to'][] = $profile['url'];
                                }
@@ -742,13 +743,17 @@ class Transmitter
                                                                $data['cc'][] = $profile['followers'];
                                                        }
                                                } elseif (($term['type'] == Tag::MENTION) && ($profile['type'] == 'Group')) {
-                                                       $exclusive = false;
+                                                       $mention = true;
                                                }
                                                $data['to'][] = $profile['url'];
                                        }
                                }
                        }
 
+                       if ($mention) {
+                               $exclusive = false;
+                       }
+
                        if ($is_forum && !$exclusive && !empty($follower)) {
                                $data['cc'][] = $follower;
                        } elseif (!$exclusive) {