X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2FObject%2FPost.php;h=2ef53d075ce1c467770539a3a145a569ced16803;hb=0185c912460eef341b83d1724ded693fff151b81;hp=ba05a168d2cae3c0a73a8917d5aa9567e21f071c;hpb=fecfcd5025cedf1ed3e9fb9ae16d21266cf61674;p=friendica.git diff --git a/src/Object/Post.php b/src/Object/Post.php index ba05a168d2..2ef53d075c 100644 --- a/src/Object/Post.php +++ b/src/Object/Post.php @@ -6,6 +6,7 @@ namespace Friendica\Object; use Friendica\BaseObject; use Friendica\Content\ContactSelector; +use Friendica\Content\Feature; use Friendica\Core\Addon; use Friendica\Core\Config; use Friendica\Core\Hook; @@ -13,11 +14,13 @@ use Friendica\Core\L10n; use Friendica\Core\Logger; use Friendica\Core\PConfig; use Friendica\Core\Protocol; +use Friendica\Core\Session; use Friendica\Core\Renderer; use Friendica\Database\DBA; use Friendica\Model\Contact; use Friendica\Model\Item; use Friendica\Model\Term; +use Friendica\Model\User; use Friendica\Util\Crypto; use Friendica\Util\DateTimeFormat; use Friendica\Util\Proxy as ProxyUtils; @@ -68,20 +71,15 @@ class Post extends BaseObject $this->setTemplate('wall'); $this->toplevel = $this->getId() == $this->getDataValue('parent'); - if (!empty($_SESSION['remote']) && is_array($_SESSION['remote'])) { - foreach ($_SESSION['remote'] as $visitor) { - if ($visitor['cid'] == $this->getDataValue('contact-id')) { - $this->visiting = true; - break; - } - } + if (!empty(Session::getUserIDForVisitorContactID($this->getDataValue('contact-id')))) { + $this->visiting = true; } $this->writable = $this->getDataValue('writable') || $this->getDataValue('self'); $author = ['uid' => 0, 'id' => $this->getDataValue('author-id'), 'network' => $this->getDataValue('author-network'), 'url' => $this->getDataValue('author-link')]; - $this->redirect_url = Contact::magicLinkbyContact($author); + $this->redirect_url = Contact::magicLinkByContact($author); if (!$this->isToplevel()) { $this->threaded = true; } @@ -221,8 +219,8 @@ class Post extends BaseObject $author = ['uid' => 0, 'id' => $item['author-id'], 'network' => $item['author-network'], 'url' => $item['author-link']]; - if (local_user() || remote_user()) { - $profile_link = Contact::magicLinkbyContact($author); + if (Session::isAuthenticated()) { + $profile_link = Contact::magicLinkByContact($author); } else { $profile_link = $item['author-link']; } @@ -236,7 +234,7 @@ class Post extends BaseObject $location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate)); // process action responses - e.g. like/dislike/attend/agree/whatever - $response_verbs = ['like', 'dislike']; + $response_verbs = ['like', 'dislike', 'announce']; $isevent = false; $attend = []; @@ -364,6 +362,7 @@ class Post extends BaseObject 'tags' => $tags['tags'], 'hashtags' => $tags['hashtags'], 'mentions' => $tags['mentions'], + 'implicit_mentions' => $tags['implicit_mentions'], 'txt_cats' => L10n::t('Categories:'), 'txt_folders' => L10n::t('Filed under:'), 'has_cats' => ((count($categories)) ? 'true' : ''), @@ -397,7 +396,7 @@ class Post extends BaseObject 'location' => $location_e, 'indent' => $indent, 'shiny' => $shiny, - 'owner_self' => $item['author-link'] == defaults($_SESSION, 'my_url', null), + 'owner_self' => $item['author-link'] == Session::get('my_url'), 'owner_url' => $this->getOwnerUrl(), 'owner_photo' => $a->removeBaseURL(ProxyUtils::proxifyUrl($item['owner-avatar'], false, ProxyUtils::SIZE_THUMB)), 'owner_name' => $owner_name_e, @@ -414,6 +413,7 @@ class Post extends BaseObject 'dislike' => $responses['dislike']['output'], 'responses' => $responses, 'switchcomment' => L10n::t('Comment'), + 'reply_label' => L10n::t('Reply to %s', $name_e), 'comment' => $comment, 'previewing' => $conv->isPreview() ? ' preview ' : '', 'wait' => L10n::t('Please wait'), @@ -421,13 +421,14 @@ class Post extends BaseObject 'edited' => $edited, 'network' => $item["network"], 'network_name' => ContactSelector::networkToName($item['network'], $item['author-link']), + 'network_icon' => ContactSelector::networkToIcon($item['network'], $item['author-link']), 'received' => $item['received'], 'commented' => $item['commented'], 'created_date' => $item['created'], 'return' => ($a->cmd) ? bin2hex($a->cmd) : '', 'delivery' => [ 'queue_count' => $item['delivery_queue_count'], - 'queue_done' => $item['delivery_queue_done'], + 'queue_done' => $item['delivery_queue_done'] + $item['delivery_queue_failed'], /// @todo Possibly display it separately in the future 'notifier_pending' => L10n::t('Notifier task is pending'), 'delivery_pending' => L10n::t('Delivery to remote servers is pending'), 'delivery_underway' => L10n::t('Delivery to remote servers is underway'), @@ -448,13 +449,13 @@ class Post extends BaseObject foreach ($children as $child) { $result['children'][] = $child->getTemplateData($conv_responses, $thread_level + 1); } + // Collapse if (($nb_children > 2) || ($thread_level > 1)) { $result['children'][0]['comment_firstcollapsed'] = true; $result['children'][0]['num_comments'] = L10n::tt('%d comment', '%d comments', $total_children); - $result['children'][0]['hidden_comments_num'] = $total_children; - $result['children'][0]['hidden_comments_text'] = L10n::tt('comment', 'comments', $total_children); - $result['children'][0]['hide_text'] = L10n::t('show more'); + $result['children'][0]['show_text'] = L10n::t('Show more'); + $result['children'][0]['hide_text'] = L10n::t('Show fewer'); if ($thread_level > 1) { $result['children'][$nb_children - 1]['comment_lastcollapsed'] = true; } else { @@ -773,13 +774,20 @@ class Post extends BaseObject * Get default text for the comment box * * @return string + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ private function getDefaultText() { $a = self::getApp(); - if (!local_user() || empty($a->profile['addr'])) { - return; + if (!local_user()) { + return ''; + } + + $owner = User::getOwnerDataById($a->user['uid']); + + if (!Feature::isEnabled(local_user(), 'explicit_mentions')) { + return ''; } $item = Item::selectFirst(['author-addr'], ['id' => $this->getId()]); @@ -788,18 +796,17 @@ class Post extends BaseObject return ''; } - if ($item['author-addr'] != $a->profile['addr']) { + if ($item['author-addr'] != $owner['addr']) { $text = '@' . $item['author-addr'] . ' '; } else { $text = ''; } - $terms = Term::tagArrayFromItemId($this->getId(), TERM_MENTION); - + $terms = Term::tagArrayFromItemId($this->getId(), [Term::MENTION, Term::IMPLICIT_MENTION]); foreach ($terms as $term) { $profile = Contact::getDetailsByURL($term['url']); - if (!empty($profile['addr']) && ($profile['contact-type'] != Contact::TYPE_COMMUNITY) && - ($profile['addr'] != $a->profile['addr']) && !strstr($text, $profile['addr'])) { + if (!empty($profile['addr']) && (defaults($profile, 'contact-type', Contact::TYPE_UNKNOWN) != Contact::TYPE_COMMUNITY) && + ($profile['addr'] != $owner['addr']) && !strstr($text, $profile['addr'])) { $text .= '@' . $profile['addr'] . ' '; } } @@ -938,7 +945,7 @@ class Post extends BaseObject $owner = ['uid' => 0, 'id' => $this->getDataValue('owner-id'), 'network' => $this->getDataValue('owner-network'), 'url' => $this->getDataValue('owner-link')]; - $this->owner_url = Contact::magicLinkbyContact($owner); + $this->owner_url = Contact::magicLinkByContact($owner); } } }