]> git.mxchange.org Git - friendica.git/commitdiff
`q` is now completely removed
authorMichael <heluecht@pirati.ca>
Sat, 9 Oct 2021 21:16:15 +0000 (21:16 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 9 Oct 2021 21:16:15 +0000 (21:16 +0000)
composer.json
include/api.php
include/dba.php [deleted file]
src/Content/Widget.php
src/Model/Photo.php
src/Module/Search/Acl.php
view/lang/C/messages.po
view/theme/frio/theme.php

index 0efba36645f5ed4a351c31349ffe333227df6115..5b927bc040e01c585eacc62ab907e9f98e56c79a 100644 (file)
@@ -84,7 +84,6 @@
                        "Friendica\\Addon\\": "addon/"
                },
                "files": [
-                       "include/dba.php",
                        "include/enotify.php",
                        "boot.php"
                ]
index 5937481e81fd603e846365803fddea16d05bd3f7..9a3d577e56fd3e70a5896d3dad16e898bdefdd8b 100644 (file)
@@ -492,9 +492,9 @@ function api_get_user(App $a, $contact_id = null)
 
        // Searching for contact URL
        if (!is_null($contact_id) && (intval($contact_id) == 0)) {
-               $user = DBA::escape(Strings::normaliseLink($contact_id));
+               $user = Strings::normaliseLink($contact_id);
                $url = $user;
-               $extra_query = "AND `contact`.`nurl` = '%s' ";
+               $extra_query = "AND `contact`.`nurl` = ? ";
                if (api_user() !== false) {
                        $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
                }
@@ -502,43 +502,43 @@ function api_get_user(App $a, $contact_id = null)
 
        // Searching for contact id with uid = 0
        if (!is_null($contact_id) && (intval($contact_id) != 0)) {
-               $user = DBA::escape(api_unique_id_to_nurl(intval($contact_id)));
+               $user = api_unique_id_to_nurl(intval($contact_id));
 
                if ($user == "") {
                        throw new BadRequestException("User ID ".$contact_id." not found.");
                }
 
                $url = $user;
-               $extra_query = "AND `contact`.`nurl` = '%s' ";
+               $extra_query = "AND `contact`.`nurl` = ? ";
                if (api_user() !== false) {
                        $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
                }
        }
 
        if (is_null($user) && !empty($_GET['user_id'])) {
-               $user = DBA::escape(api_unique_id_to_nurl($_GET['user_id']));
+               $user = api_unique_id_to_nurl($_GET['user_id']);
 
                if ($user == "") {
                        throw new BadRequestException("User ID ".$_GET['user_id']." not found.");
                }
 
                $url = $user;
-               $extra_query = "AND `contact`.`nurl` = '%s' ";
+               $extra_query = "AND `contact`.`nurl` = ? ";
                if (api_user() !== false) {
                        $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
                }
        }
        if (is_null($user) && !empty($_GET['screen_name'])) {
-               $user = DBA::escape($_GET['screen_name']);
-               $extra_query = "AND `contact`.`nick` = '%s' ";
+               $user = $_GET['screen_name'];
+               $extra_query = "AND `contact`.`nick` = ? ";
                if (api_user() !== false) {
                        $extra_query .= "AND `contact`.`uid`=".intval(api_user());
                }
        }
 
        if (is_null($user) && !empty($_GET['profileurl'])) {
-               $user = DBA::escape(Strings::normaliseLink($_GET['profileurl']));
-               $extra_query = "AND `contact`.`nurl` = '%s' ";
+               $user = Strings::normaliseLink($_GET['profileurl']);
+               $extra_query = "AND `contact`.`nurl` = ? ";
                if (api_user() !== false) {
                        $extra_query .= "AND `contact`.`uid`=".intval(api_user());
                }
@@ -554,18 +554,17 @@ function api_get_user(App $a, $contact_id = null)
                        }
                }
                if (is_numeric($user)) {
-                       $user = DBA::escape(api_unique_id_to_nurl(intval($user)));
+                       $user = api_unique_id_to_nurl(intval($user));
 
                        if ($user != "") {
                                $url = $user;
-                               $extra_query = "AND `contact`.`nurl` = '%s' ";
+                               $extra_query = "AND `contact`.`nurl` = ? ";
                                if (api_user() !== false) {
                                        $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
                                }
                        }
                } else {
-                       $user = DBA::escape($user);
-                       $extra_query = "AND `contact`.`nick` = '%s' ";
+                       $extra_query = "AND `contact`.`nick` = ? ";
                        if (api_user() !== false) {
                                $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
                        }
@@ -580,19 +579,19 @@ function api_get_user(App $a, $contact_id = null)
                        return false;
                } else {
                        $user = api_user();
-                       $extra_query = "AND `contact`.`uid` = %d AND `contact`.`self` ";
+                       $extra_query = "AND `contact`.`uid` = ? AND `contact`.`self` ";
                }
        }
 
        Logger::info(API_LOG_PREFIX . 'found user {user}', ['module' => 'api', 'action' => 'get_user', 'user' => $user, 'extra_query' => $extra_query]);
 
        // user info
-       $uinfo = q(
+       $uinfo = DBA::toArray(DBA::p(
                "SELECT *, `contact`.`id` AS `cid` FROM `contact`
                        WHERE 1
                $extra_query",
                $user
-       );
+       ));
 
        // Selecting the id by priority, friendica first
        if (is_array($uinfo)) {
@@ -3416,19 +3415,20 @@ function api_statuses_f($qtype)
                $sql_filter = 'AND (NOT `blocked` OR `pending`)';
        }
 
-       $r = q(
+       // @todo This query most likely can be replaced with a Contact::select...
+       $r = DBA::toArray(DBA::p(
                "SELECT `nurl`
                FROM `contact`
-               WHERE `uid` = %d
+               WHERE `uid` = ?
                AND NOT `self`
                $sql_filter
                $sql_extra
                ORDER BY `nick`
-               LIMIT %d, %d",
-               intval(api_user()),
-               intval($start),
-               intval($count)
-       );
+               LIMIT ?, ?",
+               api_user(),
+               $start,
+               $count
+       ));
 
        $ret = [];
        foreach ($r as $cid) {
@@ -4768,18 +4768,17 @@ function prepare_photo_data($type, $scale, $photo_id)
 
        // added allow_cid, allow_gid, deny_cid, deny_gid to output as string like stored in database
        // clients needs to convert this in their way for further processing
-       $r = q(
+       $r = DBA::toArray(DBA::p(
                "SELECT %s `resource-id`, `created`, `edited`, `title`, `desc`, `album`, `filename`,
                                        `type`, `height`, `width`, `datasize`, `profile`, `allow_cid`, `deny_cid`, `allow_gid`, `deny_gid`,
                                        MIN(`scale`) AS `minscale`, MAX(`scale`) AS `maxscale`
-                       FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' %s GROUP BY
+                       FROM `photo` WHERE `uid` = ? AND `resource-id` = ? $scale_sql GROUP BY
                               `resource-id`, `created`, `edited`, `title`, `desc`, `album`, `filename`,
                               `type`, `height`, `width`, `datasize`, `profile`, `allow_cid`, `deny_cid`, `allow_gid`, `deny_gid`",
                $data_sql,
-               intval(local_user()),
-               DBA::escape($photo_id),
-               $scale_sql
-       );
+               local_user(),
+               $photo_id
+       ));
 
        $typetoext = [
                'image/jpeg' => 'jpg',
@@ -5223,7 +5222,7 @@ function group_create($name, $uid, $users = [])
                throw new BadRequestException('group name not specified');
        }
 
-       // error message if specified group name already exists 
+       // error message if specified group name already exists
        if (DBA::exists('group', ['uid' => $uid, 'name' => $name, 'deleted' => false])) {
                throw new BadRequestException('group name already exists');
        }
@@ -5696,11 +5695,11 @@ function api_friendica_direct_messages_search($type, $box = "")
        }
 
        // get data for the specified searchstring
-       $r = q(
-               "SELECT `mail`.*, `contact`.`nurl` AS `contact-url` FROM `mail`,`contact` WHERE `mail`.`contact-id` = `contact`.`id` AND `mail`.`uid`=%d AND `body` LIKE '%s' ORDER BY `mail`.`id` DESC",
-               intval($uid),
-               DBA::escape('%'.$searchstring.'%')
-       );
+       $r = DBA::toArray(DBA::p(
+               "SELECT `mail`.*, `contact`.`nurl` AS `contact-url` FROM `mail`,`contact` WHERE `mail`.`contact-id` = `contact`.`id` AND `mail`.`uid` = ? AND `body` LIKE ? ORDER BY `mail`.`id` DESC",
+               $uid,
+               '%'.$searchstring.'%'
+       ));
 
        $profile_url = $user_info["url"];
 
diff --git a/include/dba.php b/include/dba.php
deleted file mode 100644 (file)
index 2b3f906..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/**
- * @copyright Copyright (C) 2010-2021, the Friendica project
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- *
- */
-
-use Friendica\Database\DBA;
-
-/**
- * execute SQL query with printf style args - deprecated
- *
- * Please use the DBA:: functions instead:
- * DBA::select, DBA::exists, DBA::insert
- * DBA::delete, DBA::update, DBA::p, DBA::e
- *
- * @param $sql
- * @return array|bool Query array
- * @throws Exception
- * @deprecated
- */
-function q($sql) {
-       $args = func_get_args();
-       unset($args[0]);
-
-       if (!DBA::connected()) {
-               return false;
-       }
-
-       $sql = DBA::cleanQuery($sql);
-       $sql = DBA::anyValueFallback($sql);
-
-       $stmt = @vsprintf($sql, $args);
-
-       $ret = DBA::p($stmt);
-
-       if (is_bool($ret)) {
-               return $ret;
-       }
-
-       $columns = DBA::columnCount($ret);
-
-       $data = DBA::toArray($ret);
-
-       if ((count($data) == 0) && ($columns == 0)) {
-               return true;
-       }
-
-       return $data;
-}
index a899644c3ce5a80c27ad2de9e13667e0dce320e4..653c99624b5a1907f21965d5db642fdc0240bdaf 100644 (file)
@@ -91,9 +91,9 @@ class Widget
        }
 
        /**
-        * Return unavailable networks
+        * Return unavailable networks as array
         */
-       public static function unavailableNetworks()
+       public static function unavailableNetworksAsArray()
        {
                // Always hide content from these networks
                $networks = [Protocol::PHANTOM, Protocol::FACEBOOK, Protocol::APPNET];
@@ -125,6 +125,15 @@ class Widget
                if (!Addon::isEnabled("pnut")) {
                        $networks[] = Protocol::PNUT;
                }
+               return $networks;
+       }
+
+       /**
+        * Return unavailable networks
+        */
+       public static function unavailableNetworks()
+       {
+               $networks = self::unavailableNetworksAsArray();
 
                if (!sizeof($networks)) {
                        return "";
index c30da19bd881eda5a26d01360c46aefc23574eda..54316d92efa749d0e9238d0fd3277b98e46fa73b 100644 (file)
@@ -39,8 +39,6 @@ use Friendica\Security\Security;
 use Friendica\Util\Proxy;
 use Friendica\Util\Strings;
 
-require_once "include/dba.php";
-
 /**
  * Class to handle photo dabatase table
  */
index aa5a0e36789a91607d9a6dc071348409a5113eb1..6b1434b9cf73b23d378da69e2fe6572bfc77e120 100644 (file)
@@ -41,11 +41,11 @@ use Friendica\Util\Strings;
  */
 class Acl extends BaseModule
 {
-       const TYPE_GLOBAL_CONTACT        = 'x';
-       const TYPE_MENTION_CONTACT       = 'c';
+       const TYPE_GLOBAL_CONTACT        = 'x'; //
+       const TYPE_MENTION_CONTACT       = 'c'; //
        const TYPE_MENTION_GROUP         = 'g';
        const TYPE_MENTION_CONTACT_GROUP = '';
-       const TYPE_MENTION_FORUM         = 'f';
+       const TYPE_MENTION_FORUM         = 'f'; //
        const TYPE_PRIVATE_MESSAGE       = 'm';
        const TYPE_ANY_CONTACT           = 'a';
 
@@ -114,76 +114,51 @@ class Acl extends BaseModule
                Logger::info('ACL {action} - {subaction}', ['module' => 'acl', 'action' => 'content', 'subaction' => 'search', 'search' => $search, 'type' => $type, 'conversation' => $conv_id]);
 
                $sql_extra = '';
-               $sql_extra2 = '';
+               $condition       = ["`uid` = ? AND NOT `deleted` AND NOT `pending` AND NOT `archive`", local_user()];
+               $condition_group = ["`uid` = ? AND NOT `deleted`", local_user()];
 
                if ($search != '') {
                        $sql_extra = "AND `name` LIKE '%%" . DBA::escape($search) . "%%'";
-                       $sql_extra2 = "AND (`attag` LIKE '%%" . DBA::escape($search) . "%%' OR `name` LIKE '%%" . DBA::escape($search) . "%%' OR `nick` LIKE '%%" . DBA::escape($search) . "%%')";
+                       $condition       = DBA::mergeConditions($condition, ["(`attag` LIKE ? OR `name` LIKE ? OR `nick` LIKE ?)",
+                               '%' . $search . '%', '%' . $search . '%', '%' . $search . '%']);
+                       $condition_group = DBA::mergeConditions($condition_group, ["`name` LIKE ?", '%' . $search . '%']);
                }
 
                // count groups and contacts
                $group_count = 0;
                if ($type == self::TYPE_MENTION_CONTACT_GROUP || $type == self::TYPE_MENTION_GROUP) {
-                       $r = q("SELECT COUNT(*) AS g FROM `group` WHERE NOT `deleted` AND `uid` = %d $sql_extra",
-                               intval(local_user())
-                       );
-                       $group_count = (int) $r[0]['g'];
+                       $group_count = DBA::count('group', $condition_group);
                }
 
-               $sql_extra2 .= ' ' . Widget::unavailableNetworks();
+               $networks = Widget::unavailableNetworksAsArray();
+               if (!empty($networks)) {
+                       $condition = DBA::mergeConditions($condition, array_merge(["NOT `network` IN (" . substr(str_repeat("?, ", count($networks)), 0, -2) . ")"], $networks));
+               }
 
-               $contact_count = 0;
                switch ($type) {
                        case self::TYPE_MENTION_CONTACT_GROUP:
+                               $condition = DBA::mergeConditions($condition,
+                                       ["NOT `self` AND NOT `blocked` AND `notify` != ? AND NOT `network` IN (?, ?)", '', Protocol::OSTATUS, Protocol::STATUSNET
+                               ]);
                        case self::TYPE_MENTION_CONTACT:
-                               // autocomplete for editor mentions
-                               $r = q("SELECT COUNT(*) AS c FROM `contact`
-                                       WHERE `uid` = %d AND NOT `self` AND NOT `deleted`
-                                       AND NOT `blocked` AND NOT `pending` AND NOT `archive`
-                                       AND `notify` != '' $sql_extra2",
-                                       intval(local_user())
-                               );
-                               $contact_count = (int) $r[0]['c'];
-                               break;
-
+                               $condition = DBA::mergeConditions($condition,
+                                       ["NOT `self` AND NOT `blocked` AND `notify` != ? AND `network` != ?", '', Protocol::STATUSNET
+                               ]);
                        case self::TYPE_MENTION_FORUM:
-                               // autocomplete for editor mentions of forums
-                               $r = q("SELECT COUNT(*) AS c FROM `contact`
-                                       WHERE `uid` = %d AND NOT `self` AND NOT `deleted`
-                                       AND NOT `blocked` AND NOT `pending` AND NOT `archive`
-                                       AND (`forum` OR `prv`)
-                                       AND `notify` != '' $sql_extra2",
-                                       intval(local_user())
-                               );
-                               $contact_count = (int) $r[0]['c'];
+                               $condition = DBA::mergeConditions($condition,
+                                       ["NOT `self` AND NOT `blocked` AND `notify` != ? AND `contact-type` = ?", '', Contact::TYPE_COMMUNITY
+                               ]);
                                break;
 
                        case self::TYPE_PRIVATE_MESSAGE:
-                               // autocomplete for Private Messages
-                               $r = q("SELECT COUNT(*) AS c FROM `contact`
-                                       WHERE `uid` = %d AND NOT `self` AND NOT `deleted`
-                                       AND NOT `blocked` AND NOT `pending` AND NOT `archive`
-                                       AND `network` IN ('%s', '%s', '%s') $sql_extra2",
-                                       intval(local_user()),
-                                       DBA::escape(Protocol::ACTIVITYPUB),
-                                       DBA::escape(Protocol::DFRN),
-                                       DBA::escape(Protocol::DIASPORA)
-                               );
-                               $contact_count = (int) $r[0]['c'];
-                               break;
-
-                       case self::TYPE_ANY_CONTACT:
-                       default:
-                               // autocomplete for Contacts
-                               $r = q("SELECT COUNT(*) AS c FROM `contact`
-                                       WHERE `uid` = %d AND NOT `self`
-                                       AND NOT `pending` AND NOT `deleted` $sql_extra2",
-                                       intval(local_user())
-                               );
-                               $contact_count = (int) $r[0]['c'];
+                               $condition = DBA::mergeConditions($condition,
+                                       ["NOT `self` AND NOT `blocked` AND `notify` != ? AND `network` IN (?, ?, ?)", '', Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA
+                               ]);
                                break;
                }
 
+               $contact_count = DBA::count('contact', $condition);
+
                $tot = $group_count + $contact_count;
 
                $groups = [];
@@ -192,18 +167,18 @@ class Acl extends BaseModule
                if ($type == self::TYPE_MENTION_CONTACT_GROUP || $type == self::TYPE_MENTION_GROUP) {
                        /// @todo We should cache this query.
                        // This can be done when we can delete cache entries via wildcard
-                       $r = q("SELECT `group`.`id`, `group`.`name`, GROUP_CONCAT(DISTINCT `group_member`.`contact-id` SEPARATOR ',') AS uids
+                       $r = DBA::toArray(DBA::p("SELECT `group`.`id`, `group`.`name`, GROUP_CONCAT(DISTINCT `group_member`.`contact-id` SEPARATOR ',') AS uids
                                FROM `group`
                                INNER JOIN `group_member` ON `group_member`.`gid`=`group`.`id`
-                               WHERE NOT `group`.`deleted` AND `group`.`uid` = %d
+                               WHERE NOT `group`.`deleted` AND `group`.`uid` = ?
                                        $sql_extra
                                GROUP BY `group`.`name`, `group`.`id`
                                ORDER BY `group`.`name`
-                               LIMIT %d, %d",
-                               intval(local_user()),
-                               intval($start),
-                               intval($count)
-                       );
+                               LIMIT ?, ?",
+                               local_user(),
+                               $start,
+                               $count
+                       ));
 
                        foreach ($r as $g) {
                                $groups[] = [
@@ -222,64 +197,8 @@ class Acl extends BaseModule
                }
 
                $r = [];
-               switch ($type) {
-                       case self::TYPE_MENTION_CONTACT_GROUP:
-                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv`, (`prv` OR `forum`) AS `frm` FROM `contact`
-                                       WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
-                                       AND NOT (`network` IN ('%s', '%s'))
-                                       $sql_extra2
-                                       ORDER BY `name`",
-                                       intval(local_user()),
-                                       DBA::escape(Protocol::OSTATUS),
-                                       DBA::escape(Protocol::STATUSNET)
-                               );
-                               break;
-
-                       case self::TYPE_MENTION_CONTACT:
-                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact`
-                                       WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
-                                       AND NOT (`network` IN ('%s'))
-                                       $sql_extra2
-                                       ORDER BY `name`",
-                                       intval(local_user()),
-                                       DBA::escape(Protocol::STATUSNET)
-                               );
-                               break;
-
-                       case self::TYPE_MENTION_FORUM:
-                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact`
-                                       WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
-                                       AND NOT (`network` IN ('%s'))
-                                       AND (`forum` OR `prv`)
-                                       $sql_extra2
-                                       ORDER BY `name`",
-                                       intval(local_user()),
-                                       DBA::escape(Protocol::STATUSNET)
-                               );
-                               break;
-
-                       case self::TYPE_PRIVATE_MESSAGE:
-                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr` FROM `contact`
-                                       WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `blocked` AND NOT `pending` AND NOT `archive`
-                                       AND `network` IN ('%s', '%s', '%s')
-                                       $sql_extra2
-                                       ORDER BY `name`",
-                                       intval(local_user()),
-                                       DBA::escape(Protocol::ACTIVITYPUB),
-                                       DBA::escape(Protocol::DFRN),
-                                       DBA::escape(Protocol::DIASPORA)
-                               );
-                               break;
-
-                       case self::TYPE_ANY_CONTACT:
-                       default:
-                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv`, `avatar` FROM `contact`
-                                       WHERE `uid` = %d AND NOT `deleted` AND NOT `pending` AND NOT `archive`
-                                       $sql_extra2
-                                       ORDER BY `name`",
-                                       intval(local_user())
-                               );
-                               break;
+               if ($type != self::TYPE_MENTION_GROUP) {
+                       $r = Contact::selectToArray([], $condition, ['order' => ['name']]);
                }
 
                if (DBA::isResult($r)) {
@@ -294,7 +213,7 @@ class Acl extends BaseModule
                                        'link'    => $g['url'],
                                        'nick'    => htmlentities(($g['attag'] ?? '') ?: $g['nick']),
                                        'addr'    => htmlentities(($g['addr'] ?? '') ?: $g['url']),
-                                       'forum'   => !empty($g['forum']) || !empty($g['prv']) ? 1 : 0,
+                                       'forum'   => $g['contact-type'] == Contact::TYPE_COMMUNITY,
                                ];
                                if ($entry['forum']) {
                                        $forums[] = $entry;
index f45b34911890a22311408ce6e1615f1192c78cc4..337b57f50fc0a2742bb565a0bad0f3a8bf9e74b5 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 2021.12-dev\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-07 11:32-0400\n"
+"POT-Creation-Date: 2021-10-09 21:14+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,27 +18,27 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 
-#: include/api.php:1114 src/Module/BaseApi.php:294
+#: include/api.php:1113 src/Module/BaseApi.php:294
 #, php-format
 msgid "Daily posting limit of %d post reached. The post was rejected."
 msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/api.php:1128 src/Module/BaseApi.php:310
+#: include/api.php:1127 src/Module/BaseApi.php:310
 #, php-format
 msgid "Weekly posting limit of %d post reached. The post was rejected."
 msgid_plural "Weekly posting limit of %d posts reached. The post was rejected."
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/api.php:1142 src/Module/BaseApi.php:326
+#: include/api.php:1141 src/Module/BaseApi.php:326
 #, php-format
 msgid "Monthly posting limit of %d post reached. The post was rejected."
 msgstr ""
 
-#: include/api.php:4422 mod/photos.php:89 mod/photos.php:198 mod/photos.php:617
-#: mod/photos.php:1028 mod/photos.php:1045 mod/photos.php:1594
+#: include/api.php:4411 mod/photos.php:89 mod/photos.php:198 mod/photos.php:617
+#: mod/photos.php:1028 mod/photos.php:1045 mod/photos.php:1579
 #: src/Model/User.php:1164 src/Model/User.php:1172 src/Model/User.php:1180
 #: src/Module/Settings/Profile/Photo/Crop.php:101
 #: src/Module/Settings/Profile/Photo/Crop.php:117
@@ -327,9 +327,9 @@ msgstr ""
 #: src/Module/Settings/Profile/Photo/Crop.php:158
 #: src/Module/Settings/Profile/Photo/Index.php:112
 #: src/Module/Settings/UserExport.php:58 src/Module/Settings/UserExport.php:93
-#: src/Module/Settings/UserExport.php:199
-#: src/Module/Settings/UserExport.php:219
-#: src/Module/Settings/UserExport.php:284
+#: src/Module/Settings/UserExport.php:198
+#: src/Module/Settings/UserExport.php:218
+#: src/Module/Settings/UserExport.php:283
 msgid "Permission denied."
 msgstr ""
 
@@ -446,12 +446,12 @@ msgstr ""
 msgid "Save"
 msgstr ""
 
-#: mod/editpost.php:92 mod/photos.php:1370 src/Content/Conversation.php:326
+#: mod/editpost.php:92 mod/photos.php:1355 src/Content/Conversation.php:326
 #: src/Module/Contact/Poke.php:157 src/Object/Post.php:964
 msgid "Loading..."
 msgstr ""
 
-#: mod/editpost.php:93 mod/message.php:198 mod/message.php:362
+#: mod/editpost.php:93 mod/message.php:198 mod/message.php:355
 #: mod/wallmessage.php:139 src/Content/Conversation.php:327
 msgid "Upload photo"
 msgstr ""
@@ -468,7 +468,7 @@ msgstr ""
 msgid "attach file"
 msgstr ""
 
-#: mod/editpost.php:97 mod/message.php:199 mod/message.php:363
+#: mod/editpost.php:97 mod/message.php:199 mod/message.php:356
 #: mod/wallmessage.php:140
 msgid "Insert web link"
 msgstr ""
@@ -510,8 +510,8 @@ msgstr ""
 msgid "clear location"
 msgstr ""
 
-#: mod/editpost.php:107 mod/message.php:200 mod/message.php:365
-#: mod/photos.php:1521 mod/wallmessage.php:141 src/Content/Conversation.php:355
+#: mod/editpost.php:107 mod/message.php:200 mod/message.php:358
+#: mod/photos.php:1506 mod/wallmessage.php:141 src/Content/Conversation.php:355
 #: src/Content/Conversation.php:689 src/Module/Item/Compose.php:165
 #: src/Object/Post.php:502
 msgid "Please wait"
@@ -543,14 +543,14 @@ msgstr ""
 msgid "Example: bob@example.com, mary@example.com"
 msgstr ""
 
-#: mod/editpost.php:128 mod/events.php:517 mod/photos.php:1369
-#: mod/photos.php:1425 mod/photos.php:1499 src/Content/Conversation.php:370
+#: mod/editpost.php:128 mod/events.php:517 mod/photos.php:1354
+#: mod/photos.php:1410 mod/photos.php:1484 src/Content/Conversation.php:370
 #: src/Module/Item/Compose.php:160 src/Object/Post.php:974
 msgid "Preview"
 msgstr ""
 
 #: mod/editpost.php:130 mod/fbrowser.php:100 mod/fbrowser.php:127
-#: mod/follow.php:144 mod/photos.php:1017 mod/photos.php:1126 mod/tagrm.php:37
+#: mod/follow.php:144 mod/photos.php:1017 mod/photos.php:1122 mod/tagrm.php:37
 #: mod/tagrm.php:129 mod/unfollow.php:97 src/Content/Conversation.php:373
 #: src/Module/Contact/Revoke.php:99 src/Module/RemoteFollow.php:116
 msgid "Cancel"
@@ -568,7 +568,7 @@ msgid "Browser"
 msgstr ""
 
 #: mod/editpost.php:136 mod/events.php:522 mod/photos.php:956
-#: mod/photos.php:1323 src/Content/Conversation.php:357
+#: mod/photos.php:1308 src/Content/Conversation.php:357
 msgid "Permissions"
 msgstr ""
 
@@ -627,7 +627,7 @@ msgid "Event Finishes:"
 msgstr ""
 
 #: mod/events.php:506 src/Module/Profile/Profile.php:172
-#: src/Module/Settings/Profile/Index.php:236
+#: src/Module/Settings/Profile/Index.php:239
 msgid "Description:"
 msgstr ""
 
@@ -647,9 +647,9 @@ msgstr ""
 msgid "Share this event"
 msgstr ""
 
-#: mod/events.php:519 mod/message.php:201 mod/message.php:364
-#: mod/photos.php:938 mod/photos.php:1039 mod/photos.php:1327
-#: mod/photos.php:1368 mod/photos.php:1424 mod/photos.php:1498
+#: mod/events.php:519 mod/message.php:201 mod/message.php:357
+#: mod/photos.php:938 mod/photos.php:1039 mod/photos.php:1312
+#: mod/photos.php:1353 mod/photos.php:1409 mod/photos.php:1483
 #: src/Module/Admin/Item/Source.php:65 src/Module/Contact.php:523
 #: src/Module/Contact/Advanced.php:133 src/Module/Contact/Poke.php:158
 #: src/Module/Debug/ActivityPubConversion.php:141
@@ -659,7 +659,7 @@ msgstr ""
 #: src/Module/Install.php:245 src/Module/Install.php:287
 #: src/Module/Install.php:324 src/Module/Invite.php:177
 #: src/Module/Item/Compose.php:150 src/Module/Profile/Profile.php:247
-#: src/Module/Settings/Profile/Index.php:220 src/Object/Post.php:963
+#: src/Module/Settings/Profile/Index.php:223 src/Object/Post.php:963
 #: view/theme/duepuntozero/config.php:69 view/theme/frio/config.php:160
 #: view/theme/quattro/config.php:71 view/theme/vier/config.php:119
 msgid "Submit"
@@ -975,7 +975,7 @@ msgstr ""
 msgid "Conversation was not removed."
 msgstr ""
 
-#: mod/message.php:180 mod/message.php:293 mod/wallmessage.php:123
+#: mod/message.php:180 mod/message.php:286 mod/wallmessage.php:123
 msgid "Please enter a link URL:"
 msgstr ""
 
@@ -983,65 +983,65 @@ msgstr ""
 msgid "Send Private Message"
 msgstr ""
 
-#: mod/message.php:190 mod/message.php:354 mod/wallmessage.php:130
+#: mod/message.php:190 mod/message.php:347 mod/wallmessage.php:130
 msgid "To:"
 msgstr ""
 
-#: mod/message.php:191 mod/message.php:355 mod/wallmessage.php:131
+#: mod/message.php:191 mod/message.php:348 mod/wallmessage.php:131
 msgid "Subject:"
 msgstr ""
 
-#: mod/message.php:195 mod/message.php:358 mod/wallmessage.php:137
+#: mod/message.php:195 mod/message.php:351 mod/wallmessage.php:137
 #: src/Module/Invite.php:170
 msgid "Your message:"
 msgstr ""
 
-#: mod/message.php:229
+#: mod/message.php:222
 msgid "No messages."
 msgstr ""
 
-#: mod/message.php:285
+#: mod/message.php:278
 msgid "Message not available."
 msgstr ""
 
-#: mod/message.php:330
+#: mod/message.php:323
 msgid "Delete message"
 msgstr ""
 
-#: mod/message.php:332 mod/message.php:464
+#: mod/message.php:325 mod/message.php:457
 msgid "D, d M Y - g:i A"
 msgstr ""
 
-#: mod/message.php:347 mod/message.php:461
+#: mod/message.php:340 mod/message.php:454
 msgid "Delete conversation"
 msgstr ""
 
-#: mod/message.php:349
+#: mod/message.php:342
 msgid ""
 "No secure communications available. You <strong>may</strong> be able to "
 "respond from the sender's profile page."
 msgstr ""
 
-#: mod/message.php:353
+#: mod/message.php:346
 msgid "Send Reply"
 msgstr ""
 
-#: mod/message.php:435
+#: mod/message.php:428
 #, php-format
 msgid "Unknown sender - %s"
 msgstr ""
 
-#: mod/message.php:437
+#: mod/message.php:430
 #, php-format
 msgid "You and %s"
 msgstr ""
 
-#: mod/message.php:439
+#: mod/message.php:432
 #, php-format
 msgid "%s and You"
 msgstr ""
 
-#: mod/message.php:467
+#: mod/message.php:460
 #, php-format
 msgid "%d message"
 msgid_plural "%d messages"
@@ -1108,11 +1108,11 @@ msgstr ""
 msgid "Photo Albums"
 msgstr ""
 
-#: mod/photos.php:112 mod/photos.php:1623
+#: mod/photos.php:112 mod/photos.php:1608
 msgid "Recent Photos"
 msgstr ""
 
-#: mod/photos.php:114 mod/photos.php:1090 mod/photos.php:1625
+#: mod/photos.php:114 mod/photos.php:1090 mod/photos.php:1610
 msgid "Upload New Photos"
 msgstr ""
 
@@ -1231,128 +1231,128 @@ msgstr ""
 msgid "Show Oldest First"
 msgstr ""
 
-#: mod/photos.php:1075 mod/photos.php:1608
+#: mod/photos.php:1075 mod/photos.php:1593
 msgid "View Photo"
 msgstr ""
 
-#: mod/photos.php:1112
+#: mod/photos.php:1108
 msgid "Permission denied. Access to this item may be restricted."
 msgstr ""
 
-#: mod/photos.php:1114
+#: mod/photos.php:1110
 msgid "Photo not available"
 msgstr ""
 
-#: mod/photos.php:1124
+#: mod/photos.php:1120
 msgid "Do you really want to delete this photo?"
 msgstr ""
 
-#: mod/photos.php:1125 mod/photos.php:1328
+#: mod/photos.php:1121 mod/photos.php:1313
 msgid "Delete Photo"
 msgstr ""
 
-#: mod/photos.php:1219
+#: mod/photos.php:1211
 msgid "View photo"
 msgstr ""
 
-#: mod/photos.php:1221
+#: mod/photos.php:1213
 msgid "Edit photo"
 msgstr ""
 
-#: mod/photos.php:1222
+#: mod/photos.php:1214
 msgid "Delete photo"
 msgstr ""
 
-#: mod/photos.php:1223
+#: mod/photos.php:1215
 msgid "Use as profile photo"
 msgstr ""
 
-#: mod/photos.php:1230
+#: mod/photos.php:1222
 msgid "Private Photo"
 msgstr ""
 
-#: mod/photos.php:1236
+#: mod/photos.php:1228
 msgid "View Full Size"
 msgstr ""
 
-#: mod/photos.php:1296
+#: mod/photos.php:1281
 msgid "Tags: "
 msgstr ""
 
-#: mod/photos.php:1299
+#: mod/photos.php:1284
 msgid "[Select tags to remove]"
 msgstr ""
 
-#: mod/photos.php:1314
+#: mod/photos.php:1299
 msgid "New album name"
 msgstr ""
 
-#: mod/photos.php:1315
+#: mod/photos.php:1300
 msgid "Caption"
 msgstr ""
 
-#: mod/photos.php:1316
+#: mod/photos.php:1301
 msgid "Add a Tag"
 msgstr ""
 
-#: mod/photos.php:1316
+#: mod/photos.php:1301
 msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
 msgstr ""
 
-#: mod/photos.php:1317
+#: mod/photos.php:1302
 msgid "Do not rotate"
 msgstr ""
 
-#: mod/photos.php:1318
+#: mod/photos.php:1303
 msgid "Rotate CW (right)"
 msgstr ""
 
-#: mod/photos.php:1319
+#: mod/photos.php:1304
 msgid "Rotate CCW (left)"
 msgstr ""
 
-#: mod/photos.php:1365 mod/photos.php:1421 mod/photos.php:1495
+#: mod/photos.php:1350 mod/photos.php:1406 mod/photos.php:1480
 #: src/Module/Contact.php:1010 src/Module/Item/Compose.php:148
 #: src/Object/Post.php:960
 msgid "This is you"
 msgstr ""
 
-#: mod/photos.php:1367 mod/photos.php:1423 mod/photos.php:1497
+#: mod/photos.php:1352 mod/photos.php:1408 mod/photos.php:1482
 #: src/Object/Post.php:496 src/Object/Post.php:962
 msgid "Comment"
 msgstr ""
 
-#: mod/photos.php:1456 src/Content/Conversation.php:615 src/Object/Post.php:227
+#: mod/photos.php:1441 src/Content/Conversation.php:615 src/Object/Post.php:227
 msgid "Select"
 msgstr ""
 
-#: mod/photos.php:1457 mod/settings.php:563 src/Content/Conversation.php:616
+#: mod/photos.php:1442 mod/settings.php:563 src/Content/Conversation.php:616
 #: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140
 #: src/Module/Admin/Users/Index.php:153
 msgid "Delete"
 msgstr ""
 
-#: mod/photos.php:1518 src/Object/Post.php:349
+#: mod/photos.php:1503 src/Object/Post.php:349
 msgid "Like"
 msgstr ""
 
-#: mod/photos.php:1519 src/Object/Post.php:349
+#: mod/photos.php:1504 src/Object/Post.php:349
 msgid "I like this (toggle)"
 msgstr ""
 
-#: mod/photos.php:1520 src/Object/Post.php:350
+#: mod/photos.php:1505 src/Object/Post.php:350
 msgid "Dislike"
 msgstr ""
 
-#: mod/photos.php:1522 src/Object/Post.php:350
+#: mod/photos.php:1507 src/Object/Post.php:350
 msgid "I don't like this (toggle)"
 msgstr ""
 
-#: mod/photos.php:1544
+#: mod/photos.php:1529
 msgid "Map"
 msgstr ""
 
-#: mod/photos.php:1614
+#: mod/photos.php:1599
 msgid "View Album"
 msgstr ""
 
@@ -1699,7 +1699,7 @@ msgstr ""
 msgid "Unable to find your profile. Please contact your admin."
 msgstr ""
 
-#: mod/settings.php:616 src/Content/Widget.php:533
+#: mod/settings.php:616 src/Content/Widget.php:542
 msgid "Account Types"
 msgstr ""
 
@@ -2201,7 +2201,7 @@ msgstr ""
 msgid "Friend Suggestions"
 msgstr ""
 
-#: mod/tagger.php:79 src/Content/Item.php:346 src/Model/Item.php:2624
+#: mod/tagger.php:79 src/Content/Item.php:346 src/Model/Item.php:2626
 msgid "photo"
 msgstr ""
 
@@ -2321,7 +2321,7 @@ msgstr ""
 msgid "File upload failed."
 msgstr ""
 
-#: mod/wall_upload.php:224 src/Model/Photo.php:998
+#: mod/wall_upload.php:224 src/Model/Photo.php:996
 msgid "Wall Photos"
 msgstr ""
 
@@ -2386,17 +2386,17 @@ msgstr ""
 msgid "All contacts"
 msgstr ""
 
-#: src/BaseModule.php:212 src/Content/Widget.php:238 src/Core/ACL.php:195
-#: src/Module/Contact.php:773 src/Module/PermissionTooltip.php:77
-#: src/Module/PermissionTooltip.php:99
+#: src/BaseModule.php:212 src/Content/Widget.php:247 src/Core/ACL.php:195
+#: src/Module/Contact.php:773 src/Module/PermissionTooltip.php:75
+#: src/Module/PermissionTooltip.php:97
 msgid "Followers"
 msgstr ""
 
-#: src/BaseModule.php:217 src/Content/Widget.php:239 src/Module/Contact.php:774
+#: src/BaseModule.php:217 src/Content/Widget.php:248 src/Module/Contact.php:774
 msgid "Following"
 msgstr ""
 
-#: src/BaseModule.php:222 src/Content/Widget.php:240 src/Module/Contact.php:775
+#: src/BaseModule.php:222 src/Content/Widget.php:249 src/Module/Contact.php:775
 msgid "Mutual friends"
 msgstr ""
 
@@ -2964,7 +2964,7 @@ msgid "Display membership date in profile"
 msgstr ""
 
 #: src/Content/ForumManager.php:145 src/Content/Nav.php:239
-#: src/Content/Text/HTML.php:906 src/Content/Widget.php:530
+#: src/Content/Text/HTML.php:906 src/Content/Widget.php:539
 msgid "Forums"
 msgstr ""
 
@@ -2972,12 +2972,12 @@ msgstr ""
 msgid "External link to forum"
 msgstr ""
 
-#: src/Content/ForumManager.php:150 src/Content/Widget.php:509
+#: src/Content/ForumManager.php:150 src/Content/Widget.php:518
 msgid "show less"
 msgstr ""
 
-#: src/Content/ForumManager.php:151 src/Content/Widget.php:411
-#: src/Content/Widget.php:510
+#: src/Content/ForumManager.php:151 src/Content/Widget.php:420
+#: src/Content/Widget.php:519
 msgid "show more"
 msgstr ""
 
@@ -2986,11 +2986,11 @@ msgstr ""
 msgid "%1$s poked %2$s"
 msgstr ""
 
-#: src/Content/Item.php:338 src/Model/Item.php:2622
+#: src/Content/Item.php:338 src/Model/Item.php:2624
 msgid "event"
 msgstr ""
 
-#: src/Content/Item.php:442 view/theme/frio/theme.php:323
+#: src/Content/Item.php:442 view/theme/frio/theme.php:325
 msgid "Follow Thread"
 msgstr ""
 
@@ -3000,7 +3000,7 @@ msgstr ""
 
 #: src/Content/Item.php:444 src/Content/Item.php:466 src/Model/Contact.php:1010
 #: src/Model/Contact.php:1068 src/Model/Contact.php:1077
-#: src/Module/Directory.php:160 src/Module/Settings/Profile/Index.php:223
+#: src/Module/Directory.php:160 src/Module/Settings/Profile/Index.php:226
 msgid "View Profile"
 msgstr ""
 
@@ -3335,8 +3335,8 @@ msgid ""
 "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
 msgstr ""
 
-#: src/Content/Text/BBCode.php:1185 src/Model/Item.php:3152
-#: src/Model/Item.php:3158 src/Model/Item.php:3159
+#: src/Content/Text/BBCode.php:1185 src/Model/Item.php:3154
+#: src/Model/Item.php:3160 src/Model/Item.php:3161
 msgid "Link to source"
 msgstr ""
 
@@ -3434,68 +3434,68 @@ msgstr ""
 msgid "Local Directory"
 msgstr ""
 
-#: src/Content/Widget.php:214 src/Model/Group.php:535
+#: src/Content/Widget.php:223 src/Model/Group.php:535
 #: src/Module/Contact.php:760 src/Module/Welcome.php:76
 msgid "Groups"
 msgstr ""
 
-#: src/Content/Widget.php:216
+#: src/Content/Widget.php:225
 msgid "Everyone"
 msgstr ""
 
-#: src/Content/Widget.php:245
+#: src/Content/Widget.php:254
 msgid "Relationships"
 msgstr ""
 
-#: src/Content/Widget.php:247 src/Module/Contact.php:712
+#: src/Content/Widget.php:256 src/Module/Contact.php:712
 #: src/Module/Group.php:292
 msgid "All Contacts"
 msgstr ""
 
-#: src/Content/Widget.php:286
+#: src/Content/Widget.php:295
 msgid "Protocols"
 msgstr ""
 
-#: src/Content/Widget.php:288
+#: src/Content/Widget.php:297
 msgid "All Protocols"
 msgstr ""
 
-#: src/Content/Widget.php:316
+#: src/Content/Widget.php:325
 msgid "Saved Folders"
 msgstr ""
 
-#: src/Content/Widget.php:318 src/Content/Widget.php:352
+#: src/Content/Widget.php:327 src/Content/Widget.php:361
 msgid "Everything"
 msgstr ""
 
-#: src/Content/Widget.php:350
+#: src/Content/Widget.php:359
 msgid "Categories"
 msgstr ""
 
-#: src/Content/Widget.php:407
+#: src/Content/Widget.php:416
 #, php-format
 msgid "%d contact in common"
 msgid_plural "%d contacts in common"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/Content/Widget.php:503
+#: src/Content/Widget.php:512
 msgid "Archives"
 msgstr ""
 
-#: src/Content/Widget.php:527
+#: src/Content/Widget.php:536
 msgid "Persons"
 msgstr ""
 
-#: src/Content/Widget.php:528
+#: src/Content/Widget.php:537
 msgid "Organisations"
 msgstr ""
 
-#: src/Content/Widget.php:529 src/Model/Contact.php:1503
+#: src/Content/Widget.php:538 src/Model/Contact.php:1503
 msgid "News"
 msgstr ""
 
-#: src/Content/Widget.php:534 src/Module/Admin/BaseUsers.php:50
+#: src/Content/Widget.php:543 src/Module/Admin/BaseUsers.php:50
 msgid "All"
 msgstr ""
 
@@ -3568,8 +3568,8 @@ msgstr ""
 msgid "Yourself"
 msgstr ""
 
-#: src/Core/ACL.php:202 src/Module/PermissionTooltip.php:83
-#: src/Module/PermissionTooltip.php:105
+#: src/Core/ACL.php:202 src/Module/PermissionTooltip.php:81
+#: src/Module/PermissionTooltip.php:103
 msgid "Mutuals"
 msgstr ""
 
@@ -4190,35 +4190,35 @@ msgid ""
 "\t\t\t\t\tThe friendica database was successfully updated from %s to %s."
 msgstr ""
 
-#: src/Core/UserImport.php:126
+#: src/Core/UserImport.php:124
 msgid "Error decoding account file"
 msgstr ""
 
-#: src/Core/UserImport.php:132
+#: src/Core/UserImport.php:130
 msgid "Error! No version data in file! This is not a Friendica account file?"
 msgstr ""
 
-#: src/Core/UserImport.php:140
+#: src/Core/UserImport.php:138
 #, php-format
 msgid "User '%s' already exists on this server!"
 msgstr ""
 
-#: src/Core/UserImport.php:176
+#: src/Core/UserImport.php:174
 msgid "User creation error"
 msgstr ""
 
-#: src/Core/UserImport.php:221
+#: src/Core/UserImport.php:219
 #, php-format
 msgid "%d contact not imported"
 msgid_plural "%d contacts not imported"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/Core/UserImport.php:274
+#: src/Core/UserImport.php:272
 msgid "User profile creation error"
 msgstr ""
 
-#: src/Core/UserImport.php:330
+#: src/Core/UserImport.php:325
 msgid "Done. You can now login with your username and password"
 msgstr ""
 
@@ -4493,33 +4493,33 @@ msgstr ""
 msgid "Edit groups"
 msgstr ""
 
-#: src/Model/Item.php:1676
+#: src/Model/Item.php:1677
 #, php-format
 msgid "Detected languages in this post:\\n%s"
 msgstr ""
 
-#: src/Model/Item.php:2626
+#: src/Model/Item.php:2628
 msgid "activity"
 msgstr ""
 
-#: src/Model/Item.php:2628
+#: src/Model/Item.php:2630
 msgid "comment"
 msgstr ""
 
-#: src/Model/Item.php:2631
+#: src/Model/Item.php:2633
 msgid "post"
 msgstr ""
 
-#: src/Model/Item.php:2768
+#: src/Model/Item.php:2770
 #, php-format
 msgid "Content warning: %s"
 msgstr ""
 
-#: src/Model/Item.php:3117
+#: src/Model/Item.php:3119
 msgid "bytes"
 msgstr ""
 
-#: src/Model/Item.php:3146 src/Model/Item.php:3147
+#: src/Model/Item.php:3148 src/Model/Item.php:3149
 msgid "View on separate page"
 msgstr ""
 
@@ -6601,7 +6601,7 @@ msgstr ""
 msgid "Server Settings"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:234 src/Repository/ProfileField.php:285
+#: src/Module/Admin/Summary.php:234 src/Repository/ProfileField.php:290
 msgid "Summary"
 msgstr ""
 
@@ -7725,7 +7725,7 @@ msgid "Sort by post received date"
 msgstr ""
 
 #: src/Module/Conversation/Network.php:250
-#: src/Module/Settings/Profile/Index.php:225
+#: src/Module/Settings/Profile/Index.php:228
 msgid "Personal"
 msgstr ""
 
@@ -7949,7 +7949,7 @@ msgid "Twitter Source / Tweet URL (requires API key)"
 msgstr ""
 
 #: src/Module/Debug/Feed.php:38 src/Module/Filer/SaveTag.php:40
-#: src/Module/Settings/Profile/Index.php:141
+#: src/Module/Settings/Profile/Index.php:142
 msgid "You must be logged in to use this module"
 msgstr ""
 
@@ -8658,7 +8658,7 @@ msgstr ""
 msgid "Remote privacy information not available."
 msgstr ""
 
-#: src/Module/PermissionTooltip.php:71
+#: src/Module/PermissionTooltip.php:69
 msgid "Visible to:"
 msgstr ""
 
@@ -8712,12 +8712,12 @@ msgstr ""
 msgid "Birthday:"
 msgstr ""
 
-#: src/Module/Profile/Profile.php:167 src/Module/Settings/Profile/Index.php:243
+#: src/Module/Profile/Profile.php:167 src/Module/Settings/Profile/Index.php:246
 #: src/Util/Temporal.php:165
 msgid "Age: "
 msgstr ""
 
-#: src/Module/Profile/Profile.php:167 src/Module/Settings/Profile/Index.php:243
+#: src/Module/Profile/Profile.php:167 src/Module/Settings/Profile/Index.php:246
 #: src/Util/Temporal.php:165
 #, php-format
 msgid "%d year old"
@@ -9292,133 +9292,133 @@ msgstr ""
 msgid "Beginning of week:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:82
+#: src/Module/Settings/Profile/Index.php:83
 msgid "Profile Name is required."
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:133
+#: src/Module/Settings/Profile/Index.php:134
 msgid "Profile couldn't be updated."
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:170
-#: src/Module/Settings/Profile/Index.php:190
+#: src/Module/Settings/Profile/Index.php:173
+#: src/Module/Settings/Profile/Index.php:193
 msgid "Label:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:171
-#: src/Module/Settings/Profile/Index.php:191
+#: src/Module/Settings/Profile/Index.php:174
+#: src/Module/Settings/Profile/Index.php:194
 msgid "Value:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:181
-#: src/Module/Settings/Profile/Index.php:201
+#: src/Module/Settings/Profile/Index.php:184
+#: src/Module/Settings/Profile/Index.php:204
 msgid "Field Permissions"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:182
-#: src/Module/Settings/Profile/Index.php:202
+#: src/Module/Settings/Profile/Index.php:185
+#: src/Module/Settings/Profile/Index.php:205
 msgid "(click to open/close)"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:188
+#: src/Module/Settings/Profile/Index.php:191
 msgid "Add a new profile field"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:218
+#: src/Module/Settings/Profile/Index.php:221
 msgid "Profile Actions"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:219
+#: src/Module/Settings/Profile/Index.php:222
 msgid "Edit Profile Details"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:221
+#: src/Module/Settings/Profile/Index.php:224
 msgid "Change Profile Photo"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:226
+#: src/Module/Settings/Profile/Index.php:229
 msgid "Profile picture"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:227
+#: src/Module/Settings/Profile/Index.php:230
 msgid "Location"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:228 src/Util/Temporal.php:93
+#: src/Module/Settings/Profile/Index.php:231 src/Util/Temporal.php:93
 #: src/Util/Temporal.php:95
 msgid "Miscellaneous"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:229
+#: src/Module/Settings/Profile/Index.php:232
 msgid "Custom Profile Fields"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:231 src/Module/Welcome.php:58
+#: src/Module/Settings/Profile/Index.php:234 src/Module/Welcome.php:58
 msgid "Upload Profile Photo"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:235
+#: src/Module/Settings/Profile/Index.php:238
 msgid "Display name:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:238
+#: src/Module/Settings/Profile/Index.php:241
 msgid "Street Address:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:239
+#: src/Module/Settings/Profile/Index.php:242
 msgid "Locality/City:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:240
+#: src/Module/Settings/Profile/Index.php:243
 msgid "Region/State:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:241
+#: src/Module/Settings/Profile/Index.php:244
 msgid "Postal/Zip Code:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:242
+#: src/Module/Settings/Profile/Index.php:245
 msgid "Country:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:244
+#: src/Module/Settings/Profile/Index.php:247
 msgid "XMPP (Jabber) address:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:244
+#: src/Module/Settings/Profile/Index.php:247
 msgid "The XMPP address will be published so that people can follow you there."
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:245
+#: src/Module/Settings/Profile/Index.php:248
 msgid "Matrix (Element) address:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:245
+#: src/Module/Settings/Profile/Index.php:248
 msgid ""
 "The Matrix address will be published so that people can follow you there."
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:246
+#: src/Module/Settings/Profile/Index.php:249
 msgid "Homepage URL:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:247
+#: src/Module/Settings/Profile/Index.php:250
 msgid "Public Keywords:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:247
+#: src/Module/Settings/Profile/Index.php:250
 msgid "(Used for suggesting potential friends, can be seen by others)"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:248
+#: src/Module/Settings/Profile/Index.php:251
 msgid "Private Keywords:"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:248
+#: src/Module/Settings/Profile/Index.php:251
 msgid "(Used for searching profiles, never shown to others)"
 msgstr ""
 
-#: src/Module/Settings/Profile/Index.php:249
+#: src/Module/Settings/Profile/Index.php:252
 #, php-format
 msgid ""
 "<p>Custom fields appear on <a href=\"%s\">your profile page</a>.</p>\n"
@@ -10477,79 +10477,79 @@ msgstr ""
 msgid "The folder view/smarty3/ must be writable by webserver."
 msgstr ""
 
-#: src/Repository/ProfileField.php:275
+#: src/Repository/ProfileField.php:280
 msgid "Hometown:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:276
+#: src/Repository/ProfileField.php:281
 msgid "Marital Status:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:277
+#: src/Repository/ProfileField.php:282
 msgid "With:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:278
+#: src/Repository/ProfileField.php:283
 msgid "Since:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:279
+#: src/Repository/ProfileField.php:284
 msgid "Sexual Preference:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:280
+#: src/Repository/ProfileField.php:285
 msgid "Political Views:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:281
+#: src/Repository/ProfileField.php:286
 msgid "Religious Views:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:282
+#: src/Repository/ProfileField.php:287
 msgid "Likes:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:283
+#: src/Repository/ProfileField.php:288
 msgid "Dislikes:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:284
+#: src/Repository/ProfileField.php:289
 msgid "Title/Description:"
 msgstr ""
 
-#: src/Repository/ProfileField.php:286
+#: src/Repository/ProfileField.php:291
 msgid "Musical interests"
 msgstr ""
 
-#: src/Repository/ProfileField.php:287
+#: src/Repository/ProfileField.php:292
 msgid "Books, literature"
 msgstr ""
 
-#: src/Repository/ProfileField.php:288
+#: src/Repository/ProfileField.php:293
 msgid "Television"
 msgstr ""
 
-#: src/Repository/ProfileField.php:289
+#: src/Repository/ProfileField.php:294
 msgid "Film/dance/culture/entertainment"
 msgstr ""
 
-#: src/Repository/ProfileField.php:290
+#: src/Repository/ProfileField.php:295
 msgid "Hobbies/Interests"
 msgstr ""
 
-#: src/Repository/ProfileField.php:291
+#: src/Repository/ProfileField.php:296
 msgid "Love/romance"
 msgstr ""
 
-#: src/Repository/ProfileField.php:292
+#: src/Repository/ProfileField.php:297
 msgid "Work/employment"
 msgstr ""
 
-#: src/Repository/ProfileField.php:293
+#: src/Repository/ProfileField.php:298
 msgid "School/education"
 msgstr ""
 
-#: src/Repository/ProfileField.php:294
+#: src/Repository/ProfileField.php:299
 msgid "Contact information and Social Networks"
 msgstr ""
 
index 3d4a993e45bc45111dd600e3692fb94126f9be44..079b3c6d5c62521539e04dac1649bfb57aa13612 100644 (file)
@@ -249,6 +249,8 @@ function frio_remote_nav(App $a, array &$nav_info)
  * We use this to give the data to textcomplete and have a filter function at the
  * contact page.
  *
+ * @todo Is this function still in use?
+ * 
  * @param App $a The app data @TODO Unused
  * @param array $results The array with the originals from acl_lookup()
  */
@@ -273,17 +275,17 @@ function frio_acl_lookup(App $a, &$results)
        }
 
        $total = 0;
-       $r = q("SELECT COUNT(*) AS `total` FROM `contact`
-               WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `pending` $sql_extra ", intval($_SESSION['uid']));
+       $r = DBA::fetchFirst("SELECT COUNT(*) AS `total` FROM `contact`
+               WHERE `uid` = ? AND NOT `self` AND NOT `deleted` AND NOT `pending` $sql_extra ", $_SESSION['uid']);
        if (DBA::isResult($r)) {
-               $total = $r[0]['total'];
+               $total = $r['total'];
        }
 
        $sql_extra3 = Widget::unavailableNetworks();
 
-       $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `pending` $sql_extra $sql_extra3 ORDER BY `name` ASC LIMIT %d, %d ",
-               intval($_SESSION['uid']), intval($results['start']), intval($results['count'])
-       );
+       $r = DBA::toArray(DBA::p("SELECT * FROM `contact` WHERE `uid` = ? AND NOT `self` AND NOT `deleted` AND NOT `pending` $sql_extra $sql_extra3 ORDER BY `name` ASC LIMIT ?, ? ",
+               $_SESSION['uid'], $results['start'], $results['count']
+       ));
 
        $contacts = [];