]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Conversation.php
doc/themes.md,FAQ-admin: point to live friendica-themes.com mirror
[friendica.git] / src / Content / Conversation.php
index 879e47c24d3e1762a7c11fdeb8e80a7ca8fb229c..0c3a6c988d30ddcc7e520095e35ffbcd63a27a41 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -26,10 +26,10 @@ use Friendica\App\Arguments;
 use Friendica\App\BaseURL;
 use Friendica\BaseModule;
 use Friendica\Core\ACL;
-use Friendica\Core\Config\IConfig;
+use Friendica\Core\Config\Capability\IManageConfigValues;
 use Friendica\Core\Hook;
 use Friendica\Core\L10n;
-use Friendica\Core\PConfig\IPConfig;
+use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
 use Friendica\Core\Session;
@@ -66,11 +66,11 @@ class Conversation
        private $item;
        /** @var App\Arguments */
        private $args;
-       /** @var IPConfig */
+       /** @var IManagePersonalConfigValues */
        private $pConfig;
        /** @var BaseURL */
        private $baseURL;
-       /** @var IConfig */
+       /** @var IManageConfigValues */
        private $config;
        /** @var App */
        private $app;
@@ -79,7 +79,7 @@ class Conversation
        /** @var App\Mode */
        private $mode;
 
-       public function __construct(LoggerInterface $logger, Profiler $profiler, Activity $activity, L10n $l10n, Item $item, Arguments $args, BaseURL $baseURL, IConfig $config, IPConfig $pConfig, App\Page $page, App\Mode $mode, App $app)
+       public function __construct(LoggerInterface $logger, Profiler $profiler, Activity $activity, L10n $l10n, Item $item, Arguments $args, BaseURL $baseURL, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, App\Page $page, App\Mode $mode, App $app)
        {
                $this->activity = $activity;
                $this->item     = $item;
@@ -154,7 +154,7 @@ class Conversation
 
                                // Skip when the causer of the parent is the same than the author of the announce
                                if (($verb == Activity::ANNOUNCE) && Post::exists(['uri-id' => $activity['thr-parent-id'],
-                                       'uid' => $activity['uid'], 'causer-id' => $activity['author-id'], 'gravity' => GRAVITY_PARENT])) {
+                                       'uid' => $activity['uid'], 'causer-id' => $activity['author-id'], 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT]])) {
                                        continue;
                                }
 
@@ -223,12 +223,12 @@ class Conversation
                                        break;
                        }
                } elseif ($total > 1) {
-                       if ($total < MAX_LIKERS) {
+                       if ($total < $this->config->get('system', 'max_likers')) {
                                $likers = implode(', ', array_slice($links, 0, -1));
                                $likers .= ' ' . $this->l10n->t('and') . ' ' . $links[count($links) - 1];
                        } else {
-                               $likers = implode(', ', array_slice($links, 0, MAX_LIKERS - 1));
-                               $likers .= ' ' . $this->l10n->t('and %d other people', $total - MAX_LIKERS);
+                               $likers = implode(', ', array_slice($links, 0, $this->config->get('system', 'max_likers') - 1));
+                               $likers .= ' ' . $this->l10n->t('and %d other people', $total - $this->config->get('system', 'max_likers'));
                        }
 
                        $spanatts = "class=\"fakelink\" onclick=\"openClose('{$verb}list-$id');\"";
@@ -454,7 +454,7 @@ class Conversation
                                        . "'; </script>\r\n";
                        }
                } elseif ($mode === 'profile') {
-                       $items = $this->addChildren($items, false, $order, local_user());
+                       $items = $this->addChildren($items, false, $order, $uid);
 
                        if (!$update) {
                                $tab = !empty($_GET['tab']) ? trim($_GET['tab']) : 'posts';
@@ -629,12 +629,14 @@ class Conversation
 
                                        $body_html = ItemModel::prepareBody($item, true, $preview);
 
-                                       list($categories, $folders) = $this->item->determineCategoriesTerms($item, local_user());
+                                       [$categories, $folders] = $this->item->determineCategoriesTerms($item, local_user());
 
-                                       if (!empty($item['content-warning']) && $this->pConfig->get(local_user(), 'system', 'disable_cw', false)) {
+                                       if (!empty($item['title'])) {
+                                               $title = $item['title'];
+                                       } elseif (!empty($item['content-warning']) && $this->pConfig->get(local_user(), 'system', 'disable_cw', false)) {
                                                $title = ucfirst($item['content-warning']);
                                        } else {
-                                               $title = $item['title'];
+                                               $title = '';
                                        }
 
                                        $tmp_item = [
@@ -669,6 +671,7 @@ class Conversation
                                                'folders'              => $folders,
                                                'text'                 => strip_tags($body_html),
                                                'localtime'            => DateTimeFormat::local($item['created'], 'r'),
+                                               'utc'                  => DateTimeFormat::utc($item['created'], 'c'),
                                                'ago'                  => (($item['app']) ? $this->l10n->t('%s from %s', Temporal::getRelativeDate($item['created']), $item['app']) : Temporal::getRelativeDate($item['created'])),
                                                'location_html'        => $location_html,
                                                'indent'               => '',
@@ -842,7 +845,7 @@ class Conversation
                                        $row['owner-name']   = $row['causer-name'];
                                }
 
-                               if (($row['gravity'] == GRAVITY_PARENT) && !empty($row['causer-id'])) {
+                               if (in_array($row['gravity'], [GRAVITY_PARENT, GRAVITY_COMMENT]) && !empty($row['causer-id'])) {
                                        $causer = ['uid' => 0, 'id' => $row['causer-id'], 'network' => $row['causer-network'], 'url' => $row['causer-link']];
 
                                        $row['reshared'] = $this->l10n->t('%s reshared this.', '<a href="'. htmlentities(Contact::magicLinkByContact($causer)) .'">' . htmlentities($row['causer-name']) . '</a>');
@@ -928,7 +931,7 @@ class Conversation
                $condition = DBA::mergeConditions($condition,
                        ["`uid` IN (0, ?) AND (`vid` != ? OR `vid` IS NULL)", $uid, Verb::getID(Activity::FOLLOW)]);
 
-               $thread_items = Post::selectForUser(local_user(), array_merge(ItemModel::DISPLAY_FIELDLIST, ['pinned', 'contact-uid', 'gravity', 'post-type', 'post-reason']), $condition, $params);
+               $thread_items = Post::selectForUser($uid, array_merge(ItemModel::DISPLAY_FIELDLIST, ['pinned', 'contact-uid', 'gravity', 'post-type', 'post-reason']), $condition, $params);
 
                $items = [];