]> git.mxchange.org Git - friendica.git/blobdiff - mod/item.php
Merge pull request #10228 from MrPetovan/bug/warnings
[friendica.git] / mod / item.php
index 8c256cfabd5add4053824611d40c31fafecf2e3d..71793f14dc44a6bdc389b6fd1d052d921811a18a 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -45,6 +45,7 @@ use Friendica\Model\Contact;
 use Friendica\Model\Conversation;
 use Friendica\Model\FileTag;
 use Friendica\Model\Item;
+use Friendica\Model\ItemURI;
 use Friendica\Model\Notification;
 use Friendica\Model\Photo;
 use Friendica\Model\Post;
@@ -56,6 +57,7 @@ use Friendica\Protocol\Activity;
 use Friendica\Protocol\Diaspora;
 use Friendica\Security\Security;
 use Friendica\Util\DateTimeFormat;
+use Friendica\Util\ParseUrl;
 use Friendica\Worker\Delivery;
 
 function item_post(App $a) {
@@ -217,12 +219,16 @@ function item_post(App $a) {
 
                $attachment_img_width  = $_REQUEST['attachment_img_width'] ??  0;
                $attachment_img_height = $_REQUEST['attachment_img_height'] ?? 0;
-               $attachment = [
-                       'type'   => $attachment_type,
-                       'title'  => $attachment_title,
-                       'text'   => $attachment_text,
-                       'url'    => $attachment_url,
-               ];
+
+               // Fetch the basic attachment data
+               $attachment = ParseUrl::getSiteinfoCached($attachment_url);
+               unset($attachment['keywords']);
+
+               // Overwrite the basic data with possible changes from the frontend
+               $attachment['type'] = $attachment_type;
+               $attachment['title'] = $attachment_title;
+               $attachment['text'] = $attachment_text;
+               $attachment['url'] = $attachment_url;
 
                if (!empty($attachment_img_src)) {
                        $attachment['images'] = [
@@ -232,6 +238,8 @@ function item_post(App $a) {
                                        'height' => $attachment_img_height
                                ]
                        ];
+               } else {
+                       unset($attachment['images']);
                }
 
                $att_bbcode = "\n" . PageInfo::getFooterFromData($attachment);
@@ -606,6 +614,9 @@ function item_post(App $a) {
        $datarray['origin']        = $origin;
        $datarray['object']        = $object;
 
+       $datarray['uri-id']        = ItemURI::getIdByURI($datarray['uri']);
+       $datarray['attachments']   = $_REQUEST['attachments'] ?? [];
+
        /*
         * These fields are for the convenience of addons...
         * 'self' if true indicates the owner is posting on their own wall
@@ -847,12 +858,7 @@ function item_content(App $a)
                                throw new HTTPException\NotFoundException('Item not found');
                        }
 
-                       $cdata = Contact::getPublicAndUserContacID($item['author-id'], local_user());
-                       if (empty($cdata['user'])) {
-                               throw new HTTPException\NotFoundException('Contact not found');
-                       }
-
-                       Contact::block($cdata['user'], DI::l10n()->t('Blocked on item with guid %s', $item['guid']));
+                       Contact\User::setBlocked($item['author-id'], local_user(), true);
 
                        if (DI::mode()->isAjax()) {
                                // ajax return: [<item id>, 0 (no perm) | <owner id>]