]> git.mxchange.org Git - friendica.git/blobdiff - mod/photos.php
Merge pull request #5877 from annando/issue-5859
[friendica.git] / mod / photos.php
index e2682498be68496734abd80f872e5b9c99f7aec6..259209ed4041ede16cf179b0c688030eaf10d4a8 100644 (file)
@@ -79,6 +79,7 @@ function photos_init(App $a) {
 
                if ($albums) {
                        $a->data['albums'] = $albums;
+
                        if ($albums_visible) {
                                $ret['success'] = true;
                        }
@@ -117,7 +118,6 @@ function photos_init(App $a) {
                        ]);
                }
 
-
                if (empty($a->page['aside'])) {
                        $a->page['aside'] = '';
                }
@@ -166,7 +166,7 @@ function photos_post(App $a)
                        }
                }
 
-               if ($contact_id) {
+               if ($contact_id > 0) {
                        $r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
                                intval($contact_id),
                                intval($page_owner_uid)
@@ -204,6 +204,7 @@ function photos_post(App $a)
                        DBA::escape($album),
                        intval($page_owner_uid)
                );
+
                if (!DBA::isResult($r)) {
                        notice(L10n::t('Album not found.') . EOL);
                        goaway($_SESSION['photo_return']);
@@ -211,7 +212,7 @@ function photos_post(App $a)
                }
 
                // Check if the user has responded to a delete confirmation query
-               if ($_REQUEST['canceled']) {
+               if (!empty($_REQUEST['canceled'])) {
                        goaway($_SESSION['photo_return']);
                }
 
@@ -253,6 +254,7 @@ function photos_post(App $a)
                                        '$confirm_name' => 'dropalbum', // Needed so that confirmation will bring us back into this if statement
                                        '$cancel' => L10n::t('Cancel'),
                                ]);
+
                                $a->error = 1; // Set $a->error so the other module functions don't execute
                                return;
                        }
@@ -273,6 +275,7 @@ function photos_post(App $a)
                                        DBA::escape($album)
                                );
                        }
+
                        if (DBA::isResult($r)) {
                                foreach ($r as $rr) {
                                        $res[] = "'" . DBA::escape($rr['rid']) . "'" ;
@@ -313,6 +316,7 @@ function photos_post(App $a)
                // Check if we should do HTML-based delete confirmation
                if (!empty($_REQUEST['confirm'])) {
                        $drop_url = $a->query_string;
+
                        $a->page['content'] = replace_macros(get_markup_template('confirm.tpl'), [
                                '$method' => 'post',
                                '$message' => L10n::t('Do you really want to delete this photo?'),
@@ -322,6 +326,7 @@ function photos_post(App $a)
                                '$confirm_name' => 'delete', // Needed so that confirmation will bring us back into this if statement
                                '$cancel' => L10n::t('Cancel'),
                        ]);
+
                        $a->error = 1; // Set $a->error so the other module functions don't execute
                        return;
                }
@@ -434,6 +439,7 @@ function photos_post(App $a)
                        DBA::escape($resource_id),
                        intval($page_owner_uid)
                );
+
                if (DBA::isResult($p)) {
                        $ext = $phototypes[$p[0]['type']];
                        $r = q("UPDATE `photo` SET `desc` = '%s', `album` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource-id` = '%s' AND `uid` = %d",
@@ -466,7 +472,7 @@ function photos_post(App $a)
                        $uri = Item::newURI($page_owner_uid);
 
                        $arr = [];
-                       $arr['guid']          = System::createGUID(32);
+                       $arr['guid']          = System::createUUID();
                        $arr['uid']           = $page_owner_uid;
                        $arr['uri']           = $uri;
                        $arr['parent-uri']    = $uri;
@@ -521,28 +527,35 @@ function photos_post(App $a)
                                        if (strpos($tag, '@') === 0) {
                                                $profile = '';
                                                $name = substr($tag,1);
+
                                                if ((strpos($name, '@')) || (strpos($name, 'http://'))) {
                                                        $newname = $name;
                                                        $links = @Probe::lrdd($name);
+
                                                        if (count($links)) {
                                                                foreach ($links as $link) {
                                                                        if ($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page') {
                                                                                $profile = $link['@attributes']['href'];
                                                                        }
+
                                                                        if ($link['@attributes']['rel'] === 'salmon') {
                                                                                $salmon = '$url:' . str_replace(',', '%sc', $link['@attributes']['href']);
+
                                                                                if (strlen($inform)) {
                                                                                        $inform .= ',';
                                                                                }
+
                                                                                $inform .= $salmon;
                                                                        }
                                                                }
                                                        }
+
                                                        $taginfo[] = [$newname, $profile, $salmon];
                                                } else {
                                                        $newname = $name;
                                                        $alias = '';
                                                        $tagcid = 0;
+
                                                        if (strrpos($newname, '+')) {
                                                                $tagcid = intval(substr($newname, strrpos($newname, '+') + 1));
                                                        }
@@ -574,6 +587,7 @@ function photos_post(App $a)
                                                        if (DBA::isResult($r)) {
                                                                $newname = $r[0]['name'];
                                                                $profile = $r[0]['url'];
+
                                                                $notify = 'cid:' . $r[0]['id'];
                                                                if (strlen($inform)) {
                                                                        $inform .= ',';
@@ -581,15 +595,18 @@ function photos_post(App $a)
                                                                $inform .= $notify;
                                                        }
                                                }
+
                                                if ($profile) {
                                                        if (substr($notify, 0, 4) === 'cid:') {
                                                                $taginfo[] = [$newname, $profile, $notify, $r[0], '@[url=' . str_replace(',','%2c',$profile) . ']' . $newname . '[/url]'];
                                                        } else {
                                                                $taginfo[] = [$newname, $profile, $notify, null, $str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]'];
                                                        }
+
                                                        if (strlen($str_tags)) {
                                                                $str_tags .= ',';
                                                        }
+
                                                        $profile = str_replace(',', '%2c', $profile);
                                                        $str_tags .= '@[url='.$profile.']'.$newname.'[/url]';
                                                }
@@ -622,6 +639,7 @@ function photos_post(App $a)
                                        $best = 2;
                                        break;
                                }
+
                                if (intval($scales['scale']) == 4) {
                                        $best = 4;
                                        break;
@@ -633,7 +651,7 @@ function photos_post(App $a)
                                        $uri = Item::newURI($page_owner_uid);
 
                                        $arr = [];
-                                       $arr['guid']          = System::createGUID(32);
+                                       $arr['guid']          = System::createUUID();
                                        $arr['uid']           = $page_owner_uid;
                                        $arr['uri']           = $uri;
                                        $arr['parent-uri']    = $uri;
@@ -744,12 +762,14 @@ function photos_post(App $a)
                $filesize = $ret['filesize'];
                $type     = $ret['type'];
                $error    = UPLOAD_ERR_OK;
-       } else {
+       } elseif (!empty($_FILES['userfile'])) {
                $src      = $_FILES['userfile']['tmp_name'];
                $filename = basename($_FILES['userfile']['name']);
                $filesize = intval($_FILES['userfile']['size']);
                $type     = $_FILES['userfile']['type'];
                $error    = $_FILES['userfile']['error'];
+       } else {
+               $error    = UPLOAD_ERR_NO_FILE;
        }
 
        if ($error !== UPLOAD_ERR_OK) {
@@ -869,7 +889,7 @@ function photos_post(App $a)
                $arr['coord'] = $lat . ' ' . $lon;
        }
 
-       $arr['guid']          = System::createGUID(32);
+       $arr['guid']          = System::createUUID();
        $arr['uid']           = $page_owner_uid;
        $arr['uri']           = $uri;
        $arr['parent-uri']    = $uri;
@@ -1093,6 +1113,12 @@ function photos_content(App $a)
                        '$albumselect' => $albumselect,
                        '$permissions' => L10n::t('Permissions'),
                        '$aclselect' => $aclselect_e,
+                       '$lockstate' => is_array($a->user)
+                                       && (strlen($a->user['allow_cid'])
+                                               || strlen($a->user['allow_gid'])
+                                               || strlen($a->user['deny_cid'])
+                                               || strlen($a->user['deny_gid'])
+                                       ) ? 'lock' : 'unlock',
                        '$alt_uploader' => $ret['addon_text'],
                        '$default_upload_box' => ($ret['default_upload'] ? $default_upload_box : ''),
                        '$default_upload_submit' => ($ret['default_upload'] ? $default_upload_submit : ''),
@@ -1117,8 +1143,8 @@ function photos_content(App $a)
                        DBA::escape($album)
                );
                if (DBA::isResult($r)) {
-                       $a->set_pager_total(count($r));
-                       $a->set_pager_itemspage(20);
+                       $a->setPagerTotal(count($r));
+                       $a->setPagerItemsPage(20);
                }
 
                /// @TODO I have seen this many times, maybe generalize it script-wide and encapsulate it?
@@ -1367,10 +1393,10 @@ function photos_content(App $a)
                        $link_item = Item::selectFirst([], ['id' => $linked_items[0]['id']]);
 
                        $condition = ["`parent` = ? AND `parent` != `id`",  $link_item['parent']];
-                       $a->set_pager_total(DBA::count('item', $condition));
+                       $a->setPagerTotal(DBA::count('item', $condition));
 
                        $params = ['order' => ['id'], 'limit' => [$a->pager['start'], $a->pager['itemspage']]];
-                       $result = Item::selectForUser($link_item['uid'], [], $condition, $params);
+                       $result = Item::selectForUser($link_item['uid'], Item::ITEM_FIELDLIST, $condition, $params);
                        $items = Item::inArray($result);
 
                        if (local_user() && (local_user() == $link_item['uid'])) {
@@ -1545,7 +1571,7 @@ function photos_content(App $a)
                                        $body_e = BBCode::convert($item['body']);
 
                                        $comments .= replace_macros($template,[
-                                               '$id' => $item['item_id'],
+                                               '$id' => $item['id'],
                                                '$profile_url' => $profile_url,
                                                '$name' => $item['author-name'],
                                                '$thumb' => $item['author-avatar'],
@@ -1609,7 +1635,7 @@ function photos_content(App $a)
                        '$paginate' => $paginate,
                ]);
 
-               $a->page['htmlhead'] .= "\n" . '<meta name="twitter:card" content="photo" />' . "\n";
+               $a->page['htmlhead'] .= "\n" . '<meta name="twitter:card" content="summary_large_image" />' . "\n";
                $a->page['htmlhead'] .= '<meta name="twitter:title" content="' . $photo["album"] . '" />' . "\n";
                $a->page['htmlhead'] .= '<meta name="twitter:image" content="' . $photo["href"] . '" />' . "\n";
                $a->page['htmlhead'] .= '<meta name="twitter:image:width" content="' . $photo["width"] . '" />' . "\n";
@@ -1629,8 +1655,8 @@ function photos_content(App $a)
        );
 
        if (DBA::isResult($r)) {
-               $a->set_pager_total(count($r));
-               $a->set_pager_itemspage(20);
+               $a->setPagerTotal(count($r));
+               $a->setPagerItemsPage(20);
        }
 
        $r = q("SELECT `resource-id`, ANY_VALUE(`id`) AS `id`, ANY_VALUE(`filename`) AS `filename`,