]> git.mxchange.org Git - friendica.git/blobdiff - mod/display.php
Fix for displaying public items
[friendica.git] / mod / display.php
index 6a07fa17622b631978b3c9e8e59a0f8baf6c1715..2600dfd26d020e06d409b8d31a52faf7c2ea147e 100644 (file)
@@ -59,19 +59,19 @@ function display_init(App $a)
 
                // Is it an item with uid=0?
                if (!DBM::is_result($item)) {
-                       $item = Item::selectFirstForUser(local_user(), $fields, ['guid' => $a->argv[1], 'private' => false, 'uid' => 0]);
+                       $item = Item::selectFirstForUser(local_user(), $fields, ['guid' => $a->argv[1], 'private' => [0, 2], 'uid' => 0]);
                }
        } elseif (($a->argc == 3) && ($nick == 'feed-item')) {
-               $item = Item::selectFirstForUser(local_user(), $fields, ['id' => $a->argv[2], 'private' => false, 'uid' => 0]);
+               $item = Item::selectFirstForUser(local_user(), $fields, ['id' => $a->argv[2], 'private' => [0, 2], 'uid' => 0]);
        }
 
-       if (!DBM::is_result($item) || $item['deleted']) {
+       if (!DBM::is_result($item)) {
                $a->error = 404;
                notice(L10n::t('Item not found.') . EOL);
                return;
        }
 
-       if (strstr($_SERVER['HTTP_ACCEPT'], 'application/atom+xml')) {
+       if (!empty($_SERVER['HTTP_ACCEPT']) && strstr($_SERVER['HTTP_ACCEPT'], 'application/atom+xml')) {
                logger('Directly serving XML for id '.$item["id"], LOGGER_DEBUG);
                displayShowFeed($item["id"], false);
        }
@@ -140,29 +140,29 @@ function display_fetchauthor($a, $item)
        if (!$skip) {
                $author = "";
                preg_match("/author='(.*?)'/ism", $attributes, $matches);
-               if ($matches[1] != "") {
+               if (!empty($matches[1])) {
                        $profiledata["name"] = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
                }
                preg_match('/author="(.*?)"/ism', $attributes, $matches);
-               if ($matches[1] != "") {
+               if (!empty($matches[1])) {
                        $profiledata["name"] = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
                }
                $profile = "";
                preg_match("/profile='(.*?)'/ism", $attributes, $matches);
-               if ($matches[1] != "") {
+               if (!empty($matches[1])) {
                        $profiledata["url"] = $matches[1];
                }
                preg_match('/profile="(.*?)"/ism', $attributes, $matches);
-               if ($matches[1] != "") {
+               if (!empty($matches[1])) {
                        $profiledata["url"] = $matches[1];
                }
                $avatar = "";
                preg_match("/avatar='(.*?)'/ism", $attributes, $matches);
-               if ($matches[1] != "") {
+               if (!empty($matches[1])) {
                        $profiledata["photo"] = $matches[1];
                }
                preg_match('/avatar="(.*?)"/ism', $attributes, $matches);
-               if ($matches[1] != "") {
+               if (!empty($matches[1])) {
                        $profiledata["photo"] = $matches[1];
                }
                $profiledata["nickname"] = $profiledata["name"];
@@ -202,7 +202,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
 
        if ($update) {
                $item_id = $_REQUEST['item_id'];
-               $item = dba::selectFirst('item', ['uid', 'parent', 'parent-uri'], ['id' => $item_id]);
+               $item = Item::selectFirst(['uid', 'parent', 'parent-uri'], ['id' => $item_id]);
                if ($item['uid'] != 0) {
                        $a->profile = ['uid' => intval($item['uid']), 'profile_uid' => intval($item['uid'])];
                } else {
@@ -212,6 +212,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
                $item_parent_uri = $item['parent-uri'];
        } else {
                $item_id = (($a->argc > 2) ? $a->argv[2] : 0);
+               $item_parent = $item_id;
 
                if ($a->argc == 2) {
                        $item_parent = 0;
@@ -228,7 +229,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
                        }
 
                        if ($item_parent == 0) {
-                               $condition = ['private' => false, 'guid' => $a->argv[1], 'uid' => 0];
+                               $condition = ['private' => [0, 2], 'guid' => $a->argv[1], 'uid' => 0];
                                $item = Item::selectFirstForUser(local_user(), $fields, $condition);
                                if (DBM::is_result($item)) {
                                        $item_id = $item["id"];
@@ -246,7 +247,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
        }
 
        // We are displaying an "alternate" link if that post was public. See issue 2864
-       $is_public = dba::exists('item', ['id' => $item_id, 'private' => false]);
+       $is_public = dba::exists('item', ['id' => $item_id, 'private' => [0, 2]]);
        if ($is_public) {
                // For the atom feed the nickname doesn't matter at all, we only need the item id.
                $alternate = System::baseUrl().'/display/feed-item/'.$item_id.'.atom';
@@ -347,19 +348,20 @@ function display_content(App $a, $update = false, $update_uid = 0)
                Item::update(['unseen' => false], $condition);
        }
 
-       $items = conv_sort(dba::inArray($items_obj), "`commented`");
+       $items = Item::inArray($items_obj);
+       $conversation_items = conv_sort($items, "`commented`");
 
        if (!$update) {
                $o .= "<script> var netargs = '?f=&item_id=" . $item_id . "'; </script>";
        }
-       $o .= conversation($a, $items, 'display', $update_uid, false, 'commented', local_user());
+       $o .= conversation($a, $conversation_items, 'display', $update_uid, false, 'commented', local_user());
 
        // Preparing the meta header
-       $description = trim(HTML::toPlaintext(BBCode::convert($s[0]["body"], false), 0, true));
-       $title = trim(HTML::toPlaintext(BBCode::convert($s[0]["title"], false), 0, true));
-       $author_name = $s[0]["author-name"];
+       $description = trim(HTML::toPlaintext(BBCode::convert($items[0]["body"], false), 0, true));
+       $title = trim(HTML::toPlaintext(BBCode::convert($items[0]["title"], false), 0, true));
+       $author_name = $items[0]["author-name"];
 
-       $image = $a->remove_baseurl($s[0]["author-thumb"]);
+       $image = $a->remove_baseurl($items[0]["author-avatar"]);
 
        if ($title == "") {
                $title = $author_name;
@@ -391,7 +393,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
        $a->page['htmlhead'] .= '<meta name="twitter:title" content="'.$title.'" />'."\n";
        $a->page['htmlhead'] .= '<meta name="twitter:description" content="'.$description.'" />'."\n";
        $a->page['htmlhead'] .= '<meta name="twitter:image" content="'.System::baseUrl().'/'.$image.'" />'."\n";
-       $a->page['htmlhead'] .= '<meta name="twitter:url" content="'.$s[0]["plink"].'" />'."\n";
+       $a->page['htmlhead'] .= '<meta name="twitter:url" content="'.$items[0]["plink"].'" />'."\n";
 
        // Dublin Core
        $a->page['htmlhead'] .= '<meta name="DC.title" content="'.$title.'" />'."\n";
@@ -401,7 +403,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
        $a->page['htmlhead'] .= '<meta property="og:type" content="website" />'."\n";
        $a->page['htmlhead'] .= '<meta property="og:title" content="'.$title.'" />'."\n";
        $a->page['htmlhead'] .= '<meta property="og:image" content="'.System::baseUrl().'/'.$image.'" />'."\n";
-       $a->page['htmlhead'] .= '<meta property="og:url" content="'.$s[0]["plink"].'" />'."\n";
+       $a->page['htmlhead'] .= '<meta property="og:url" content="'.$items[0]["plink"].'" />'."\n";
        $a->page['htmlhead'] .= '<meta property="og:description" content="'.$description.'" />'."\n";
        $a->page['htmlhead'] .= '<meta name="og:article:author" content="'.$author_name.'" />'."\n";
        // article:tag