X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FObject%2FPost.php;h=bceee38444ca4f88bcec7caf08198b7b236df91b;hb=a7d2f126eb066ba99388beaded74484dc81e4c23;hp=67ce3b7cce88ccd5ee0fe998ddae8460cf7f92bb;hpb=30c1cc0e8cec5438fd8fe36bd4ea00991dc01934;p=friendica.git diff --git a/src/Object/Post.php b/src/Object/Post.php index 67ce3b7cce..bceee38444 100644 --- a/src/Object/Post.php +++ b/src/Object/Post.php @@ -8,11 +8,13 @@ use Friendica\BaseObject; use Friendica\Content\ContactSelector; use Friendica\Content\Feature; use Friendica\Core\Addon; +use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\PConfig; use Friendica\Database\DBM; use Friendica\Model\Contact; -use Friendica\Model\Profile; +use Friendica\Util\DateTimeFormat; +use Friendica\Util\Temporal; use dba; require_once 'include/dba.php'; @@ -68,14 +70,14 @@ class Post extends BaseObject } $this->writable = $this->getDataValue('writable') || $this->getDataValue('self'); - $this->redirect_url = 'redir/' . $this->getDataValue('cid'); + $this->redirect_url = Contact::magicLinkById($this->getDataValue('cid')); if (!$this->isToplevel()) { $this->threaded = true; } // Prepare the children - if (count($data['children'])) { + if (!empty($data['children'])) { foreach ($data['children'] as $item) { // Only add will be displayed if ($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { @@ -123,8 +125,8 @@ class Post extends BaseObject if (strtotime($item['edited']) - strtotime($item['created']) > 1) { $edited = [ 'label' => L10n::t('This entry was edited'), - 'date' => datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r'), - 'relative' => relative_date($item['edited']) + 'date' => DateTimeFormat::local($item['edited'], 'r'), + 'relative' => Temporal::getRelativeDate($item['edited']) ]; } $commentww = ''; @@ -169,49 +171,49 @@ class Post extends BaseObject $dropping = true; } + $origin = $item['origin']; + + if (!$origin) { + /// @todo This shouldn't be done as query here, but better during the data creation. + // it is now done here, since during the RC phase we shouldn't make to intense changes. + $parent = dba::selectFirst('item', ['origin'], ['id' => $item['parent']]); + if (DBM::is_result($parent)) { + $origin = $parent['origin']; + } + } + + // Showing the one or the other text, depending upon if we can only hide it or really delete it. + $delete = $origin ? L10n::t('Delete globally') : L10n::t('Remove locally'); + $drop = [ 'dropping' => $dropping, 'pagedrop' => ((Feature::isEnabled($conv->getProfileOwner(), 'multi_delete')) ? $item['pagedrop'] : ''), 'select' => L10n::t('Select'), - 'delete' => L10n::t('Delete'), + 'delete' => $delete, ]; + if (!local_user() || ($item['uid'] == 0)) { + $drop = false; + } + $filer = (($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) ? L10n::t("save to folder") : false); + if ($item['network'] == NETWORK_FEED) { + $item['author-avatar'] = $item['contact-avatar']; + $item['author-name'] = $item['contact-name']; + $item['owner-avatar'] = $item['contact-avatar']; + $item['owner-name'] = $item['contact-name']; + } + $diff_author = !link_compare($item['url'], $item['author-link']); $profile_name = htmlentities(((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); if ($item['author-link'] && (!$item['author-name'])) { $profile_name = $item['author-link']; } - $sp = false; - $profile_link = best_link_url($item, $sp); - if ($profile_link === 'mailbox') { - $profile_link = ''; - } - - if ($sp) { + $profile_link = Contact::magicLinkById($item['author-id']); + if (strpos($profile_link, 'redir/') === 0) { $sparkle = ' sparkle'; - } else { - $profile_link = Profile::zrl($profile_link); - } - - if (!isset($item['author-thumb']) || ($item['author-thumb'] == "")) { - $author_contact = Contact::getDetailsByURL($item['author-link'], $conv->getProfileOwner()); - if ($author_contact["thumb"]) { - $item['author-thumb'] = $author_contact["thumb"]; - } else { - $item['author-thumb'] = $item['author-avatar']; - } - } - - if (!isset($item['owner-thumb']) || ($item['owner-thumb'] == "")) { - $owner_contact = Contact::getDetailsByURL($item['owner-link'], $conv->getProfileOwner()); - if ($owner_contact["thumb"]) { - $item['owner-thumb'] = $owner_contact["thumb"]; - } else { - $item['owner-thumb'] = $item['owner-avatar']; - } } $locate = ['location' => $item['location'], 'coord' => $item['coord'], 'html' => '']; @@ -300,7 +302,7 @@ class Post extends BaseObject $comment = $this->getCommentBox($indent); - if (strcmp(datetime_convert('UTC', 'UTC', $item['created']), datetime_convert('UTC', 'UTC', 'now - 12 hours')) > 0) { + if (strcmp(DateTimeFormat::utc($item['created']), DateTimeFormat::utc('now - 12 hours')) > 0) { $shiny = 'shiny'; } @@ -313,28 +315,35 @@ class Post extends BaseObject $body_e = $body; $text_e = strip_tags($body); $name_e = $profile_name; - $title_e = $item['title']; + + if (!empty($item['content-warning']) && PConfig::get(local_user(), 'system', 'disable_cw', false)) { + $title_e = ucfirst($item['content-warning']); + } else { + $title_e = $item['title']; + } + $location_e = $location; $owner_name_e = $this->getOwnerName(); // Disable features that aren't available in several networks - if (!in_array($item["item_network"], [NETWORK_DFRN, NETWORK_DIASPORA]) && isset($buttons["dislike"])) { + if (!in_array($item["network"], [NETWORK_DFRN, NETWORK_DIASPORA]) && isset($buttons["dislike"])) { unset($buttons["dislike"]); $isevent = false; $tagger = ''; } - if (($item["item_network"] == NETWORK_FEED) && isset($buttons["like"])) { + if (($item["network"] == NETWORK_FEED) && isset($buttons["like"])) { unset($buttons["like"]); } - if (($item["item_network"] == NETWORK_MAIL) && isset($buttons["like"])) { + if (($item["network"] == NETWORK_MAIL) && isset($buttons["like"])) { unset($buttons["like"]); } $tmp_item = [ 'template' => $this->getTemplate(), 'type' => implode("", array_slice(explode("/", $item['verb']), -1)), + 'suppress_tags' => Config::get('system', 'suppress_tags'), 'tags' => $item['tags'], 'hashtags' => $item['hashtags'], 'mentions' => $item['mentions'], @@ -359,20 +368,20 @@ class Post extends BaseObject 'profile_url' => $profile_link, 'item_photo_menu' => item_photo_menu($item), 'name' => $name_e, - 'thumb' => $a->remove_baseurl(proxy_url($item['author-thumb'], false, PROXY_SIZE_THUMB)), + 'thumb' => $a->remove_baseurl(proxy_url($item['author-avatar'], false, PROXY_SIZE_THUMB)), 'osparkle' => $osparkle, 'sparkle' => $sparkle, 'title' => $title_e, - 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'), - 'ago' => $item['app'] ? L10n::t('%s from %s', relative_date($item['created']), $item['app']) : relative_date($item['created']), + 'localtime' => DateTimeFormat::local($item['created'], 'r'), + 'ago' => $item['app'] ? L10n::t('%s from %s', Temporal::getRelativeDate($item['created']), $item['app']) : Temporal::getRelativeDate($item['created']), 'app' => $item['app'], - 'created' => relative_date($item['created']), + 'created' => Temporal::getRelativeDate($item['created']), 'lock' => $lock, 'location' => $location_e, 'indent' => $indent, 'shiny' => $shiny, 'owner_url' => $this->getOwnerUrl(), - 'owner_photo' => $a->remove_baseurl(proxy_url($item['owner-thumb'], false, PROXY_SIZE_THUMB)), + 'owner_photo' => $a->remove_baseurl(proxy_url($item['owner-avatar'], false, PROXY_SIZE_THUMB)), 'owner_name' => htmlentities($owner_name_e), 'plink' => get_plink($item), 'edpost' => Feature::isEnabled($conv->getProfileOwner(), 'edit_posts') ? $edpost : '', @@ -392,8 +401,8 @@ class Post extends BaseObject 'wait' => L10n::t('Please wait'), 'thread_level' => $thread_level, 'edited' => $edited, - 'network' => $item["item_network"], - 'network_name' => ContactSelector::networkToName($item['item_network'], $profile_link), + 'network' => $item["network"], + 'network_name' => ContactSelector::networkToName($item['network'], $profile_link), 'received' => $item['received'], 'commented' => $item['commented'], 'created_date' => $item['created'], @@ -829,7 +838,7 @@ class Post extends BaseObject // This will have been stored in $a->page_contact by our calling page. // Put this person as the wall owner of the wall-to-wall notice. - $this->owner_url = Profile::zrl($a->page_contact['url']); + $this->owner_url = Contact::magicLink($a->page_contact['url']); $this->owner_photo = $a->page_contact['thumb']; $this->owner_name = $a->page_contact['name']; $this->wall_to_wall = true; @@ -851,14 +860,7 @@ class Post extends BaseObject $this->owner_photo = $this->getDataValue('owner-avatar'); $this->owner_name = $this->getDataValue('owner-name'); $this->wall_to_wall = true; - // If it is our contact, use a friendly redirect link - if ($this->getDataValue('network') === NETWORK_DFRN - && link_compare($this->getDataValue('owner-link'), $this->getDataValue('url')) - ) { - $this->owner_url = $this->getRedirectUrl(); - } else { - $this->owner_url = Profile::zrl($this->getDataValue('owner-link')); - } + $this->owner_url = Contact::magicLinkById($this->getDataValue('owner-id')); } } }