Merge pull request #11359 from annando/notification
Avoid empty notifications / fixed link to the content
This commit is contained in:
commit
014c7b5943
|
@ -139,9 +139,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
|
||||||
$this->logger->info('Parent post not found', ['uri-id' => $Notification->parentUriId]);
|
$this->logger->info('Parent post not found', ['uri-id' => $Notification->parentUriId]);
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
if ($Notification->type == Post\UserNotification::TYPE_COMMENT_PARTICIPATION) {
|
$link_item = Post::selectFirstPost(['guid'], ['uri-id' => $Notification->targetUriId]);
|
||||||
$link_item = Post::selectFirst(['guid'], ['uri-id' => $Notification->targetUriId, 'uid' => [0, $Notification->uid]], ['order' => ['uid' => true]]);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$item = Post::selectFirst([], ['uri-id' => $Notification->targetUriId, 'uid' => [0, $Notification->uid]], ['order' => ['uid' => true]]);
|
$item = Post::selectFirst([], ['uri-id' => $Notification->targetUriId, 'uid' => [0, $Notification->uid]], ['order' => ['uid' => true]]);
|
||||||
if (empty($item)) {
|
if (empty($item)) {
|
||||||
|
@ -156,6 +154,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$link_item = $item;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($Notification->type, [Post\UserNotification::TYPE_COMMENT_PARTICIPATION, Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION, Post\UserNotification::TYPE_SHARED])) {
|
if (in_array($Notification->type, [Post\UserNotification::TYPE_COMMENT_PARTICIPATION, Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION, Post\UserNotification::TYPE_SHARED])) {
|
||||||
|
@ -166,7 +165,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$link = $this->baseUrl . '/display/' . urlencode($link_item['guid'] ?? $item['guid']);
|
$link = $this->baseUrl . '/display/' . urlencode($link_item['guid']);
|
||||||
|
|
||||||
$content = Plaintext::getPost($item, 70);
|
$content = Plaintext::getPost($item, 70);
|
||||||
if (!empty($content['text'])) {
|
if (!empty($content['text'])) {
|
||||||
|
|
|
@ -27,6 +27,7 @@ use Friendica\BaseRepository;
|
||||||
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
|
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
|
||||||
use Friendica\Database\Database;
|
use Friendica\Database\Database;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
|
use Friendica\Model\Post\UserNotification;
|
||||||
use Friendica\Model\Verb;
|
use Friendica\Model\Verb;
|
||||||
use Friendica\Navigation\Notifications\Collection;
|
use Friendica\Navigation\Notifications\Collection;
|
||||||
use Friendica\Navigation\Notifications\Entity;
|
use Friendica\Navigation\Notifications\Entity;
|
||||||
|
@ -137,7 +138,8 @@ class Notification extends BaseRepository
|
||||||
*/
|
*/
|
||||||
public function selectDigestForUser(int $uid): Collection\Notifications
|
public function selectDigestForUser(int $uid): Collection\Notifications
|
||||||
{
|
{
|
||||||
$values = [$uid];
|
$values = [$uid, Verb::getID(\Friendica\Protocol\Activity::ANNOUNCE),
|
||||||
|
UserNotification::TYPE_COMMENT_PARTICIPATION, UserNotification::TYPE_ACTIVITY_PARTICIPATION, UserNotification::TYPE_THREAD_COMMENT];
|
||||||
|
|
||||||
$like_condition = '';
|
$like_condition = '';
|
||||||
if (!$this->pconfig->get($uid, 'system', 'notify_like')) {
|
if (!$this->pconfig->get($uid, 'system', 'notify_like')) {
|
||||||
|
@ -154,10 +156,10 @@ class Notification extends BaseRepository
|
||||||
$rows = $this->db->p("
|
$rows = $this->db->p("
|
||||||
SELECT notification.*
|
SELECT notification.*
|
||||||
FROM notification
|
FROM notification
|
||||||
WHERE id IN (
|
WHERE `id` IN (
|
||||||
SELECT MAX(`id`)
|
SELECT MAX(`id`)
|
||||||
FROM notification
|
FROM `notification`
|
||||||
WHERE uid = ?
|
WHERE `uid` = ? AND NOT (`vid` = ? AND `type` IN (?, ?, ?))
|
||||||
$like_condition
|
$like_condition
|
||||||
$announce_condition
|
$announce_condition
|
||||||
GROUP BY IFNULL(`parent-uri-id`, `actor-id`)
|
GROUP BY IFNULL(`parent-uri-id`, `actor-id`)
|
||||||
|
|
Loading…
Reference in a new issue