X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fenotify.php;h=00459ac5c09f5fbd8b78d6bab49c1fa5edc12e4b;hb=4da9395075e13553d200ced03ffc104743d9bc98;hp=7eb2c80ebc5964d5a89f70b8966c233f55874ba3;hpb=5d9083c3691b15655c403e0bffde039702b6c61e;p=friendica.git diff --git a/include/enotify.php b/include/enotify.php index 7eb2c80ebc..00459ac5c0 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -130,7 +130,7 @@ function notification($params) $item = null; if ($params['otype'] === 'item' && $parent_id) { - $item = Item::selectFirst($params['uid'], [], ['id' => $parent_id]); + $item = Item::selectFirstForUser($params['uid'], [], ['id' => $parent_id]); } $item_post_type = item_post_type($item); @@ -366,7 +366,7 @@ function notification($params) '[url='.$params['source_link'].']'.$params['source_name'].'[/url]' ); - $body = L10n::t('Full Name: %1$s\nSite Location: %2$s\nLogin Name: %3$s ' . "\x28" . '%4$s' . "\x29", + $body = L10n::t("Full Name: %s\nSite Location: %s\nLogin Name: %s (%s)", $params['source_name'], $siteurl, $params['source_mail'], $params['source_nick'] @@ -562,11 +562,8 @@ function notification($params) } } - // textversion keeps linebreaks - $textversion = strip_tags(str_replace("
", "\n", html_entity_decode(BBCode::convert(stripslashes(str_replace(["\\r\\n", "\\r", "\\n"], "\n", - $body))),ENT_QUOTES, 'UTF-8'))); - $htmlversion = html_entity_decode(BBCode::convert(stripslashes(str_replace(["\\r\\n", "\\r", "\\n\\n", "\\n"], - "
\n", $body))), ENT_QUOTES, 'UTF-8'); + $textversion = BBCode::toPlaintext($body); + $htmlversion = BBCode::convert($body); $datarray = []; $datarray['banner'] = $banner; @@ -727,28 +724,33 @@ function check_item_notification($itemid, $uid, $defaulttype = "") { $profiles = $profiles2; - $profile_list = ""; + $ret = dba::select('contact', ['id'], ['uid' => 0, 'nurl' => $profiles]); - foreach ($profiles AS $profile) { - if ($profile_list != "") - $profile_list .= "', '"; + $contacts = []; - $profile_list .= dbesc($profile); + while ($contact = dba::fetch($ret)) { + $contacts[] = $contact['id']; } - $profile_list = "'".$profile_list."'"; + $contact_list = implode(',', $contacts); + + dba::close($ret); // Only act if it is a "real" post // We need the additional check for the "local_profile" because of mixed situations on connector networks $item = q("SELECT `id`, `mention`, `tag`,`parent`, `title`, `body`, `author-id`, `guid`, - `parent-uri`, `uri`, `contact-id` + `parent-uri`, `uri`, `contact-id`, `network` FROM `item` WHERE `id` = %d AND `verb` IN ('%s', '') AND `type` != 'activity' AND - NOT (`author-link` IN ($profile_list)) LIMIT 1", + NOT (`author-id` IN ($contact_list)) LIMIT 1", intval($itemid), dbesc(ACTIVITY_POST)); if (!$item) return false; - $author = dba::selectFirst('contact', ['name', 'thumb', 'url'], ['id' => $item[0]['author-id']]); + if ($item[0]['network'] != NETWORK_FEED) { + $author = dba::selectFirst('contact', ['name', 'thumb', 'url'], ['id' => $item[0]['author-id']]); + } else { + $author = dba::selectFirst('contact', ['name', 'thumb', 'url'], ['id' => $item[0]['contact-id']]); + } // Generate the notification array $params = []; @@ -806,7 +808,7 @@ function check_item_notification($itemid, $uid, $defaulttype = "") { // Is it a post that the user had started or where he interacted? $parent = q("SELECT `thread`.`iid` FROM `thread` INNER JOIN `item` ON `item`.`parent` = `thread`.`iid` WHERE `thread`.`iid` = %d AND NOT `thread`.`ignored` AND - (`thread`.`mention` OR `item`.`author-link` IN ($profile_list)) + (`thread`.`mention` OR `item`.`author-id` IN ($contact_list)) LIMIT 1", intval($item[0]["parent"]));