]> git.mxchange.org Git - friendica.git/blobdiff - src/Object/Post.php
Code standards
[friendica.git] / src / Object / Post.php
index e8bc29ac030908ee955b9112378572db3b48e7aa..dd2628d3ee7ed01825a2a10d02bd48ed4a710f32 100644 (file)
@@ -10,21 +10,20 @@ use Friendica\Content\Feature;
 use Friendica\Core\Addon;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
+use Friendica\Core\Logger;
 use Friendica\Core\PConfig;
 use Friendica\Core\Protocol;
+use Friendica\Core\Renderer;
 use Friendica\Database\DBA;
 use Friendica\Model\Contact;
 use Friendica\Model\Item;
 use Friendica\Model\Term;
+use Friendica\Util\Crypto;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Proxy as ProxyUtils;
+use Friendica\Util\Strings;
 use Friendica\Util\Temporal;
 
-require_once 'include/dba.php';
-require_once 'include/text.php';
-require_once 'boot.php';
-require_once 'include/conversation.php';
-
 /**
  * An item
  */
@@ -63,7 +62,7 @@ class Post extends BaseObject
                $this->setTemplate('wall');
                $this->toplevel = $this->getId() == $this->getDataValue('parent');
 
-               if (x($_SESSION, 'remote') && is_array($_SESSION['remote'])) {
+               if (!empty($_SESSION['remote']) && is_array($_SESSION['remote'])) {
                        foreach ($_SESSION['remote'] as $visitor) {
                                if ($visitor['cid'] == $this->getDataValue('contact-id')) {
                                        $this->visiting = true;
@@ -153,15 +152,17 @@ class Post extends BaseObject
 
                $shareable = in_array($conv->getProfileOwner(), [0, local_user()]) && $item['private'] != 1;
 
-               if (local_user() && link_compare($a->contact['url'], $item['author-link'])) {
-                       if ($item["event-id"] != 0) {
-                               $edpost = ["events/event/" . $item['event-id'], L10n::t("Edit")];
-                       } else {
-                               $edpost = ["editpost/" . $item['id'], L10n::t("Edit")];
+               $edpost = false;
+
+               if (local_user()) {
+                       if (Strings::compareLink($a->contact['url'], $item['author-link'])) {
+                               if ($item["event-id"] != 0) {
+                                       $edpost = ["events/event/" . $item['event-id'], L10n::t("Edit")];
+                               } else {
+                                       $edpost = ["editpost/" . $item['id'], L10n::t("Edit")];
+                               }
                        }
                        $dropping = in_array($item['uid'], [0, local_user()]);
-               } else {
-                       $edpost = false;
                }
 
                // Editing on items of not subscribed users isn't currently possible
@@ -186,23 +187,28 @@ class Post extends BaseObject
                        }
                }
 
-               // 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');
+               if ($origin && ($item['id'] != $item['parent']) && ($item['network'] == Protocol::ACTIVITYPUB)) {
+                       // ActivityPub doesn't allow removal of remote comments
+                       $delete = L10n::t('Delete locally');
+               } else {
+                       // 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'] : ''),
+                       'pagedrop' => $item['pagedrop'],
                        'select'   => L10n::t('Select'),
                        'delete'   => $delete,
                ];
 
-               if (!local_user() || ($item['uid'] == 0)) {
+               if (!local_user()) {
                        $drop = false;
                }
 
                $filer = (($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) ? L10n::t("save to folder") : false);
 
-               $profile_name = htmlentities($item['author-name']);
+               $profile_name = $item['author-name'];
                if (!empty($item['author-link']) && empty($item['author-name'])) {
                        $profile_name = $item['author-link'];
                }
@@ -242,7 +248,7 @@ class Post extends BaseObject
                $responses = get_responses($conv_responses, $response_verbs, $this, $item);
 
                foreach ($response_verbs as $value => $verbs) {
-                       $responses[$verbs]['output'] = x($conv_responses[$verbs], $item['uri']) ? format_like($conv_responses[$verbs][$item['uri']], $conv_responses[$verbs][$item['uri'] . '-l'], $verbs, $item['uri']) : '';
+                       $responses[$verbs]['output'] = !empty($conv_responses[$verbs][$item['uri']]) ? format_like($conv_responses[$verbs][$item['uri']], $conv_responses[$verbs][$item['uri'] . '-l'], $verbs, $item['uri']) : '';
                }
 
                /*
@@ -259,31 +265,31 @@ class Post extends BaseObject
                $tagger = '';
 
                if ($this->isToplevel()) {
-                       $thread = Item::selectFirstThreadForUser(local_user(), ['ignored'], ['iid' => $item['id']]);
-                       if (DBA::isResult($thread)) {
-                               $ignore = [
-                                       'do'        => L10n::t("ignore thread"),
-                                       'undo'      => L10n::t("unignore thread"),
-                                       'toggle'    => L10n::t("toggle ignore status"),
-                                       'classdo'   => $thread['ignored'] ? "hidden" : "",
-                                       'classundo' => $thread['ignored'] ? "" : "hidden",
-                                       'ignored'   => L10n::t('ignored'),
-                               ];
-                       }
+                       if(local_user()) {
+                               $thread = Item::selectFirstThreadForUser(local_user(), ['ignored'], ['iid' => $item['id']]);
+                               if (DBA::isResult($thread)) {
+                                       $ignore = [
+                                               'do'        => L10n::t("ignore thread"),
+                                               'undo'      => L10n::t("unignore thread"),
+                                               'toggle'    => L10n::t("toggle ignore status"),
+                                               'classdo'   => $thread['ignored'] ? "hidden" : "",
+                                               'classundo' => $thread['ignored'] ? "" : "hidden",
+                                               'ignored'   => L10n::t('ignored'),
+                                       ];
+                               }
 
-                       if ($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) {
-                               $isstarred = (($item['starred']) ? "starred" : "unstarred");
+                               if ($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) {
+                                       $isstarred = (($item['starred']) ? "starred" : "unstarred");
 
-                               $star = [
-                                       'do'        => L10n::t("add star"),
-                                       'undo'      => L10n::t("remove star"),
-                                       'toggle'    => L10n::t("toggle star status"),
-                                       'classdo'   => $item['starred'] ? "hidden" : "",
-                                       'classundo' => $item['starred'] ? "" : "hidden",
-                                       'starred'   => L10n::t('starred'),
-                               ];
+                                       $star = [
+                                               'do'        => L10n::t("add star"),
+                                               'undo'      => L10n::t("remove star"),
+                                               'toggle'    => L10n::t("toggle star status"),
+                                               'classdo'   => $item['starred'] ? "hidden" : "",
+                                               'classundo' => $item['starred'] ? "" : "hidden",
+                                               'starred'   => L10n::t('starred'),
+                                       ];
 
-                               if (Feature::isEnabled($conv->getProfileOwner(), 'commtag')) {
                                        $tagger = [
                                                'add'   => L10n::t("add tag"),
                                                'class' => "",
@@ -297,7 +303,7 @@ class Post extends BaseObject
                if ($conv->isWritable()) {
                        $buttons = [
                                'like'    => [L10n::t("I like this \x28toggle\x29"), L10n::t("like")],
-                               'dislike' => Feature::isEnabled($conv->getProfileOwner(), 'dislike') ? [L10n::t("I don't like this \x28toggle\x29"), L10n::t("dislike")] : '',
+                               'dislike' => [L10n::t("I don't like this \x28toggle\x29"), L10n::t("dislike")],
                        ];
                        if ($shareable) {
                                $buttons['share'] = [L10n::t('Share this'), L10n::t('share')];
@@ -312,7 +318,7 @@ class Post extends BaseObject
 
                localize_item($item);
 
-               $body = prepare_body($item, true);
+               $body = Item::prepareBody($item, true);
 
                list($categories, $folders) = get_cats_and_terms($item);
 
@@ -366,7 +372,7 @@ class Post extends BaseObject
                        'isevent'         => $isevent,
                        'attend'          => $attend,
                        'linktitle'       => L10n::t('View %s\'s profile @ %s', $profile_name, $item['author-link']),
-                       'olinktitle'      => L10n::t('View %s\'s profile @ %s', htmlentities($this->getOwnerName()), $item['owner-link']),
+                       'olinktitle'      => L10n::t('View %s\'s profile @ %s', $this->getOwnerName(), $item['owner-link']),
                        'to'              => L10n::t('to'),
                        'via'             => L10n::t('via'),
                        'wall'            => L10n::t('Wall-to-Wall'),
@@ -388,14 +394,14 @@ class Post extends BaseObject
                        'shiny'           => $shiny,
                        'owner_url'       => $this->getOwnerUrl(),
                        'owner_photo'     => $a->removeBaseURL(ProxyUtils::proxifyUrl($item['owner-avatar'], false, ProxyUtils::SIZE_THUMB)),
-                       'owner_name'      => htmlentities($owner_name_e),
-                       'plink'           => get_plink($item),
-                       'edpost'          => Feature::isEnabled($conv->getProfileOwner(), 'edit_posts') ? $edpost : '',
+                       'owner_name'      => $owner_name_e,
+                       'plink'           => Item::getPlink($item),
+                       'edpost'          => $edpost,
                        'isstarred'       => $isstarred,
-                       'star'            => Feature::isEnabled($conv->getProfileOwner(), 'star_posts') ? $star : '',
-                       'ignore'          => Feature::isEnabled($conv->getProfileOwner(), 'ignore_posts') ? $ignore : '',
+                       'star'            => $star,
+                       'ignore'          => $ignore,
                        'tagger'          => $tagger,
-                       'filer'           => Feature::isEnabled($conv->getProfileOwner(), 'filing') ? $filer : '',
+                       'filer'           => $filer,
                        'drop'            => $drop,
                        'vote'            => $buttons,
                        'like'            => $responses['like']['output'],
@@ -412,6 +418,7 @@ class Post extends BaseObject
                        'received'        => $item['received'],
                        'commented'       => $item['commented'],
                        'created_date'    => $item['created'],
+                       'return'          => ($a->cmd) ? bin2hex($a->cmd) : '',
                ];
 
                $arr = ['item' => $item, 'output' => $tmp_item];
@@ -487,10 +494,10 @@ class Post extends BaseObject
        {
                $item_id = $item->getId();
                if (!$item_id) {
-                       logger('[ERROR] Post::addChild : Item has no ID!!', LOGGER_DEBUG);
+                       Logger::log('[ERROR] Post::addChild : Item has no ID!!', Logger::DEBUG);
                        return false;
                } elseif ($this->getChild($item->getId())) {
-                       logger('[WARN] Post::addChild : Item already exists (' . $item->getId() . ').', LOGGER_DEBUG);
+                       Logger::log('[WARN] Post::addChild : Item already exists (' . $item->getId() . ').', Logger::DEBUG);
                        return false;
                }
                /*
@@ -584,7 +591,7 @@ class Post extends BaseObject
                                return true;
                        }
                }
-               logger('[WARN] Item::removeChild : Item is not a child (' . $id . ').', LOGGER_DEBUG);
+               Logger::log('[WARN] Item::removeChild : Item is not a child (' . $id . ').', Logger::DEBUG);
                return false;
        }
 
@@ -650,7 +657,7 @@ class Post extends BaseObject
        public function getDataValue($name)
        {
                if (!isset($this->data[$name])) {
-                       // logger('[ERROR] Item::getDataValue : Item has no value name "'. $name .'".', LOGGER_DEBUG);
+                       // Logger::log('[ERROR] Item::getDataValue : Item has no value name "'. $name .'".', Logger::DEBUG);
                        return false;
                }
 
@@ -666,8 +673,8 @@ class Post extends BaseObject
         */
        private function setTemplate($name)
        {
-               if (!x($this->available_templates, $name)) {
-                       logger('[ERROR] Item::setTemplate : Template not available ("' . $name . '").', LOGGER_DEBUG);
+               if (empty($this->available_templates[$name])) {
+                       Logger::log('[ERROR] Item::setTemplate : Template not available ("' . $name . '").', Logger::DEBUG);
                        return false;
                }
 
@@ -784,8 +791,8 @@ class Post extends BaseObject
                                $uid = $parent_uid;
                        }
 
-                       $template = get_markup_template($this->getCommentBoxTemplate());
-                       $comment_box = replace_macros($template, [
+                       $template = Renderer::getMarkupTemplate($this->getCommentBoxTemplate());
+                       $comment_box = Renderer::replaceMacros($template, [
                                '$return_path' => $a->query_string,
                                '$threaded'    => $this->isThreaded(),
                                '$jsreload'    => '',
@@ -808,11 +815,11 @@ class Post extends BaseObject
                                '$edurl'       => L10n::t('Link'),
                                '$edattach'    => L10n::t('Link or Media'),
                                '$prompttext'  => L10n::t('Please enter a image/video/audio/webpage URL:'),
-                               '$preview'     => ((Feature::isEnabled($conv->getProfileOwner(), 'preview')) ? L10n::t('Preview') : ''),
+                               '$preview'     => L10n::t('Preview'),
                                '$indent'      => $indent,
                                '$sourceapp'   => L10n::t($a->sourcename),
                                '$ww'          => $conv->getMode() === 'network' ? $ww : '',
-                               '$rand_num'    => random_digits(12)
+                               '$rand_num'    => Crypto::randomDigits(12)
                        ]);
                }
 
@@ -850,8 +857,8 @@ class Post extends BaseObject
                                        $this->owner_name = $a->page_contact['name'];
                                        $this->wall_to_wall = true;
                                } elseif ($this->getDataValue('owner-link')) {
-                                       $owner_linkmatch = (($this->getDataValue('owner-link')) && link_compare($this->getDataValue('owner-link'), $this->getDataValue('author-link')));
-                                       $alias_linkmatch = (($this->getDataValue('alias')) && link_compare($this->getDataValue('alias'), $this->getDataValue('author-link')));
+                                       $owner_linkmatch = (($this->getDataValue('owner-link')) && Strings::compareLink($this->getDataValue('owner-link'), $this->getDataValue('author-link')));
+                                       $alias_linkmatch = (($this->getDataValue('alias')) && Strings::compareLink($this->getDataValue('alias'), $this->getDataValue('author-link')));
                                        $owner_namematch = (($this->getDataValue('owner-name')) && $this->getDataValue('owner-name') == $this->getDataValue('author-name'));
 
                                        if (!$owner_linkmatch && !$alias_linkmatch && !$owner_namematch) {