]> git.mxchange.org Git - friendica.git/blobdiff - mod/photos.php
Fix off-by-one error in Message ID header count check in Util\Emailer
[friendica.git] / mod / photos.php
index ad74423718791d00de2e62fd673693b5f679a57f..977cebf20db20be6403c7568e521d9e2404a1d32 100644 (file)
@@ -187,7 +187,7 @@ function photos_post(App $a)
        }
 
        if (DI::args()->getArgc() > 3 && DI::args()->getArgv()[2] === 'album') {
-               if (!Strings::isHex(DI::args()->getArgv()[3])) {
+               if (!Strings::isHex(DI::args()->getArgv()[3] ?? '')) {
                        DI::baseUrl()->redirect('photos/' . $user['nickname'] . '/album');
                }
                $album = hex2bin(DI::args()->getArgv()[3]);
@@ -590,6 +590,26 @@ 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` > ?', $album, $page_owner_uid, DateTimeFormat::utc('now - 3 hours')]);
+
+       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);
@@ -740,7 +760,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']       = 0;
+       $arr['visible']       = $visible;
        $arr['origin']        = 1;
 
        $arr['body']          = '[url=' . DI::baseUrl() . '/photos/' . $owner_record['nickname'] . '/image/' . $resource_id . ']'
@@ -872,7 +892,7 @@ function photos_content(App $a)
                        return;
                }
 
-               $selname = Strings::isHex($datum) ? hex2bin($datum) : '';
+               $selname = (!is_null($datum) && Strings::isHex($datum)) ? hex2bin($datum) : '';
 
                $albumselect = '';
 
@@ -934,7 +954,7 @@ function photos_content(App $a)
        // Display a single photo album
        if ($datatype === 'album') {
                // if $datum is not a valid hex, redirect to the default page
-               if (!Strings::isHex($datum)) {
+               if (is_null($datum) || !Strings::isHex($datum)) {
                        DI::baseUrl()->redirect('photos/' . $user['nickname']. '/album');
                }
                $album = hex2bin($datum);