X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContent%2FConversation.php;h=af96deebdb2b7a9d5f2a1b5f480c8bfd8533f1f2;hb=e56a53647bd5469551bf4f9ef2df50a5dd16b943;hp=f0bc405f2e21971e0cc64cb684a770a50f5c2aa6;hpb=64d181c1ccba5c59cc2316d6e7c1471e9495dae8;p=friendica.git diff --git a/src/Content/Conversation.php b/src/Content/Conversation.php index f0bc405f2e..af96deebdb 100644 --- a/src/Content/Conversation.php +++ b/src/Content/Conversation.php @@ -1,6 +1,6 @@ activity = $activity; $this->item = $item; @@ -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) { @@ -845,8 +844,8 @@ class Conversation } if (($row['gravity'] == GRAVITY_PARENT) && !empty($row['causer-id'])) { - $causer = ['uid' => 0, 'id' => $row['causer-id'], - 'network' => $row['causer-network'], 'url' => $row['causer-link']]; + $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) {