]> git.mxchange.org Git - friendica.git/blobdiff - include/enotify.php
Merge pull request #10486 from nupplaphil/feat/remove_test_data
[friendica.git] / include / enotify.php
index e56b563e3e5c60c3843864b09570cb80532d4e1c..cfc03626f585459fa4d121f4bb4a3144fe333537 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -41,7 +41,7 @@ use Friendica\Protocol\Activity;
  *                      type, event, otype, activity, verb, uid, cid, origin_cid, item, link,
  *                      source_name, source_mail, source_nick, source_link, source_photo,
  *                      show_in_notification_page
- * 
+ *
  * @return bool
  * @throws \Friendica\Network\HTTPException\InternalServerErrorException
  */
@@ -172,7 +172,7 @@ function notification($params)
                        return false;
                }
 
-               $item_post_type = Item::postType($item);
+               $item_post_type = Item::postType($item, $l10n);
 
                $content = Plaintext::getPost($item, 70);
                if (!empty($content['text'])) {
@@ -184,9 +184,9 @@ function notification($params)
                // First go for the general message
 
                // "George Bull's post"
-               if ($params['activity']['origin_comment']) {
+               if (!empty($params['activity']['origin_comment'])) {
                        $message = $l10n->t('%1$s replied to you on %2$s\'s %3$s %4$s');
-               } elseif ($params['activity']['explicit_tagged']) {
+               } elseif (!empty($params['activity']['explicit_tagged'])) {
                        $message = $l10n->t('%1$s tagged you on %2$s\'s %3$s %4$s');
                } else {
                        $message = $l10n->t('%1$s commented on %2$s\'s %3$s %4$s');
@@ -197,10 +197,10 @@ function notification($params)
                // Then look for the special cases
 
                // "your post"
-               if ($params['activity']['origin_thread']) {
-                       if ($params['activity']['origin_comment']) {
+               if (!empty($params['activity']['origin_thread'])) {
+                       if (!empty($params['activity']['origin_comment'])) {
                                $message = $l10n->t('%1$s replied to you on your %2$s %3$s');
-                       } elseif ($params['activity']['explicit_tagged']) {
+                       } elseif (!empty($params['activity']['explicit_tagged'])) {
                                $message = $l10n->t('%1$s tagged you on your %2$s %3$s');
                        } else {
                                $message = $l10n->t('%1$s commented on your %2$s %3$s');
@@ -209,9 +209,9 @@ function notification($params)
                        $dest_str = sprintf($message, $params['source_name'], $item_post_type, $title);
                // "their post"
                } elseif ($item['author-link'] == $params['source_link']) {
-                       if ($params['activity']['origin_comment']) {
+                       if (!empty($params['activity']['origin_comment'])) {
                                $message = $l10n->t('%1$s replied to you on their %2$s %3$s');
-                       } elseif ($params['activity']['explicit_tagged']) {
+                       } elseif (!empty($params['activity']['explicit_tagged'])) {
                                $message = $l10n->t('%1$s tagged you on their %2$s %3$s');
                        } else {
                                $message = $l10n->t('%1$s commented on their %2$s %3$s');
@@ -224,7 +224,7 @@ function notification($params)
                // So, we cannot have different subjects for notifications of the same thread.
                // Before this we have the name of the replier on the subject rendering
                // different subjects for messages on the same thread.
-               if ($params['activity']['explicit_tagged']) {
+               if (!empty($params['activity']['explicit_tagged'])) {
                        $subject = $l10n->t('%s %s tagged you', $subjectPrefix, $params['source_name']);
 
                        $preamble = $l10n->t('%1$s tagged you at %2$s', $params['source_name'], $sitename);
@@ -273,7 +273,7 @@ function notification($params)
                        $epreamble = $l10n->t('%1$s [url=%2$s]shared a post[/url] from %3$s.',
                                '[url='.$params['source_link'].']'.$params['source_name'].'[/url]',
                                $params['link'], '[url='.$params['origin_link'].']'.$params['origin_name'].'[/url]'
-                       );                      
+                       );
                }
 
                $sitelink = $l10n->t('Please visit %s to view and/or reply to the conversation.');
@@ -474,7 +474,7 @@ function notification($params)
        if ($show_in_notification_page) {
                $fields = [
                        'name'          => $params['source_name'] ?? '',
-                       'name_cache'    => substr(strip_tags(BBCode::convert($params['source_name'])), 0, 255),
+                       'name_cache'    => substr(strip_tags(BBCode::convertForUriId($uri_id, $params['source_name'])), 0, 255),
                        'url'           => $params['source_link'] ?? '',
                        'photo'         => $params['source_photo'] ?? '',
                        'link'          => $itemlink ?? '',
@@ -604,7 +604,7 @@ function check_user_notification(int $uri_id, int $uid) {
 
        $usernotifications = DBA::select('post-user-notification', ['uri-id', 'uid', 'notification-type'], $condition);
        while ($usernotification = DBA::fetch($usernotifications)) {
-               check_item_notification($usernotification['uri-id'], $usernotification['uid'], $usernotification['notification-type']);
+               check_item_notification($usernotification['uri-id'], $usernotification['uid'], $usernotification['notification-type'], $uid);
        }
        DBA::close($usernotifications);
 }
@@ -618,11 +618,11 @@ function check_user_notification(int $uri_id, int $uid) {
  * @return bool
  * @throws \Friendica\Network\HTTPException\InternalServerErrorException
  */
-function check_item_notification(int $uri_id, int $uid, int $notification_type) {
+function check_item_notification(int $uri_id, int $uid, int $notification_type, $post_uid) {
        $fields = ['id', 'uri-id', 'mention', 'parent', 'parent-uri-id', 'thr-parent-id',
                'title', 'body', 'author-link', 'author-name', 'author-avatar', 'author-id',
                'gravity', 'guid', 'parent-uri', 'uri', 'contact-id', 'network'];
-       $condition = ['uri-id' => $uri_id, 'uid' => $uid, 'deleted' => false];
+       $condition = ['uri-id' => $uri_id, 'uid' => [$uid, $post_uid], 'deleted' => false];
        $item = Post::selectFirstForUser($uid, $fields, $condition);
        if (!DBA::isResult($item)) {
                return false;