q is now completely removed

This commit is contained in:
Michael 2021-10-09 21:16:15 +00:00
parent 58215e56c3
commit 2c134c5229
8 changed files with 269 additions and 407 deletions

View file

@ -84,7 +84,6 @@
"Friendica\\Addon\\": "addon/" "Friendica\\Addon\\": "addon/"
}, },
"files": [ "files": [
"include/dba.php",
"include/enotify.php", "include/enotify.php",
"boot.php" "boot.php"
] ]

View file

@ -492,9 +492,9 @@ function api_get_user(App $a, $contact_id = null)
// Searching for contact URL // Searching for contact URL
if (!is_null($contact_id) && (intval($contact_id) == 0)) { if (!is_null($contact_id) && (intval($contact_id) == 0)) {
$user = DBA::escape(Strings::normaliseLink($contact_id)); $user = Strings::normaliseLink($contact_id);
$url = $user; $url = $user;
$extra_query = "AND `contact`.`nurl` = '%s' "; $extra_query = "AND `contact`.`nurl` = ? ";
if (api_user() !== false) { if (api_user() !== false) {
$extra_query .= "AND `contact`.`uid`=" . intval(api_user()); $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 // Searching for contact id with uid = 0
if (!is_null($contact_id) && (intval($contact_id) != 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 == "") { if ($user == "") {
throw new BadRequestException("User ID ".$contact_id." not found."); throw new BadRequestException("User ID ".$contact_id." not found.");
} }
$url = $user; $url = $user;
$extra_query = "AND `contact`.`nurl` = '%s' "; $extra_query = "AND `contact`.`nurl` = ? ";
if (api_user() !== false) { if (api_user() !== false) {
$extra_query .= "AND `contact`.`uid`=" . intval(api_user()); $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
} }
} }
if (is_null($user) && !empty($_GET['user_id'])) { 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 == "") { if ($user == "") {
throw new BadRequestException("User ID ".$_GET['user_id']." not found."); throw new BadRequestException("User ID ".$_GET['user_id']." not found.");
} }
$url = $user; $url = $user;
$extra_query = "AND `contact`.`nurl` = '%s' "; $extra_query = "AND `contact`.`nurl` = ? ";
if (api_user() !== false) { if (api_user() !== false) {
$extra_query .= "AND `contact`.`uid`=" . intval(api_user()); $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
} }
} }
if (is_null($user) && !empty($_GET['screen_name'])) { if (is_null($user) && !empty($_GET['screen_name'])) {
$user = DBA::escape($_GET['screen_name']); $user = $_GET['screen_name'];
$extra_query = "AND `contact`.`nick` = '%s' "; $extra_query = "AND `contact`.`nick` = ? ";
if (api_user() !== false) { if (api_user() !== false) {
$extra_query .= "AND `contact`.`uid`=".intval(api_user()); $extra_query .= "AND `contact`.`uid`=".intval(api_user());
} }
} }
if (is_null($user) && !empty($_GET['profileurl'])) { if (is_null($user) && !empty($_GET['profileurl'])) {
$user = DBA::escape(Strings::normaliseLink($_GET['profileurl'])); $user = Strings::normaliseLink($_GET['profileurl']);
$extra_query = "AND `contact`.`nurl` = '%s' "; $extra_query = "AND `contact`.`nurl` = ? ";
if (api_user() !== false) { if (api_user() !== false) {
$extra_query .= "AND `contact`.`uid`=".intval(api_user()); $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)) { if (is_numeric($user)) {
$user = DBA::escape(api_unique_id_to_nurl(intval($user))); $user = api_unique_id_to_nurl(intval($user));
if ($user != "") { if ($user != "") {
$url = $user; $url = $user;
$extra_query = "AND `contact`.`nurl` = '%s' "; $extra_query = "AND `contact`.`nurl` = ? ";
if (api_user() !== false) { if (api_user() !== false) {
$extra_query .= "AND `contact`.`uid`=" . intval(api_user()); $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
} }
} }
} else { } else {
$user = DBA::escape($user); $extra_query = "AND `contact`.`nick` = ? ";
$extra_query = "AND `contact`.`nick` = '%s' ";
if (api_user() !== false) { if (api_user() !== false) {
$extra_query .= "AND `contact`.`uid`=" . intval(api_user()); $extra_query .= "AND `contact`.`uid`=" . intval(api_user());
} }
@ -580,19 +579,19 @@ function api_get_user(App $a, $contact_id = null)
return false; return false;
} else { } else {
$user = api_user(); $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]); Logger::info(API_LOG_PREFIX . 'found user {user}', ['module' => 'api', 'action' => 'get_user', 'user' => $user, 'extra_query' => $extra_query]);
// user info // user info
$uinfo = q( $uinfo = DBA::toArray(DBA::p(
"SELECT *, `contact`.`id` AS `cid` FROM `contact` "SELECT *, `contact`.`id` AS `cid` FROM `contact`
WHERE 1 WHERE 1
$extra_query", $extra_query",
$user $user
); ));
// Selecting the id by priority, friendica first // Selecting the id by priority, friendica first
if (is_array($uinfo)) { if (is_array($uinfo)) {
@ -3416,19 +3415,20 @@ function api_statuses_f($qtype)
$sql_filter = 'AND (NOT `blocked` OR `pending`)'; $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` "SELECT `nurl`
FROM `contact` FROM `contact`
WHERE `uid` = %d WHERE `uid` = ?
AND NOT `self` AND NOT `self`
$sql_filter $sql_filter
$sql_extra $sql_extra
ORDER BY `nick` ORDER BY `nick`
LIMIT %d, %d", LIMIT ?, ?",
intval(api_user()), api_user(),
intval($start), $start,
intval($count) $count
); ));
$ret = []; $ret = [];
foreach ($r as $cid) { 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 // 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 // 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`, "SELECT %s `resource-id`, `created`, `edited`, `title`, `desc`, `album`, `filename`,
`type`, `height`, `width`, `datasize`, `profile`, `allow_cid`, `deny_cid`, `allow_gid`, `deny_gid`, `type`, `height`, `width`, `datasize`, `profile`, `allow_cid`, `deny_cid`, `allow_gid`, `deny_gid`,
MIN(`scale`) AS `minscale`, MAX(`scale`) AS `maxscale` 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`, `resource-id`, `created`, `edited`, `title`, `desc`, `album`, `filename`,
`type`, `height`, `width`, `datasize`, `profile`, `allow_cid`, `deny_cid`, `allow_gid`, `deny_gid`", `type`, `height`, `width`, `datasize`, `profile`, `allow_cid`, `deny_cid`, `allow_gid`, `deny_gid`",
$data_sql, $data_sql,
intval(local_user()), local_user(),
DBA::escape($photo_id), $photo_id
$scale_sql ));
);
$typetoext = [ $typetoext = [
'image/jpeg' => 'jpg', 'image/jpeg' => 'jpg',
@ -5223,7 +5222,7 @@ function group_create($name, $uid, $users = [])
throw new BadRequestException('group name not specified'); 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])) { if (DBA::exists('group', ['uid' => $uid, 'name' => $name, 'deleted' => false])) {
throw new BadRequestException('group name already exists'); 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 // get data for the specified searchstring
$r = q( $r = DBA::toArray(DBA::p(
"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", "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",
intval($uid), $uid,
DBA::escape('%'.$searchstring.'%') '%'.$searchstring.'%'
); ));
$profile_url = $user_info["url"]; $profile_url = $user_info["url"];

View file

@ -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;
}

View 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 // Always hide content from these networks
$networks = [Protocol::PHANTOM, Protocol::FACEBOOK, Protocol::APPNET]; $networks = [Protocol::PHANTOM, Protocol::FACEBOOK, Protocol::APPNET];
@ -125,6 +125,15 @@ class Widget
if (!Addon::isEnabled("pnut")) { if (!Addon::isEnabled("pnut")) {
$networks[] = Protocol::PNUT; $networks[] = Protocol::PNUT;
} }
return $networks;
}
/**
* Return unavailable networks
*/
public static function unavailableNetworks()
{
$networks = self::unavailableNetworksAsArray();
if (!sizeof($networks)) { if (!sizeof($networks)) {
return ""; return "";

View file

@ -39,8 +39,6 @@ use Friendica\Security\Security;
use Friendica\Util\Proxy; use Friendica\Util\Proxy;
use Friendica\Util\Strings; use Friendica\Util\Strings;
require_once "include/dba.php";
/** /**
* Class to handle photo dabatase table * Class to handle photo dabatase table
*/ */

View file

@ -41,11 +41,11 @@ use Friendica\Util\Strings;
*/ */
class Acl extends BaseModule class Acl extends BaseModule
{ {
const TYPE_GLOBAL_CONTACT = 'x'; const TYPE_GLOBAL_CONTACT = 'x'; //
const TYPE_MENTION_CONTACT = 'c'; const TYPE_MENTION_CONTACT = 'c'; //
const TYPE_MENTION_GROUP = 'g'; const TYPE_MENTION_GROUP = 'g';
const TYPE_MENTION_CONTACT_GROUP = ''; const TYPE_MENTION_CONTACT_GROUP = '';
const TYPE_MENTION_FORUM = 'f'; const TYPE_MENTION_FORUM = 'f'; //
const TYPE_PRIVATE_MESSAGE = 'm'; const TYPE_PRIVATE_MESSAGE = 'm';
const TYPE_ANY_CONTACT = 'a'; 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]); Logger::info('ACL {action} - {subaction}', ['module' => 'acl', 'action' => 'content', 'subaction' => 'search', 'search' => $search, 'type' => $type, 'conversation' => $conv_id]);
$sql_extra = ''; $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 != '') { if ($search != '') {
$sql_extra = "AND `name` LIKE '%%" . DBA::escape($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 // count groups and contacts
$group_count = 0; $group_count = 0;
if ($type == self::TYPE_MENTION_CONTACT_GROUP || $type == self::TYPE_MENTION_GROUP) { 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", $group_count = DBA::count('group', $condition_group);
intval(local_user())
);
$group_count = (int) $r[0]['g'];
} }
$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) { switch ($type) {
case self::TYPE_MENTION_CONTACT_GROUP: 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: case self::TYPE_MENTION_CONTACT:
// autocomplete for editor mentions $condition = DBA::mergeConditions($condition,
$r = q("SELECT COUNT(*) AS c FROM `contact` ["NOT `self` AND NOT `blocked` AND `notify` != ? AND `network` != ?", '', Protocol::STATUSNET
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;
case self::TYPE_MENTION_FORUM: case self::TYPE_MENTION_FORUM:
// autocomplete for editor mentions of forums $condition = DBA::mergeConditions($condition,
$r = q("SELECT COUNT(*) AS c FROM `contact` ["NOT `self` AND NOT `blocked` AND `notify` != ? AND `contact-type` = ?", '', Contact::TYPE_COMMUNITY
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'];
break; break;
case self::TYPE_PRIVATE_MESSAGE: case self::TYPE_PRIVATE_MESSAGE:
// autocomplete for Private Messages $condition = DBA::mergeConditions($condition,
$r = q("SELECT COUNT(*) AS c FROM `contact` ["NOT `self` AND NOT `blocked` AND `notify` != ? AND `network` IN (?, ?, ?)", '', Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA
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'];
break; break;
} }
$contact_count = DBA::count('contact', $condition);
$tot = $group_count + $contact_count; $tot = $group_count + $contact_count;
$groups = []; $groups = [];
@ -192,18 +167,18 @@ class Acl extends BaseModule
if ($type == self::TYPE_MENTION_CONTACT_GROUP || $type == self::TYPE_MENTION_GROUP) { if ($type == self::TYPE_MENTION_CONTACT_GROUP || $type == self::TYPE_MENTION_GROUP) {
/// @todo We should cache this query. /// @todo We should cache this query.
// This can be done when we can delete cache entries via wildcard // 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` FROM `group`
INNER JOIN `group_member` ON `group_member`.`gid`=`group`.`id` 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 $sql_extra
GROUP BY `group`.`name`, `group`.`id` GROUP BY `group`.`name`, `group`.`id`
ORDER BY `group`.`name` ORDER BY `group`.`name`
LIMIT %d, %d", LIMIT ?, ?",
intval(local_user()), local_user(),
intval($start), $start,
intval($count) $count
); ));
foreach ($r as $g) { foreach ($r as $g) {
$groups[] = [ $groups[] = [
@ -222,64 +197,8 @@ class Acl extends BaseModule
} }
$r = []; $r = [];
switch ($type) { if ($type != self::TYPE_MENTION_GROUP) {
case self::TYPE_MENTION_CONTACT_GROUP: $r = Contact::selectToArray([], $condition, ['order' => ['name']]);
$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 (DBA::isResult($r)) { if (DBA::isResult($r)) {
@ -294,7 +213,7 @@ class Acl extends BaseModule
'link' => $g['url'], 'link' => $g['url'],
'nick' => htmlentities(($g['attag'] ?? '') ?: $g['nick']), 'nick' => htmlentities(($g['attag'] ?? '') ?: $g['nick']),
'addr' => htmlentities(($g['addr'] ?? '') ?: $g['url']), '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']) { if ($entry['forum']) {
$forums[] = $entry; $forums[] = $entry;

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2021.12-dev\n" "Project-Id-Version: 2021.12-dev\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,27 +18,27 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "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 #, php-format
msgid "Daily posting limit of %d post reached. The post was rejected." 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." msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: include/api.php:1128 src/Module/BaseApi.php:310 #: include/api.php:1127 src/Module/BaseApi.php:310
#, php-format #, php-format
msgid "Weekly posting limit of %d post reached. The post was rejected." 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." msgid_plural "Weekly posting limit of %d posts reached. The post was rejected."
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: include/api.php:1142 src/Module/BaseApi.php:326 #: include/api.php:1141 src/Module/BaseApi.php:326
#, php-format #, php-format
msgid "Monthly posting limit of %d post reached. The post was rejected." msgid "Monthly posting limit of %d post reached. The post was rejected."
msgstr "" msgstr ""
#: include/api.php:4422 mod/photos.php:89 mod/photos.php:198 mod/photos.php:617 #: 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:1594 #: 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/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:101
#: src/Module/Settings/Profile/Photo/Crop.php:117 #: 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/Crop.php:158
#: src/Module/Settings/Profile/Photo/Index.php:112 #: 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:58 src/Module/Settings/UserExport.php:93
#: src/Module/Settings/UserExport.php:199 #: src/Module/Settings/UserExport.php:198
#: src/Module/Settings/UserExport.php:219 #: src/Module/Settings/UserExport.php:218
#: src/Module/Settings/UserExport.php:284 #: src/Module/Settings/UserExport.php:283
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""
@ -446,12 +446,12 @@ msgstr ""
msgid "Save" msgid "Save"
msgstr "" 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 #: src/Module/Contact/Poke.php:157 src/Object/Post.php:964
msgid "Loading..." msgid "Loading..."
msgstr "" 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 #: mod/wallmessage.php:139 src/Content/Conversation.php:327
msgid "Upload photo" msgid "Upload photo"
msgstr "" msgstr ""
@ -468,7 +468,7 @@ msgstr ""
msgid "attach file" msgid "attach file"
msgstr "" 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 #: mod/wallmessage.php:140
msgid "Insert web link" msgid "Insert web link"
msgstr "" msgstr ""
@ -510,8 +510,8 @@ msgstr ""
msgid "clear location" msgid "clear location"
msgstr "" msgstr ""
#: mod/editpost.php:107 mod/message.php:200 mod/message.php:365 #: mod/editpost.php:107 mod/message.php:200 mod/message.php:358
#: mod/photos.php:1521 mod/wallmessage.php:141 src/Content/Conversation.php:355 #: 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/Content/Conversation.php:689 src/Module/Item/Compose.php:165
#: src/Object/Post.php:502 #: src/Object/Post.php:502
msgid "Please wait" msgid "Please wait"
@ -543,14 +543,14 @@ msgstr ""
msgid "Example: bob@example.com, mary@example.com" msgid "Example: bob@example.com, mary@example.com"
msgstr "" msgstr ""
#: mod/editpost.php:128 mod/events.php:517 mod/photos.php:1369 #: mod/editpost.php:128 mod/events.php:517 mod/photos.php:1354
#: mod/photos.php:1425 mod/photos.php:1499 src/Content/Conversation.php:370 #: mod/photos.php:1410 mod/photos.php:1484 src/Content/Conversation.php:370
#: src/Module/Item/Compose.php:160 src/Object/Post.php:974 #: src/Module/Item/Compose.php:160 src/Object/Post.php:974
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
#: mod/editpost.php:130 mod/fbrowser.php:100 mod/fbrowser.php:127 #: 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 #: mod/tagrm.php:129 mod/unfollow.php:97 src/Content/Conversation.php:373
#: src/Module/Contact/Revoke.php:99 src/Module/RemoteFollow.php:116 #: src/Module/Contact/Revoke.php:99 src/Module/RemoteFollow.php:116
msgid "Cancel" msgid "Cancel"
@ -568,7 +568,7 @@ msgid "Browser"
msgstr "" msgstr ""
#: mod/editpost.php:136 mod/events.php:522 mod/photos.php:956 #: 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" msgid "Permissions"
msgstr "" msgstr ""
@ -627,7 +627,7 @@ msgid "Event Finishes:"
msgstr "" msgstr ""
#: mod/events.php:506 src/Module/Profile/Profile.php:172 #: 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:" msgid "Description:"
msgstr "" msgstr ""
@ -647,9 +647,9 @@ msgstr ""
msgid "Share this event" msgid "Share this event"
msgstr "" msgstr ""
#: mod/events.php:519 mod/message.php:201 mod/message.php:364 #: mod/events.php:519 mod/message.php:201 mod/message.php:357
#: mod/photos.php:938 mod/photos.php:1039 mod/photos.php:1327 #: mod/photos.php:938 mod/photos.php:1039 mod/photos.php:1312
#: mod/photos.php:1368 mod/photos.php:1424 mod/photos.php:1498 #: 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/Admin/Item/Source.php:65 src/Module/Contact.php:523
#: src/Module/Contact/Advanced.php:133 src/Module/Contact/Poke.php:158 #: src/Module/Contact/Advanced.php:133 src/Module/Contact/Poke.php:158
#: src/Module/Debug/ActivityPubConversion.php:141 #: 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:245 src/Module/Install.php:287
#: src/Module/Install.php:324 src/Module/Invite.php:177 #: src/Module/Install.php:324 src/Module/Invite.php:177
#: src/Module/Item/Compose.php:150 src/Module/Profile/Profile.php:247 #: 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/duepuntozero/config.php:69 view/theme/frio/config.php:160
#: view/theme/quattro/config.php:71 view/theme/vier/config.php:119 #: view/theme/quattro/config.php:71 view/theme/vier/config.php:119
msgid "Submit" msgid "Submit"
@ -975,7 +975,7 @@ msgstr ""
msgid "Conversation was not removed." msgid "Conversation was not removed."
msgstr "" 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:" msgid "Please enter a link URL:"
msgstr "" msgstr ""
@ -983,65 +983,65 @@ msgstr ""
msgid "Send Private Message" msgid "Send Private Message"
msgstr "" 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:" msgid "To:"
msgstr "" 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:" msgid "Subject:"
msgstr "" 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 #: src/Module/Invite.php:170
msgid "Your message:" msgid "Your message:"
msgstr "" msgstr ""
#: mod/message.php:229 #: mod/message.php:222
msgid "No messages." msgid "No messages."
msgstr "" msgstr ""
#: mod/message.php:285 #: mod/message.php:278
msgid "Message not available." msgid "Message not available."
msgstr "" msgstr ""
#: mod/message.php:330 #: mod/message.php:323
msgid "Delete message" msgid "Delete message"
msgstr "" 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" msgid "D, d M Y - g:i A"
msgstr "" msgstr ""
#: mod/message.php:347 mod/message.php:461 #: mod/message.php:340 mod/message.php:454
msgid "Delete conversation" msgid "Delete conversation"
msgstr "" msgstr ""
#: mod/message.php:349 #: mod/message.php:342
msgid "" msgid ""
"No secure communications available. You <strong>may</strong> be able to " "No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page." "respond from the sender's profile page."
msgstr "" msgstr ""
#: mod/message.php:353 #: mod/message.php:346
msgid "Send Reply" msgid "Send Reply"
msgstr "" msgstr ""
#: mod/message.php:435 #: mod/message.php:428
#, php-format #, php-format
msgid "Unknown sender - %s" msgid "Unknown sender - %s"
msgstr "" msgstr ""
#: mod/message.php:437 #: mod/message.php:430
#, php-format #, php-format
msgid "You and %s" msgid "You and %s"
msgstr "" msgstr ""
#: mod/message.php:439 #: mod/message.php:432
#, php-format #, php-format
msgid "%s and You" msgid "%s and You"
msgstr "" msgstr ""
#: mod/message.php:467 #: mod/message.php:460
#, php-format #, php-format
msgid "%d message" msgid "%d message"
msgid_plural "%d messages" msgid_plural "%d messages"
@ -1108,11 +1108,11 @@ msgstr ""
msgid "Photo Albums" msgid "Photo Albums"
msgstr "" msgstr ""
#: mod/photos.php:112 mod/photos.php:1623 #: mod/photos.php:112 mod/photos.php:1608
msgid "Recent Photos" msgid "Recent Photos"
msgstr "" 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" msgid "Upload New Photos"
msgstr "" msgstr ""
@ -1231,128 +1231,128 @@ msgstr ""
msgid "Show Oldest First" msgid "Show Oldest First"
msgstr "" msgstr ""
#: mod/photos.php:1075 mod/photos.php:1608 #: mod/photos.php:1075 mod/photos.php:1593
msgid "View Photo" msgid "View Photo"
msgstr "" msgstr ""
#: mod/photos.php:1112 #: mod/photos.php:1108
msgid "Permission denied. Access to this item may be restricted." msgid "Permission denied. Access to this item may be restricted."
msgstr "" msgstr ""
#: mod/photos.php:1114 #: mod/photos.php:1110
msgid "Photo not available" msgid "Photo not available"
msgstr "" msgstr ""
#: mod/photos.php:1124 #: mod/photos.php:1120
msgid "Do you really want to delete this photo?" msgid "Do you really want to delete this photo?"
msgstr "" msgstr ""
#: mod/photos.php:1125 mod/photos.php:1328 #: mod/photos.php:1121 mod/photos.php:1313
msgid "Delete Photo" msgid "Delete Photo"
msgstr "" msgstr ""
#: mod/photos.php:1219 #: mod/photos.php:1211
msgid "View photo" msgid "View photo"
msgstr "" msgstr ""
#: mod/photos.php:1221 #: mod/photos.php:1213
msgid "Edit photo" msgid "Edit photo"
msgstr "" msgstr ""
#: mod/photos.php:1222 #: mod/photos.php:1214
msgid "Delete photo" msgid "Delete photo"
msgstr "" msgstr ""
#: mod/photos.php:1223 #: mod/photos.php:1215
msgid "Use as profile photo" msgid "Use as profile photo"
msgstr "" msgstr ""
#: mod/photos.php:1230 #: mod/photos.php:1222
msgid "Private Photo" msgid "Private Photo"
msgstr "" msgstr ""
#: mod/photos.php:1236 #: mod/photos.php:1228
msgid "View Full Size" msgid "View Full Size"
msgstr "" msgstr ""
#: mod/photos.php:1296 #: mod/photos.php:1281
msgid "Tags: " msgid "Tags: "
msgstr "" msgstr ""
#: mod/photos.php:1299 #: mod/photos.php:1284
msgid "[Select tags to remove]" msgid "[Select tags to remove]"
msgstr "" msgstr ""
#: mod/photos.php:1314 #: mod/photos.php:1299
msgid "New album name" msgid "New album name"
msgstr "" msgstr ""
#: mod/photos.php:1315 #: mod/photos.php:1300
msgid "Caption" msgid "Caption"
msgstr "" msgstr ""
#: mod/photos.php:1316 #: mod/photos.php:1301
msgid "Add a Tag" msgid "Add a Tag"
msgstr "" msgstr ""
#: mod/photos.php:1316 #: mod/photos.php:1301
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr "" msgstr ""
#: mod/photos.php:1317 #: mod/photos.php:1302
msgid "Do not rotate" msgid "Do not rotate"
msgstr "" msgstr ""
#: mod/photos.php:1318 #: mod/photos.php:1303
msgid "Rotate CW (right)" msgid "Rotate CW (right)"
msgstr "" msgstr ""
#: mod/photos.php:1319 #: mod/photos.php:1304
msgid "Rotate CCW (left)" msgid "Rotate CCW (left)"
msgstr "" 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/Module/Contact.php:1010 src/Module/Item/Compose.php:148
#: src/Object/Post.php:960 #: src/Object/Post.php:960
msgid "This is you" msgid "This is you"
msgstr "" 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 #: src/Object/Post.php:496 src/Object/Post.php:962
msgid "Comment" msgid "Comment"
msgstr "" 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" msgid "Select"
msgstr "" 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/Active.php:139 src/Module/Admin/Users/Blocked.php:140
#: src/Module/Admin/Users/Index.php:153 #: src/Module/Admin/Users/Index.php:153
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: mod/photos.php:1518 src/Object/Post.php:349 #: mod/photos.php:1503 src/Object/Post.php:349
msgid "Like" msgid "Like"
msgstr "" msgstr ""
#: mod/photos.php:1519 src/Object/Post.php:349 #: mod/photos.php:1504 src/Object/Post.php:349
msgid "I like this (toggle)" msgid "I like this (toggle)"
msgstr "" msgstr ""
#: mod/photos.php:1520 src/Object/Post.php:350 #: mod/photos.php:1505 src/Object/Post.php:350
msgid "Dislike" msgid "Dislike"
msgstr "" 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)" msgid "I don't like this (toggle)"
msgstr "" msgstr ""
#: mod/photos.php:1544 #: mod/photos.php:1529
msgid "Map" msgid "Map"
msgstr "" msgstr ""
#: mod/photos.php:1614 #: mod/photos.php:1599
msgid "View Album" msgid "View Album"
msgstr "" msgstr ""
@ -1699,7 +1699,7 @@ msgstr ""
msgid "Unable to find your profile. Please contact your admin." msgid "Unable to find your profile. Please contact your admin."
msgstr "" msgstr ""
#: mod/settings.php:616 src/Content/Widget.php:533 #: mod/settings.php:616 src/Content/Widget.php:542
msgid "Account Types" msgid "Account Types"
msgstr "" msgstr ""
@ -2201,7 +2201,7 @@ msgstr ""
msgid "Friend Suggestions" msgid "Friend Suggestions"
msgstr "" 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" msgid "photo"
msgstr "" msgstr ""
@ -2321,7 +2321,7 @@ msgstr ""
msgid "File upload failed." msgid "File upload failed."
msgstr "" msgstr ""
#: mod/wall_upload.php:224 src/Model/Photo.php:998 #: mod/wall_upload.php:224 src/Model/Photo.php:996
msgid "Wall Photos" msgid "Wall Photos"
msgstr "" msgstr ""
@ -2386,17 +2386,17 @@ msgstr ""
msgid "All contacts" msgid "All contacts"
msgstr "" msgstr ""
#: src/BaseModule.php:212 src/Content/Widget.php:238 src/Core/ACL.php:195 #: src/BaseModule.php:212 src/Content/Widget.php:247 src/Core/ACL.php:195
#: src/Module/Contact.php:773 src/Module/PermissionTooltip.php:77 #: src/Module/Contact.php:773 src/Module/PermissionTooltip.php:75
#: src/Module/PermissionTooltip.php:99 #: src/Module/PermissionTooltip.php:97
msgid "Followers" msgid "Followers"
msgstr "" 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" msgid "Following"
msgstr "" 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" msgid "Mutual friends"
msgstr "" msgstr ""
@ -2964,7 +2964,7 @@ msgid "Display membership date in profile"
msgstr "" msgstr ""
#: src/Content/ForumManager.php:145 src/Content/Nav.php:239 #: 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" msgid "Forums"
msgstr "" msgstr ""
@ -2972,12 +2972,12 @@ msgstr ""
msgid "External link to forum" msgid "External link to forum"
msgstr "" msgstr ""
#: src/Content/ForumManager.php:150 src/Content/Widget.php:509 #: src/Content/ForumManager.php:150 src/Content/Widget.php:518
msgid "show less" msgid "show less"
msgstr "" msgstr ""
#: src/Content/ForumManager.php:151 src/Content/Widget.php:411 #: src/Content/ForumManager.php:151 src/Content/Widget.php:420
#: src/Content/Widget.php:510 #: src/Content/Widget.php:519
msgid "show more" msgid "show more"
msgstr "" msgstr ""
@ -2986,11 +2986,11 @@ msgstr ""
msgid "%1$s poked %2$s" msgid "%1$s poked %2$s"
msgstr "" msgstr ""
#: src/Content/Item.php:338 src/Model/Item.php:2622 #: src/Content/Item.php:338 src/Model/Item.php:2624
msgid "event" msgid "event"
msgstr "" 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" msgid "Follow Thread"
msgstr "" msgstr ""
@ -3000,7 +3000,7 @@ msgstr ""
#: src/Content/Item.php:444 src/Content/Item.php:466 src/Model/Contact.php:1010 #: 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/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" msgid "View Profile"
msgstr "" msgstr ""
@ -3335,8 +3335,8 @@ msgid ""
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s" "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
msgstr "" msgstr ""
#: src/Content/Text/BBCode.php:1185 src/Model/Item.php:3152 #: src/Content/Text/BBCode.php:1185 src/Model/Item.php:3154
#: src/Model/Item.php:3158 src/Model/Item.php:3159 #: src/Model/Item.php:3160 src/Model/Item.php:3161
msgid "Link to source" msgid "Link to source"
msgstr "" msgstr ""
@ -3434,68 +3434,68 @@ msgstr ""
msgid "Local Directory" msgid "Local Directory"
msgstr "" 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 #: src/Module/Contact.php:760 src/Module/Welcome.php:76
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: src/Content/Widget.php:216 #: src/Content/Widget.php:225
msgid "Everyone" msgid "Everyone"
msgstr "" msgstr ""
#: src/Content/Widget.php:245 #: src/Content/Widget.php:254
msgid "Relationships" msgid "Relationships"
msgstr "" 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 #: src/Module/Group.php:292
msgid "All Contacts" msgid "All Contacts"
msgstr "" msgstr ""
#: src/Content/Widget.php:286 #: src/Content/Widget.php:295
msgid "Protocols" msgid "Protocols"
msgstr "" msgstr ""
#: src/Content/Widget.php:288 #: src/Content/Widget.php:297
msgid "All Protocols" msgid "All Protocols"
msgstr "" msgstr ""
#: src/Content/Widget.php:316 #: src/Content/Widget.php:325
msgid "Saved Folders" msgid "Saved Folders"
msgstr "" msgstr ""
#: src/Content/Widget.php:318 src/Content/Widget.php:352 #: src/Content/Widget.php:327 src/Content/Widget.php:361
msgid "Everything" msgid "Everything"
msgstr "" msgstr ""
#: src/Content/Widget.php:350 #: src/Content/Widget.php:359
msgid "Categories" msgid "Categories"
msgstr "" msgstr ""
#: src/Content/Widget.php:407 #: src/Content/Widget.php:416
#, php-format #, php-format
msgid "%d contact in common" msgid "%d contact in common"
msgid_plural "%d contacts in common" msgid_plural "%d contacts in common"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Content/Widget.php:503 #: src/Content/Widget.php:512
msgid "Archives" msgid "Archives"
msgstr "" msgstr ""
#: src/Content/Widget.php:527 #: src/Content/Widget.php:536
msgid "Persons" msgid "Persons"
msgstr "" msgstr ""
#: src/Content/Widget.php:528 #: src/Content/Widget.php:537
msgid "Organisations" msgid "Organisations"
msgstr "" msgstr ""
#: src/Content/Widget.php:529 src/Model/Contact.php:1503 #: src/Content/Widget.php:538 src/Model/Contact.php:1503
msgid "News" msgid "News"
msgstr "" 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" msgid "All"
msgstr "" msgstr ""
@ -3568,8 +3568,8 @@ msgstr ""
msgid "Yourself" msgid "Yourself"
msgstr "" msgstr ""
#: src/Core/ACL.php:202 src/Module/PermissionTooltip.php:83 #: src/Core/ACL.php:202 src/Module/PermissionTooltip.php:81
#: src/Module/PermissionTooltip.php:105 #: src/Module/PermissionTooltip.php:103
msgid "Mutuals" msgid "Mutuals"
msgstr "" msgstr ""
@ -4190,35 +4190,35 @@ msgid ""
"\t\t\t\t\tThe friendica database was successfully updated from %s to %s." "\t\t\t\t\tThe friendica database was successfully updated from %s to %s."
msgstr "" msgstr ""
#: src/Core/UserImport.php:126 #: src/Core/UserImport.php:124
msgid "Error decoding account file" msgid "Error decoding account file"
msgstr "" 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?" msgid "Error! No version data in file! This is not a Friendica account file?"
msgstr "" msgstr ""
#: src/Core/UserImport.php:140 #: src/Core/UserImport.php:138
#, php-format #, php-format
msgid "User '%s' already exists on this server!" msgid "User '%s' already exists on this server!"
msgstr "" msgstr ""
#: src/Core/UserImport.php:176 #: src/Core/UserImport.php:174
msgid "User creation error" msgid "User creation error"
msgstr "" msgstr ""
#: src/Core/UserImport.php:221 #: src/Core/UserImport.php:219
#, php-format #, php-format
msgid "%d contact not imported" msgid "%d contact not imported"
msgid_plural "%d contacts not imported" msgid_plural "%d contacts not imported"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: src/Core/UserImport.php:274 #: src/Core/UserImport.php:272
msgid "User profile creation error" msgid "User profile creation error"
msgstr "" msgstr ""
#: src/Core/UserImport.php:330 #: src/Core/UserImport.php:325
msgid "Done. You can now login with your username and password" msgid "Done. You can now login with your username and password"
msgstr "" msgstr ""
@ -4493,33 +4493,33 @@ msgstr ""
msgid "Edit groups" msgid "Edit groups"
msgstr "" msgstr ""
#: src/Model/Item.php:1676 #: src/Model/Item.php:1677
#, php-format #, php-format
msgid "Detected languages in this post:\\n%s" msgid "Detected languages in this post:\\n%s"
msgstr "" msgstr ""
#: src/Model/Item.php:2626 #: src/Model/Item.php:2628
msgid "activity" msgid "activity"
msgstr "" msgstr ""
#: src/Model/Item.php:2628 #: src/Model/Item.php:2630
msgid "comment" msgid "comment"
msgstr "" msgstr ""
#: src/Model/Item.php:2631 #: src/Model/Item.php:2633
msgid "post" msgid "post"
msgstr "" msgstr ""
#: src/Model/Item.php:2768 #: src/Model/Item.php:2770
#, php-format #, php-format
msgid "Content warning: %s" msgid "Content warning: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3117 #: src/Model/Item.php:3119
msgid "bytes" msgid "bytes"
msgstr "" 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" msgid "View on separate page"
msgstr "" msgstr ""
@ -6601,7 +6601,7 @@ msgstr ""
msgid "Server Settings" msgid "Server Settings"
msgstr "" 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" msgid "Summary"
msgstr "" msgstr ""
@ -7725,7 +7725,7 @@ msgid "Sort by post received date"
msgstr "" msgstr ""
#: src/Module/Conversation/Network.php:250 #: src/Module/Conversation/Network.php:250
#: src/Module/Settings/Profile/Index.php:225 #: src/Module/Settings/Profile/Index.php:228
msgid "Personal" msgid "Personal"
msgstr "" msgstr ""
@ -7949,7 +7949,7 @@ msgid "Twitter Source / Tweet URL (requires API key)"
msgstr "" msgstr ""
#: src/Module/Debug/Feed.php:38 src/Module/Filer/SaveTag.php:40 #: 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" msgid "You must be logged in to use this module"
msgstr "" msgstr ""
@ -8658,7 +8658,7 @@ msgstr ""
msgid "Remote privacy information not available." msgid "Remote privacy information not available."
msgstr "" msgstr ""
#: src/Module/PermissionTooltip.php:71 #: src/Module/PermissionTooltip.php:69
msgid "Visible to:" msgid "Visible to:"
msgstr "" msgstr ""
@ -8712,12 +8712,12 @@ msgstr ""
msgid "Birthday:" msgid "Birthday:"
msgstr "" 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 #: src/Util/Temporal.php:165
msgid "Age: " msgid "Age: "
msgstr "" 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 #: src/Util/Temporal.php:165
#, php-format #, php-format
msgid "%d year old" msgid "%d year old"
@ -9292,133 +9292,133 @@ msgstr ""
msgid "Beginning of week:" msgid "Beginning of week:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:82 #: src/Module/Settings/Profile/Index.php:83
msgid "Profile Name is required." msgid "Profile Name is required."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:133 #: src/Module/Settings/Profile/Index.php:134
msgid "Profile couldn't be updated." msgid "Profile couldn't be updated."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:170 #: src/Module/Settings/Profile/Index.php:173
#: src/Module/Settings/Profile/Index.php:190 #: src/Module/Settings/Profile/Index.php:193
msgid "Label:" msgid "Label:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:171 #: src/Module/Settings/Profile/Index.php:174
#: src/Module/Settings/Profile/Index.php:191 #: src/Module/Settings/Profile/Index.php:194
msgid "Value:" msgid "Value:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:181 #: src/Module/Settings/Profile/Index.php:184
#: src/Module/Settings/Profile/Index.php:201 #: src/Module/Settings/Profile/Index.php:204
msgid "Field Permissions" msgid "Field Permissions"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:182 #: src/Module/Settings/Profile/Index.php:185
#: src/Module/Settings/Profile/Index.php:202 #: src/Module/Settings/Profile/Index.php:205
msgid "(click to open/close)" msgid "(click to open/close)"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:188 #: src/Module/Settings/Profile/Index.php:191
msgid "Add a new profile field" msgid "Add a new profile field"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:218 #: src/Module/Settings/Profile/Index.php:221
msgid "Profile Actions" msgid "Profile Actions"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:219 #: src/Module/Settings/Profile/Index.php:222
msgid "Edit Profile Details" msgid "Edit Profile Details"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:221 #: src/Module/Settings/Profile/Index.php:224
msgid "Change Profile Photo" msgid "Change Profile Photo"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:226 #: src/Module/Settings/Profile/Index.php:229
msgid "Profile picture" msgid "Profile picture"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:227 #: src/Module/Settings/Profile/Index.php:230
msgid "Location" msgid "Location"
msgstr "" 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 #: src/Util/Temporal.php:95
msgid "Miscellaneous" msgid "Miscellaneous"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:229 #: src/Module/Settings/Profile/Index.php:232
msgid "Custom Profile Fields" msgid "Custom Profile Fields"
msgstr "" 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" msgid "Upload Profile Photo"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:235 #: src/Module/Settings/Profile/Index.php:238
msgid "Display name:" msgid "Display name:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:238 #: src/Module/Settings/Profile/Index.php:241
msgid "Street Address:" msgid "Street Address:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:239 #: src/Module/Settings/Profile/Index.php:242
msgid "Locality/City:" msgid "Locality/City:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:240 #: src/Module/Settings/Profile/Index.php:243
msgid "Region/State:" msgid "Region/State:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:241 #: src/Module/Settings/Profile/Index.php:244
msgid "Postal/Zip Code:" msgid "Postal/Zip Code:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:242 #: src/Module/Settings/Profile/Index.php:245
msgid "Country:" msgid "Country:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:244 #: src/Module/Settings/Profile/Index.php:247
msgid "XMPP (Jabber) address:" msgid "XMPP (Jabber) address:"
msgstr "" 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." msgid "The XMPP address will be published so that people can follow you there."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:245 #: src/Module/Settings/Profile/Index.php:248
msgid "Matrix (Element) address:" msgid "Matrix (Element) address:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:245 #: src/Module/Settings/Profile/Index.php:248
msgid "" msgid ""
"The Matrix address will be published so that people can follow you there." "The Matrix address will be published so that people can follow you there."
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:246 #: src/Module/Settings/Profile/Index.php:249
msgid "Homepage URL:" msgid "Homepage URL:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:247 #: src/Module/Settings/Profile/Index.php:250
msgid "Public Keywords:" msgid "Public Keywords:"
msgstr "" 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)" msgid "(Used for suggesting potential friends, can be seen by others)"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:248 #: src/Module/Settings/Profile/Index.php:251
msgid "Private Keywords:" msgid "Private Keywords:"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:248 #: src/Module/Settings/Profile/Index.php:251
msgid "(Used for searching profiles, never shown to others)" msgid "(Used for searching profiles, never shown to others)"
msgstr "" msgstr ""
#: src/Module/Settings/Profile/Index.php:249 #: src/Module/Settings/Profile/Index.php:252
#, php-format #, php-format
msgid "" msgid ""
"<p>Custom fields appear on <a href=\"%s\">your profile page</a>.</p>\n" "<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." msgid "The folder view/smarty3/ must be writable by webserver."
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:275 #: src/Repository/ProfileField.php:280
msgid "Hometown:" msgid "Hometown:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:276 #: src/Repository/ProfileField.php:281
msgid "Marital Status:" msgid "Marital Status:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:277 #: src/Repository/ProfileField.php:282
msgid "With:" msgid "With:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:278 #: src/Repository/ProfileField.php:283
msgid "Since:" msgid "Since:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:279 #: src/Repository/ProfileField.php:284
msgid "Sexual Preference:" msgid "Sexual Preference:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:280 #: src/Repository/ProfileField.php:285
msgid "Political Views:" msgid "Political Views:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:281 #: src/Repository/ProfileField.php:286
msgid "Religious Views:" msgid "Religious Views:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:282 #: src/Repository/ProfileField.php:287
msgid "Likes:" msgid "Likes:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:283 #: src/Repository/ProfileField.php:288
msgid "Dislikes:" msgid "Dislikes:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:284 #: src/Repository/ProfileField.php:289
msgid "Title/Description:" msgid "Title/Description:"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:286 #: src/Repository/ProfileField.php:291
msgid "Musical interests" msgid "Musical interests"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:287 #: src/Repository/ProfileField.php:292
msgid "Books, literature" msgid "Books, literature"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:288 #: src/Repository/ProfileField.php:293
msgid "Television" msgid "Television"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:289 #: src/Repository/ProfileField.php:294
msgid "Film/dance/culture/entertainment" msgid "Film/dance/culture/entertainment"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:290 #: src/Repository/ProfileField.php:295
msgid "Hobbies/Interests" msgid "Hobbies/Interests"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:291 #: src/Repository/ProfileField.php:296
msgid "Love/romance" msgid "Love/romance"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:292 #: src/Repository/ProfileField.php:297
msgid "Work/employment" msgid "Work/employment"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:293 #: src/Repository/ProfileField.php:298
msgid "School/education" msgid "School/education"
msgstr "" msgstr ""
#: src/Repository/ProfileField.php:294 #: src/Repository/ProfileField.php:299
msgid "Contact information and Social Networks" msgid "Contact information and Social Networks"
msgstr "" msgstr ""

View 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 * We use this to give the data to textcomplete and have a filter function at the
* contact page. * contact page.
* *
* @todo Is this function still in use?
*
* @param App $a The app data @TODO Unused * @param App $a The app data @TODO Unused
* @param array $results The array with the originals from acl_lookup() * @param array $results The array with the originals from acl_lookup()
*/ */
@ -273,17 +275,17 @@ function frio_acl_lookup(App $a, &$results)
} }
$total = 0; $total = 0;
$r = q("SELECT COUNT(*) AS `total` FROM `contact` $r = DBA::fetchFirst("SELECT COUNT(*) AS `total` FROM `contact`
WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `pending` $sql_extra ", intval($_SESSION['uid'])); WHERE `uid` = ? AND NOT `self` AND NOT `deleted` AND NOT `pending` $sql_extra ", $_SESSION['uid']);
if (DBA::isResult($r)) { if (DBA::isResult($r)) {
$total = $r[0]['total']; $total = $r['total'];
} }
$sql_extra3 = Widget::unavailableNetworks(); $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 ", $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 ?, ? ",
intval($_SESSION['uid']), intval($results['start']), intval($results['count']) $_SESSION['uid'], $results['start'], $results['count']
); ));
$contacts = []; $contacts = [];