continue;
}
- if ($receiver == $item_profile['followers']) {
+ if ($item_profile && $receiver == $item_profile['followers']) {
$inboxes = array_merge($inboxes, self::fetchTargetInboxesforUser($uid, $personal));
} else {
if (Contact::isLocal($receiver)) {
$data = [];
}
- $data['id'] = $mail['uri'] . '#Create';
+ $data['id'] = $mail['uri'] . '/Create';
$data['type'] = 'Create';
$data['actor'] = $mail['author-link'];
$data['published'] = DateTimeFormat::utc($mail['created'] . '+00:00', DateTimeFormat::ATOM);
$data = [];
}
- $data['id'] = $item['uri'] . '#' . $type;
+ $data['id'] = $item['uri'] . '/' . $type;
$data['type'] = $type;
if (Item::isForumPost($item) && ($type != 'Announce')) {
{
$event = [];
$event['name'] = $item['event-summary'];
- $event['content'] = BBCode::convert($item['event-desc'], false, 9);
+ $event['content'] = BBCode::convert($item['event-desc'], false, BBCode::ACTIVITYPUB);
$event['startTime'] = DateTimeFormat::utc($item['event-start'] . '+00:00', DateTimeFormat::ATOM);
if (!$item['event-nofinish']) {
$body = $item['body'];
if (empty($item['uid']) || !Feature::isEnabled($item['uid'], 'explicit_mentions')) {
- $body = self::prependMentions($body, $permission_block);
+ $body = self::prependMentions($body, $item['uri-id']);
}
if ($type == 'Note') {
$regexp = "/[@!]\[url\=([^\[\]]*)\].*?\[\/url\]/ism";
$body = preg_replace_callback($regexp, ['self', 'mentionCallback'], $body);
- $data['content'] = BBCode::convert($body, false, 9);
+ $data['content'] = BBCode::convert($body, false, BBCode::ACTIVITYPUB);
}
// The regular "content" field does contain a minimized HTML. This is done since systems like
HTTPSignature::transmit($signed, $profile['inbox'], $uid);
}
- private static function prependMentions($body, array $permission_block)
+ private static function prependMentions($body, int $uriid)
{
- if (DI::config()->get('system', 'disable_implicit_mentions')) {
- return $body;
- }
-
$mentions = [];
- foreach ($permission_block['to'] as $profile_url) {
- $profile = Contact::getDetailsByURL($profile_url);
+ foreach (Tag::getByURIId($uriid, [Tag::IMPLICIT_MENTION]) as $tag) {
+ $profile = Contact::getDetailsByURL($tag['url']);
if (!empty($profile['addr'])
&& $profile['contact-type'] != Contact::TYPE_COMMUNITY
&& !strstr($body, $profile['addr'])
- && !strstr($body, $profile_url)
+ && !strstr($body, $tag['url'])
) {
- $mentions[] = '@[url=' . $profile_url . ']' . $profile['nick'] . '[/url]';
+ $mentions[] = '@[url=' . $tag['url'] . ']' . $profile['nick'] . '[/url]';
}
}