]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/NotificationsManager.php
Removed notices in the frio theme (#5610)
[friendica.git] / src / Core / NotificationsManager.php
index 507d4db1317280aa31169c0224a67c02fe96fa71..c994755e7a231cd3f54d552a4f7c31f5f79cd83b 100644 (file)
@@ -9,17 +9,14 @@ namespace Friendica\Core;
 use Friendica\BaseObject;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
-use Friendica\Core\L10n;
-use Friendica\Core\PConfig;
-use Friendica\Core\System;
-use Friendica\Database\DBM;
+use Friendica\Core\Protocol;
+use Friendica\Database\DBA;
 use Friendica\Model\Contact;
-use Friendica\Model\Profile;
 use Friendica\Model\Item;
 use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Proxy as ProxyUtils;
 use Friendica\Util\Temporal;
 use Friendica\Util\XML;
-use dba;
 
 require_once 'include/dba.php';
 
@@ -71,7 +68,7 @@ class NotificationsManager extends BaseObject
                $filter_str = [];
                $filter_sql = "";
                foreach ($filter as $column => $value) {
-                       $filter_str[] = sprintf("`%s` = '%s'", $column, dbesc($value));
+                       $filter_str[] = sprintf("`%s` = '%s'", $column, DBA::escape($value));
                }
                if (count($filter_str) > 0) {
                        $filter_sql = "AND " . implode(" AND ", $filter_str);
@@ -101,7 +98,7 @@ class NotificationsManager extends BaseObject
                        intval(local_user())
                );
 
-               if (DBM::is_result($r)) {
+               if (DBA::isResult($r)) {
                        return $this->_set_extra($r);
                }
 
@@ -121,7 +118,7 @@ class NotificationsManager extends BaseObject
                        intval($id),
                        intval(local_user())
                );
-               if (DBM::is_result($r)) {
+               if (DBA::isResult($r)) {
                        return $this->_set_extra($r)[0];
                }
                return null;
@@ -139,9 +136,9 @@ class NotificationsManager extends BaseObject
                return q(
                        "UPDATE `notify` SET `seen` = %d WHERE (`link` = '%s' OR (`parent` != 0 AND `parent` = %d AND `otype` = '%s')) AND `uid` = %d",
                        intval($seen),
-                       dbesc($note['link']),
+                       DBA::escape($note['link']),
                        intval($note['parent']),
-                       dbesc($note['otype']),
+                       DBA::escape($note['otype']),
                        intval(local_user())
                );
        }
@@ -168,39 +165,41 @@ class NotificationsManager extends BaseObject
         */
        public function getTabs()
        {
+               $selected = defaults(self::getApp()->argv, 1, '');
+
                $tabs = [
                        [
                                'label' => L10n::t('System'),
                                'url'   => 'notifications/system',
-                               'sel'   => ((self::getApp()->argv[1] == 'system') ? 'active' : ''),
+                               'sel'   => (($selected == 'system') ? 'active' : ''),
                                'id'    => 'system-tab',
                                'accesskey' => 'y',
                        ],
                        [
                                'label' => L10n::t('Network'),
                                'url'   => 'notifications/network',
-                               'sel'   => ((self::getApp()->argv[1] == 'network') ? 'active' : ''),
+                               'sel'   => (($selected == 'network') ? 'active' : ''),
                                'id'    => 'network-tab',
                                'accesskey' => 'w',
                        ],
                        [
                                'label' => L10n::t('Personal'),
                                'url'   => 'notifications/personal',
-                               'sel'   => ((self::getApp()->argv[1] == 'personal') ? 'active' : ''),
+                               'sel'   => (($selected == 'personal') ? 'active' : ''),
                                'id'    => 'personal-tab',
                                'accesskey' => 'r',
                        ],
                        [
                                'label' => L10n::t('Home'),
                                'url'   => 'notifications/home',
-                               'sel'   => ((self::getApp()->argv[1] == 'home') ? 'active' : ''),
+                               'sel'   => (($selected == 'home') ? 'active' : ''),
                                'id'    => 'home-tab',
                                'accesskey' => 'h',
                        ],
                        [
                                'label' => L10n::t('Introductions'),
                                'url'   => 'notifications/intros',
-                               'sel'   => ((self::getApp()->argv[1] == 'intros') ? 'active' : ''),
+                               'sel'   => (($selected == 'intros') ? 'active' : ''),
                                'id'    => 'intro-tab',
                                'accesskey' => 'i',
                        ],
@@ -224,12 +223,12 @@ class NotificationsManager extends BaseObject
         *      string 'ago' => T relative date of the notification
         *      bool 'seen' => Is the notification marked as "seen"
         */
-       private function formatNotifs($notifs, $ident = "")
+       private function formatNotifs(array $notifs, $ident = "")
        {
                $notif = [];
                $arr = [];
 
-               if (DBM::is_result($notifs)) {
+               if (DBA::isResult($notifs)) {
                        foreach ($notifs as $it) {
                                // Because we use different db tables for the notification query
                                // we have sometimes $it['unseen'] and sometimes $it['seen].
@@ -239,7 +238,7 @@ class NotificationsManager extends BaseObject
                                }
 
                                // For feed items we use the user's contact, since the avatar is mostly self choosen.
-                               if (!empty($it['network']) && $it['network'] == NETWORK_FEED) {
+                               if (!empty($it['network']) && $it['network'] == Protocol::FEED) {
                                        $it['author-avatar'] = $it['contact-avatar'];
                                }
 
@@ -248,7 +247,7 @@ class NotificationsManager extends BaseObject
                                        case 'system':
                                                $default_item_label = 'notify';
                                                $default_item_link = System::baseUrl(true) . '/notify/view/' . $it['id'];
-                                               $default_item_image = proxy_url($it['photo'], false, PROXY_SIZE_MICRO);
+                                               $default_item_image = ProxyUtils::proxifyUrl($it['photo'], false, ProxyUtils::SIZE_MICRO);
                                                $default_item_url = $it['url'];
                                                $default_item_text = strip_tags(BBCode::convert($it['msg']));
                                                $default_item_when = DateTimeFormat::local($it['date'], 'r');
@@ -258,7 +257,7 @@ class NotificationsManager extends BaseObject
                                        case 'home':
                                                $default_item_label = 'comment';
                                                $default_item_link = System::baseUrl(true) . '/display/' . $it['parent-guid'];
-                                               $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO);
+                                               $default_item_image = ProxyUtils::proxifyUrl($it['author-avatar'], false, ProxyUtils::SIZE_MICRO);
                                                $default_item_url = $it['author-link'];
                                                $default_item_text = L10n::t("%s commented on %s's post", $it['author-name'], $it['parent-author-name']);
                                                $default_item_when = DateTimeFormat::local($it['created'], 'r');
@@ -268,7 +267,7 @@ class NotificationsManager extends BaseObject
                                        default:
                                                $default_item_label = (($it['id'] == $it['parent']) ? 'post' : 'comment');
                                                $default_item_link = System::baseUrl(true) . '/display/' . $it['parent-guid'];
-                                               $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO);
+                                               $default_item_image = ProxyUtils::proxifyUrl($it['author-avatar'], false, ProxyUtils::SIZE_MICRO);
                                                $default_item_url = $it['author-link'];
                                                $default_item_text = (($it['id'] == $it['parent'])
                                                                        ? L10n::t("%s created a new post", $it['author-name'])
@@ -283,7 +282,7 @@ class NotificationsManager extends BaseObject
                                                $notif = [
                                                        'label' => 'like',
                                                        'link' => System::baseUrl(true) . '/display/' . $it['parent-guid'],
-                                                       'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
+                                                       'image' => ProxyUtils::proxifyUrl($it['author-avatar'], false, ProxyUtils::SIZE_MICRO),
                                                        'url' => $it['author-link'],
                                                        'text' => L10n::t("%s liked %s's post", $it['author-name'], $it['parent-author-name']),
                                                        'when' => $default_item_when,
@@ -296,7 +295,7 @@ class NotificationsManager extends BaseObject
                                                $notif = [
                                                        'label' => 'dislike',
                                                        'link' => System::baseUrl(true) . '/display/' . $it['parent-guid'],
-                                                       'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
+                                                       'image' => ProxyUtils::proxifyUrl($it['author-avatar'], false, ProxyUtils::SIZE_MICRO),
                                                        'url' => $it['author-link'],
                                                        'text' => L10n::t("%s disliked %s's post", $it['author-name'], $it['parent-author-name']),
                                                        'when' => $default_item_when,
@@ -309,7 +308,7 @@ class NotificationsManager extends BaseObject
                                                $notif = [
                                                        'label' => 'attend',
                                                        'link' => System::baseUrl(true) . '/display/' . $it['parent-guid'],
-                                                       'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
+                                                       'image' => ProxyUtils::proxifyUrl($it['author-avatar'], false, ProxyUtils::SIZE_MICRO),
                                                        'url' => $it['author-link'],
                                                        'text' => L10n::t("%s is attending %s's event", $it['author-name'], $it['parent-author-name']),
                                                        'when' => $default_item_when,
@@ -322,7 +321,7 @@ class NotificationsManager extends BaseObject
                                                $notif = [
                                                        'label' => 'attendno',
                                                        'link' => System::baseUrl(true) . '/display/' . $it['parent-guid'],
-                                                       'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
+                                                       'image' => ProxyUtils::proxifyUrl($it['author-avatar'], false, ProxyUtils::SIZE_MICRO),
                                                        'url' => $it['author-link'],
                                                        'text' => L10n::t("%s is not attending %s's event", $it['author-name'], $it['parent-author-name']),
                                                        'when' => $default_item_when,
@@ -335,7 +334,7 @@ class NotificationsManager extends BaseObject
                                                $notif = [
                                                        'label' => 'attendmaybe',
                                                        'link' => System::baseUrl(true) . '/display/' . $it['parent-guid'],
-                                                       'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
+                                                       'image' => ProxyUtils::proxifyUrl($it['author-avatar'], false, ProxyUtils::SIZE_MICRO),
                                                        'url' => $it['author-link'],
                                                        'text' => L10n::t("%s may attend %s's event", $it['author-name'], $it['parent-author-name']),
                                                        'when' => $default_item_when,
@@ -352,7 +351,7 @@ class NotificationsManager extends BaseObject
                                                $notif = [
                                                        'label' => 'friend',
                                                        'link' => System::baseUrl(true) . '/display/' . $it['parent-guid'],
-                                                       'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
+                                                       'image' => ProxyUtils::proxifyUrl($it['author-avatar'], false, ProxyUtils::SIZE_MICRO),
                                                        'url' => $it['author-link'],
                                                        'text' => L10n::t("%s is now friends with %s", $it['author-name'], $it['fname']),
                                                        'when' => $default_item_when,
@@ -407,9 +406,10 @@ class NotificationsManager extends BaseObject
                $fields = ['id', 'parent', 'verb', 'author-name', 'unseen', 'author-link', 'author-avatar', 'contact-avatar',
                        'network', 'created', 'object', 'parent-author-name', 'parent-author-link', 'parent-guid'];
                $params = ['order' => ['created' => true], 'limit' => [$start, $limit]];
+
                $items = Item::selectForUser(local_user(), $fields, $condition, $params);
 
-               if (DBM::is_result($items)) {
+               if (DBA::isResult($items)) {
                        $notifs = $this->formatNotifs(Item::inArray($items), $ident);
                }
 
@@ -444,13 +444,14 @@ class NotificationsManager extends BaseObject
                }
 
                $r = q(
-                       "SELECT `id`, `url`, `photo`, `msg`, `date`, `seen` FROM `notify`
+                       "SELECT `id`, `url`, `photo`, `msg`, `date`, `seen`, `verb` FROM `notify`
                                WHERE `uid` = %d $sql_seen ORDER BY `date` DESC LIMIT %d, %d ",
                        intval(local_user()),
                        intval($start),
                        intval($limit)
                );
-               if (DBM::is_result($r)) {
+
+               if (DBA::isResult($r)) {
                        $notifs = $this->formatNotifs($r, $ident);
                }
 
@@ -492,9 +493,10 @@ class NotificationsManager extends BaseObject
                $fields = ['id', 'parent', 'verb', 'author-name', 'unseen', 'author-link', 'author-avatar', 'contact-avatar',
                        'network', 'created', 'object', 'parent-author-name', 'parent-author-link', 'parent-guid'];
                $params = ['order' => ['created' => true], 'limit' => [$start, $limit]];
+
                $items = Item::selectForUser(local_user(), $fields, $condition, $params);
 
-               if (DBM::is_result($items)) {
+               if (DBA::isResult($items)) {
                        $notifs = $this->formatNotifs(Item::inArray($items), $ident);
                }
 
@@ -534,7 +536,7 @@ class NotificationsManager extends BaseObject
                $params = ['order' => ['created' => true], 'limit' => [$start, $limit]];
                $items = Item::selectForUser(local_user(), $fields, $condition, $params);
 
-               if (DBM::is_result($items)) {
+               if (DBA::isResult($items)) {
                        $notifs = $this->formatNotifs(Item::inArray($items), $ident);
                }
 
@@ -586,7 +588,7 @@ class NotificationsManager extends BaseObject
                        intval($start),
                        intval($limit)
                );
-               if (DBM::is_result($r)) {
+               if (DBA::isResult($r)) {
                        $notifs = $this->formatIntros($r);
                }
 
@@ -613,7 +615,7 @@ class NotificationsManager extends BaseObject
                        // We have to distinguish between these two because they use different data.
                        // Contact suggestions
                        if ($it['fid']) {
-                               $return_addr = bin2hex(self::getApp()->user['nickname'] . '@' . self::getApp()->get_hostname() . ((self::getApp()->path) ? '/' . self::getApp()->path : ''));
+                               $return_addr = bin2hex(self::getApp()->user['nickname'] . '@' . self::getApp()->get_hostname() . ((self::getApp()->urlpath) ? '/' . self::getApp()->urlpath : ''));
 
                                $intro = [
                                        'label' => 'friend_suggestion',
@@ -624,7 +626,7 @@ class NotificationsManager extends BaseObject
                                        'madeby_zrl' => Contact::magicLink($it['url']),
                                        'madeby_addr' => $it['addr'],
                                        'contact_id' => $it['contact-id'],
-                                       'photo' => ((x($it, 'fphoto')) ? proxy_url($it['fphoto'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"),
+                                       'photo' => ((x($it, 'fphoto')) ? ProxyUtils::proxifyUrl($it['fphoto'], false, ProxyUtils::SIZE_SMALL) : "images/person-175.jpg"),
                                        'name' => $it['fname'],
                                        'url' => $it['furl'],
                                        'zrl' => Contact::magicLink($it['furl']),
@@ -640,19 +642,19 @@ class NotificationsManager extends BaseObject
                                $it = $this->getMissingIntroData($it);
 
                                // Don't show these data until you are connected. Diaspora is doing the same.
-                               if ($it['gnetwork'] === NETWORK_DIASPORA) {
+                               if ($it['gnetwork'] === Protocol::DIASPORA) {
                                        $it['glocation'] = "";
                                        $it['gabout'] = "";
                                        $it['ggender'] = "";
                                }
                                $intro = [
-                                       'label' => (($it['network'] !== NETWORK_OSTATUS) ? 'friend_request' : 'follower'),
-                                       'notify_type' => (($it['network'] !== NETWORK_OSTATUS) ? L10n::t('Friend/Connect Request') : L10n::t('New Follower')),
+                                       'label' => (($it['network'] !== Protocol::OSTATUS) ? 'friend_request' : 'follower'),
+                                       'notify_type' => (($it['network'] !== Protocol::OSTATUS) ? L10n::t('Friend/Connect Request') : L10n::t('New Follower')),
                                        'dfrn_id' => $it['issued-id'],
                                        'uid' => $_SESSION['uid'],
                                        'intro_id' => $it['intro_id'],
                                        'contact_id' => $it['contact-id'],
-                                       'photo' => ((x($it, 'photo')) ? proxy_url($it['photo'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"),
+                                       'photo' => ((x($it, 'photo')) ? ProxyUtils::proxifyUrl($it['photo'], false, ProxyUtils::SIZE_SMALL) : "images/person-175.jpg"),
                                        'name' => $it['name'],
                                        'location' => BBCode::convert($it['glocation'], false),
                                        'about' => BBCode::convert($it['gabout'], false),