]> git.mxchange.org Git - friendica.git/blobdiff - mod/photos.php
Don't make photo item visible
[friendica.git] / mod / photos.php
index 2efd3a5a7af55aa4459eec73955ba37b47bc81bd..ad74423718791d00de2e62fd673693b5f679a57f 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -65,7 +65,7 @@ function photos_init(App $a) {
 
        if (DI::args()->getArgc() > 1) {
                $owner = User::getOwnerDataByNick(DI::args()->getArgv()[1]);
-               if (!$owner) {
+               if (empty($owner) || $owner['account_removed']) {
                        throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
                }
 
@@ -158,7 +158,7 @@ function photos_post(App $a)
 
        if (!$can_post) {
                notice(DI::l10n()->t('Permission denied.'));
-               exit();
+               System::exit();
        }
 
        $owner_record = User::getOwnerDataById($page_owner_uid);
@@ -166,7 +166,7 @@ function photos_post(App $a)
        if (!$owner_record) {
                notice(DI::l10n()->t('Contact information unavailable'));
                DI::logger()->info('photos_post: unable to locate contact record for page owner. uid=' . $page_owner_uid);
-               exit();
+               System::exit();
        }
 
        $aclFormatter = DI::aclFormatter();
@@ -204,7 +204,7 @@ function photos_post(App $a)
                }
 
                // RENAME photo album
-               $newalbum = Strings::escapeTags(trim($_POST['albumname']));
+               $newalbum = trim($_POST['albumname'] ?? '');
                if ($newalbum != $album) {
                        Photo::update(['album' => $newalbum], ['album' => $album, 'uid' => $page_owner_uid]);
                        // Update the photo albums cache
@@ -291,11 +291,11 @@ function photos_post(App $a)
        }
 
        if (DI::args()->getArgc() > 2 && (!empty($_POST['desc']) || !empty($_POST['newtag']) || isset($_POST['albname']))) {
-               $desc        = !empty($_POST['desc'])      ? Strings::escapeTags(trim($_POST['desc']))      : '';
-               $rawtags     = !empty($_POST['newtag'])    ? Strings::escapeTags(trim($_POST['newtag']))    : '';
-               $item_id     = !empty($_POST['item_id'])   ? intval($_POST['item_id'])                      : 0;
-               $albname     = !empty($_POST['albname'])   ? trim($_POST['albname'])                        : '';
-               $origaname   = !empty($_POST['origaname']) ? Strings::escapeTags(trim($_POST['origaname'])) : '';
+               $desc      = !empty($_POST['desc'])      ? trim($_POST['desc'])      : '';
+               $rawtags   = !empty($_POST['newtag'])    ? trim($_POST['newtag'])    : '';
+               $item_id   = !empty($_POST['item_id'])   ? intval($_POST['item_id']) : 0;
+               $albname   = !empty($_POST['albname'])   ? trim($_POST['albname'])   : '';
+               $origaname = !empty($_POST['origaname']) ? trim($_POST['origaname']) : '';
 
                $resource_id = DI::args()->getArgv()[3];
 
@@ -355,12 +355,6 @@ function photos_post(App $a)
                        if ($albname !== $origaname) {
                                Photo::clearAlbumCache($page_owner_uid);
                        }
-                       /* Don't make the item visible if the only change was the album name */
-
-                       $visibility = 0;
-                       if ($photo['desc'] !== $desc || strlen($rawtags)) {
-                               $visibility = 1;
-                       }
                }
 
                if (DBA::isResult($photos) && !$item_id) {
@@ -387,7 +381,7 @@ function photos_post(App $a)
                        $arr['allow_gid']     = $photo['allow_gid'];
                        $arr['deny_cid']      = $photo['deny_cid'];
                        $arr['deny_gid']      = $photo['deny_gid'];
-                       $arr['visible']       = $visibility;
+                       $arr['visible']       = 0;
                        $arr['origin']        = 1;
 
                        $arr['body']          = '[url=' . DI::baseUrl() . '/photos/' . $user['nickname'] . '/image/' . $photo['resource-id'] . ']'
@@ -549,7 +543,7 @@ function photos_post(App $a)
                                        $arr['allow_gid']     = $photo['allow_gid'];
                                        $arr['deny_cid']      = $photo['deny_cid'];
                                        $arr['deny_gid']      = $photo['deny_gid'];
-                                       $arr['visible']       = 1;
+                                       $arr['visible']       = 0;
                                        $arr['verb']          = Activity::TAG;
                                        $arr['gravity']       = GRAVITY_PARENT;
                                        $arr['object-type']   = Activity\ObjectType::PERSON;
@@ -596,26 +590,6 @@ function photos_post(App $a)
                }
        }
 
-       /*
-        * We create a wall item for every photo, but we don't want to
-        * overwhelm the data stream with a hundred newly uploaded photos.
-        * So we will make the first photo uploaded to this album in the last several hours
-        * visible by default, the rest will become visible over time when and if
-        * they acquire comments, likes, dislikes, and/or tags
-        */
-
-       $r = Photo::selectToArray([], ['`album` = ? AND `uid` = ? AND `created` > UTC_TIMESTAMP() - INTERVAL 3 HOUR', $album, $page_owner_uid]);
-
-       if (!DBA::isResult($r) || ($album == DI::l10n()->t(Photo::PROFILE_PHOTOS))) {
-               $visible = 1;
-       } else {
-               $visible = 0;
-       }
-
-       if (!empty($_REQUEST['not_visible']) && $_REQUEST['not_visible'] !== 'false') {
-               $visible = 0;
-       }
-
        $ret = ['src' => '', 'filename' => '', 'filesize' => 0, 'type' => ''];
 
        Hook::callAll('photo_post_file', $ret);
@@ -703,9 +677,6 @@ function photos_post(App $a)
        @unlink($src);
 
        $max_length = DI::config()->get('system', 'max_image_length');
-       if (!$max_length) {
-               $max_length = MAX_IMAGE_LENGTH;
-       }
        if ($max_length > 0) {
                $image->scaleDown($max_length);
        }
@@ -769,7 +740,7 @@ function photos_post(App $a)
        $arr['allow_gid']     = $str_group_allow;
        $arr['deny_cid']      = $str_contact_deny;
        $arr['deny_gid']      = $str_group_deny;
-       $arr['visible']       = $visible;
+       $arr['visible']       = 0;
        $arr['origin']        = 1;
 
        $arr['body']          = '[url=' . DI::baseUrl() . '/photos/' . $owner_record['nickname'] . '/image/' . $resource_id . ']'
@@ -1093,7 +1064,7 @@ function photos_content(App $a)
        // Display one photo
        if ($datatype === 'image') {
                // fetch image, item containing image, then comments
-               $ph = Photo::selectToArray([], ["`uid` = ? AND `resource-id` = ? " . $sql_extra, $owner_uid, $datum], ['order' => ['scale' => true]]);
+               $ph = Photo::selectToArray([], ["`uid` = ? AND `resource-id` = ? " . $sql_extra, $owner_uid, $datum], ['order' => ['scale']]);
 
                if (!DBA::isResult($ph)) {
                        if (DBA::exists('photo', ['resource-id' => $datum, 'uid' => $owner_uid])) {
@@ -1132,12 +1103,14 @@ function photos_content(App $a)
                        $order_field = $_GET['order'] ?? '';
 
                        if ($order_field === 'posted') {
-                               $order = 'ASC';
+                               $params = ['order' => [$order_field]];
+                       } elseif (!empty($order_field)) {
+                               $params = ['order' => [$order_field => true]];
                        } else {
-                               $order = 'DESC';
+                               $params = [];
                        }
 
-                       $prvnxt = Photo::selectToArray(['resource-id'], ["`album` = ? AND `uid` = ? AND `scale` = ?" . $sql_extra, $ph[0]['album'], $owner_uid, 0]);
+                       $prvnxt = Photo::selectToArray(['resource-id'], ["`album` = ? AND `uid` = ? AND `scale` = ?" . $sql_extra, $ph[0]['album'], $owner_uid, 0], $params);
 
                        if (DBA::isResult($prvnxt)) {
                                $prv = null;
@@ -1260,14 +1233,12 @@ function photos_content(App $a)
                $tags = null;
 
                if (!empty($link_item['id'])) {
-                       $tag_text = Tag::getCSVByURIId($link_item['uri-id']);
-                       $arr = explode(',', $tag_text);
                        // parse tags and add links
                        $tag_arr = [];
-                       foreach ($arr as $tag) {
+                       foreach (Tag::getByURIId($link_item['uri-id']) as $tag) {
                                $tag_arr[] = [
-                                       'name' => BBCode::convert($tag),
-                                       'removeurl' => '/tagrm/' . $link_item['id'] . '/' . bin2hex($tag)
+                                       'name' => $tag['name'],
+                                       'removeurl' => '/tagrm/' . $link_item['id'] . '/' . bin2hex($tag['name'])
                                ];
                        }
                        $tags = ['title' => DI::l10n()->t('Tags: '), 'tags' => $tag_arr];
@@ -1435,7 +1406,7 @@ function photos_content(App $a)
                                        ];
 
                                        $title_e = $item['title'];
-                                       $body_e = BBCode::convert($item['body']);
+                                       $body_e = BBCode::convertForUriId($item['uri-id'], $item['body']);
 
                                        $comments .= Renderer::replaceMacros($template,[
                                                '$id' => $item['id'],