X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContent%2FConversation.php;h=e441e8ba4b3b7cae3e9fcf317c5887cb3e09dfcc;hb=ece09f4919f9692921c40d5811e17b3388634c20;hp=f0bc405f2e21971e0cc64cb684a770a50f5c2aa6;hpb=64d181c1ccba5c59cc2316d6e7c1471e9495dae8;p=friendica.git
diff --git a/src/Content/Conversation.php b/src/Content/Conversation.php
index f0bc405f2e..e441e8ba4b 100644
--- a/src/Content/Conversation.php
+++ b/src/Content/Conversation.php
@@ -1,6 +1,6 @@
activity = $activity;
$this->item = $item;
@@ -157,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;
}
@@ -192,11 +189,12 @@ class Conversation
* @return string formatted text
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- public function formatActivity(array $links, $verb, $id) {
+ public function formatActivity(array $links, $verb, $id)
+ {
$this->profiler->startRecording('rendering');
- $o = '';
+ $o = '';
$expanded = '';
- $phrase = '';
+ $phrase = '';
$total = count($links);
if ($total == 1) {
@@ -205,32 +203,32 @@ class Conversation
// Phrase if there is only one liker. In other cases it will be uses for the expanded
// list which show all likers
switch ($verb) {
- case 'like' :
+ case 'like':
$phrase = $this->l10n->t('%s likes this.', $likers);
break;
- case 'dislike' :
+ case 'dislike':
$phrase = $this->l10n->t('%s doesn\'t like this.', $likers);
break;
- case 'attendyes' :
+ case 'attendyes':
$phrase = $this->l10n->t('%s attends.', $likers);
break;
- case 'attendno' :
+ case 'attendno':
$phrase = $this->l10n->t('%s doesn\'t attend.', $likers);
break;
- case 'attendmaybe' :
+ case 'attendmaybe':
$phrase = $this->l10n->t('%s attends maybe.', $likers);
break;
- case 'announce' :
+ case 'announce':
$phrase = $this->l10n->t('%s reshared this.', $likers);
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 .= ' ' . $this->l10n->t('and') . ' ' . $links[count($links) - 1];
+ } else {
+ $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');\"";
@@ -246,7 +244,7 @@ class Conversation
$explikers = $this->l10n->t('%s don\'t like this.', $likers);
break;
case 'attendyes':
- $phrase = $this->l10n->t('%2$d people attend', $spanatts, $total);
+ $phrase = $this->l10n->t('%2$d people attend', $spanatts, $total);
$explikers = $this->l10n->t('%s attend.', $likers);
break;
case 'attendno':
@@ -268,8 +266,8 @@ class Conversation
$o .= Renderer::replaceMacros(Renderer::getMarkupTemplate('voting_fakelink.tpl'), [
'$phrase' => $phrase,
- '$type' => $verb,
- '$id' => $id
+ '$type' => $verb,
+ '$id' => $id
]);
$o .= $expanded;
@@ -287,15 +285,15 @@ class Conversation
$this->profiler->startRecording('rendering');
$o = '';
- $x['allow_location'] = $x['allow_location'] ?? $user['allow_location'];
+ $x['allow_location'] = $x['allow_location'] ?? $user['allow_location'];
$x['default_location'] = $x['default_location'] ?? $user['default-location'];
- $x['nickname'] = $x['nickname'] ?? $user['nickname'];
- $x['lockstate'] = $x['lockstate'] ?? ACL::getLockstateForUserId($user['uid']) ? 'lock' : 'unlock';
- $x['acl'] = $x['acl'] ?? ACL::getFullSelectorHTML($this->page, $user['uid'], true);
- $x['bang'] = $x['bang'] ?? '';
- $x['visitor'] = $x['visitor'] ?? 'block';
- $x['is_owner'] = $x['is_owner'] ?? true;
- $x['profile_uid'] = $x['profile_uid'] ?? local_user();
+ $x['nickname'] = $x['nickname'] ?? $user['nickname'];
+ $x['lockstate'] = $x['lockstate'] ?? ACL::getLockstateForUserId($user['uid']) ? 'lock' : 'unlock';
+ $x['acl'] = $x['acl'] ?? ACL::getFullSelectorHTML($this->page, $user['uid'], true);
+ $x['bang'] = $x['bang'] ?? '';
+ $x['visitor'] = $x['visitor'] ?? 'block';
+ $x['is_owner'] = $x['is_owner'] ?? true;
+ $x['profile_uid'] = $x['profile_uid'] ?? local_user();
$geotag = !empty($x['allow_location']) ? Renderer::replaceMacros(Renderer::getMarkupTemplate('jot_geotag.tpl'), []) : '';
@@ -442,16 +440,16 @@ class Conversation
. "; var netargs = '" . substr($this->args->getCommand(), 8)
. '?f='
. (!empty($_GET['contactid']) ? '&contactid=' . rawurlencode($_GET['contactid']) : '')
- . (!empty($_GET['search']) ? '&search=' . rawurlencode($_GET['search']) : '')
- . (!empty($_GET['star']) ? '&star=' . rawurlencode($_GET['star']) : '')
- . (!empty($_GET['order']) ? '&order=' . rawurlencode($_GET['order']) : '')
- . (!empty($_GET['bmark']) ? '&bmark=' . rawurlencode($_GET['bmark']) : '')
- . (!empty($_GET['liked']) ? '&liked=' . rawurlencode($_GET['liked']) : '')
- . (!empty($_GET['conv']) ? '&conv=' . rawurlencode($_GET['conv']) : '')
- . (!empty($_GET['nets']) ? '&nets=' . rawurlencode($_GET['nets']) : '')
- . (!empty($_GET['cmin']) ? '&cmin=' . rawurlencode($_GET['cmin']) : '')
- . (!empty($_GET['cmax']) ? '&cmax=' . rawurlencode($_GET['cmax']) : '')
- . (!empty($_GET['file']) ? '&file=' . rawurlencode($_GET['file']) : '')
+ . (!empty($_GET['search']) ? '&search=' . rawurlencode($_GET['search']) : '')
+ . (!empty($_GET['star']) ? '&star=' . rawurlencode($_GET['star']) : '')
+ . (!empty($_GET['order']) ? '&order=' . rawurlencode($_GET['order']) : '')
+ . (!empty($_GET['bmark']) ? '&bmark=' . rawurlencode($_GET['bmark']) : '')
+ . (!empty($_GET['liked']) ? '&liked=' . rawurlencode($_GET['liked']) : '')
+ . (!empty($_GET['conv']) ? '&conv=' . rawurlencode($_GET['conv']) : '')
+ . (!empty($_GET['nets']) ? '&nets=' . rawurlencode($_GET['nets']) : '')
+ . (!empty($_GET['cmin']) ? '&cmin=' . rawurlencode($_GET['cmin']) : '')
+ . (!empty($_GET['cmax']) ? '&cmax=' . rawurlencode($_GET['cmax']) : '')
+ . (!empty($_GET['file']) ? '&file=' . rawurlencode($_GET['file']) : '')
. "'; \r\n";
}
@@ -592,7 +590,7 @@ class Conversation
$tags = Tag::populateFromItem($item);
- $author = ['uid' => 0, 'id' => $item['author-id'], 'network' => $item['author-network'], 'url' => $item['author-link']];
+ $author = ['uid' => 0, 'id' => $item['author-id'], 'network' => $item['author-network'], 'url' => $item['author-link']];
$profile_link = Contact::magicLinkByContact($author);
$sparkle = '';
@@ -631,7 +629,7 @@ 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)) {
$title = ucfirst($item['content-warning']);
@@ -671,6 +669,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' => '',
@@ -686,7 +685,7 @@ class Conversation
'like_html' => '',
'dislike_html ' => '',
'comment_html' => '',
- 'conv' => (($preview) ? '' : ['href'=> 'display/'.$item['guid'], 'title'=> $this->l10n->t('View in context')]),
+ 'conv' => ($preview ? '' : ['href' => 'display/' . $item['guid'], 'title' => $this->l10n->t('View in context')]),
'previewing' => $previewing,
'wait' => $this->l10n->t('Please wait'),
'thread_level' => 1,
@@ -695,10 +694,9 @@ class Conversation
$arr = ['item' => $item, 'output' => $tmp_item];
Hook::callAll('display_item', $arr);
- $threads[$threadsid]['id'] = $item['id'];
+ $threads[$threadsid]['id'] = $item['id'];
$threads[$threadsid]['network'] = $item['network'];
- $threads[$threadsid]['items'] = [$arr['output']];
-
+ $threads[$threadsid]['items'] = [$arr['output']];
}
} else {
// Normal View
@@ -756,7 +754,7 @@ class Conversation
'$mode' => $mode,
'$update' => $update,
'$threads' => $threads,
- '$dropping' => ($page_dropping ? $this->l10n->t('Delete Selected Items') : False),
+ '$dropping' => ($page_dropping ? $this->l10n->t('Delete Selected Items') : false),
]);
$this->profiler->stopRecording();
@@ -794,7 +792,8 @@ class Conversation
*
* @return array items with parents and comments
*/
- private function addRowInformation(array $row, array $activity) {
+ private function addRowInformation(array $row, array $activity)
+ {
$this->profiler->startRecording('rendering');
if ($row['uid'] == 0) {
@@ -844,9 +843,9 @@ class Conversation
$row['owner-name'] = $row['causer-name'];
}
- if (($row['gravity'] == GRAVITY_PARENT) && !empty($row['causer-id'])) {
- $causer = ['uid' => 0, 'id' => $row['causer-id'],
- 'network' => $row['causer-network'], 'url' => $row['causer-link']];
+ 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.', '' . htmlentities($row['causer-name']) . '');
}
$row['direction'] = ['direction' => 3, 'title' => (empty($row['causer-id']) ? $this->l10n->t('Reshared') : $this->l10n->t('Reshared by %s <%s>', $row['causer-name'], $row['causer-link']))];
@@ -886,7 +885,8 @@ class Conversation
* @return array items with parents and comments
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- private function addChildren(array $parents, $block_authors, $order, $uid) {
+ private function addChildren(array $parents, $block_authors, $order, $uid)
+ {
$this->profiler->startRecording('rendering');
if (count($parents) > 1) {
$max_comments = $this->config->get('system', 'max_comments', 100);
@@ -980,6 +980,7 @@ class Conversation
if ($thr_parent == $parent['uri-id']) {
$item['children'] = $this->getItemChildren($item_list, $item);
+
$children[] = $item;
unset($item_list[$i]);
}
@@ -1059,7 +1060,7 @@ class Conversation
if (isset($child['children']) && count($child['children'])) {
// This helps counting only the regular posts
- $count_post_closure = function($var) {
+ $count_post_closure = function ($var) {
$this->profiler->stopRecording();
return $var['verb'] === Activity::POST;
};
@@ -1073,7 +1074,7 @@ class Conversation
// Searches the post item in the children
$j = 0;
- while($child['children'][$j]['verb'] !== Activity::POST && $j < count($child['children'])) {
+ while ($child['children'][$j]['verb'] !== Activity::POST && $j < count($child['children'])) {
$j ++;
}
@@ -1144,9 +1145,8 @@ class Conversation
* items and add them as children of their top-level post.
*/
foreach ($parents as $i => $parent) {
- $parents[$i]['children'] =
- array_merge($this->getItemChildren($item_array, $parent, true),
- $this->getItemChildren($item_array, $parent, false));
+ $parents[$i]['children'] = array_merge($this->getItemChildren($item_array, $parent, true),
+ $this->getItemChildren($item_array, $parent, false));
}
foreach ($parents as $i => $parent) {