<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* 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
*/
// 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');
// 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');
$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');
// 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);
$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.');
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 ?? '',
$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);
}
* @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;