Merge pull request #12109 from tobiasd/verify-homepage-relme
Verify homepage by checking for a rel-me link back to the user profile
This commit is contained in:
commit
6cb6841866
|
@ -1,6 +1,6 @@
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
-- Friendica 2022.12-dev (Giant Rhubarb)
|
-- Friendica 2022.12-dev (Giant Rhubarb)
|
||||||
-- DB_UPDATE_VERSION 1486
|
-- DB_UPDATE_VERSION 1487
|
||||||
-- ------------------------------------------
|
-- ------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -1577,6 +1577,7 @@ CREATE TABLE IF NOT EXISTS `profile` (
|
||||||
`education` text COMMENT 'Deprecated',
|
`education` text COMMENT 'Deprecated',
|
||||||
`contact` text COMMENT 'Deprecated',
|
`contact` text COMMENT 'Deprecated',
|
||||||
`homepage` varchar(255) NOT NULL DEFAULT '' COMMENT '',
|
`homepage` varchar(255) NOT NULL DEFAULT '' COMMENT '',
|
||||||
|
`homepage_verified` boolean NOT NULL DEFAULT '0' COMMENT 'was the homepage verified by a rel-me link back to the profile',
|
||||||
`xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT 'XMPP address',
|
`xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT 'XMPP address',
|
||||||
`matrix` varchar(255) NOT NULL DEFAULT '' COMMENT 'Matrix address',
|
`matrix` varchar(255) NOT NULL DEFAULT '' COMMENT 'Matrix address',
|
||||||
`photo` varbinary(383) NOT NULL DEFAULT '' COMMENT '',
|
`photo` varbinary(383) NOT NULL DEFAULT '' COMMENT '',
|
||||||
|
@ -2674,6 +2675,7 @@ CREATE VIEW `owner-view` AS SELECT
|
||||||
`profile`.`postal-code` AS `postal-code`,
|
`profile`.`postal-code` AS `postal-code`,
|
||||||
`profile`.`country-name` AS `country-name`,
|
`profile`.`country-name` AS `country-name`,
|
||||||
`profile`.`homepage` AS `homepage`,
|
`profile`.`homepage` AS `homepage`,
|
||||||
|
`profile`.`homepage_verified` AS `homepage_verified`,
|
||||||
`profile`.`dob` AS `dob`
|
`profile`.`dob` AS `dob`
|
||||||
FROM `user`
|
FROM `user`
|
||||||
INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self`
|
INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self`
|
||||||
|
|
|
@ -6,51 +6,52 @@ user profiles data
|
||||||
Fields
|
Fields
|
||||||
------
|
------
|
||||||
|
|
||||||
| Field | Description | Type | Null | Key | Default | Extra |
|
| Field | Description | Type | Null | Key | Default | Extra |
|
||||||
| ------------ | --------------------------------------------- | ------------------ | ---- | --- | ---------- | -------------- |
|
| ----------------- | -------------------------------------------------------------- | ------------------ | ---- | --- | ---------- | -------------- |
|
||||||
| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
|
| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
|
||||||
| uid | Owner User id | mediumint unsigned | NO | | 0 | |
|
| uid | Owner User id | mediumint unsigned | NO | | 0 | |
|
||||||
| profile-name | Deprecated | varchar(255) | YES | | NULL | |
|
| profile-name | Deprecated | varchar(255) | YES | | NULL | |
|
||||||
| is-default | Deprecated | boolean | YES | | NULL | |
|
| is-default | Deprecated | boolean | YES | | NULL | |
|
||||||
| hide-friends | Hide friend list from viewers of this profile | boolean | NO | | 0 | |
|
| hide-friends | Hide friend list from viewers of this profile | boolean | NO | | 0 | |
|
||||||
| name | | varchar(255) | NO | | | |
|
| name | | varchar(255) | NO | | | |
|
||||||
| pdesc | Deprecated | varchar(255) | YES | | NULL | |
|
| pdesc | Deprecated | varchar(255) | YES | | NULL | |
|
||||||
| dob | Day of birth | varchar(32) | NO | | 0000-00-00 | |
|
| dob | Day of birth | varchar(32) | NO | | 0000-00-00 | |
|
||||||
| address | | varchar(255) | NO | | | |
|
| address | | varchar(255) | NO | | | |
|
||||||
| locality | | varchar(255) | NO | | | |
|
| locality | | varchar(255) | NO | | | |
|
||||||
| region | | varchar(255) | NO | | | |
|
| region | | varchar(255) | NO | | | |
|
||||||
| postal-code | | varchar(32) | NO | | | |
|
| postal-code | | varchar(32) | NO | | | |
|
||||||
| country-name | | varchar(255) | NO | | | |
|
| country-name | | varchar(255) | NO | | | |
|
||||||
| hometown | Deprecated | varchar(255) | YES | | NULL | |
|
| hometown | Deprecated | varchar(255) | YES | | NULL | |
|
||||||
| gender | Deprecated | varchar(32) | YES | | NULL | |
|
| gender | Deprecated | varchar(32) | YES | | NULL | |
|
||||||
| marital | Deprecated | varchar(255) | YES | | NULL | |
|
| marital | Deprecated | varchar(255) | YES | | NULL | |
|
||||||
| with | Deprecated | text | YES | | NULL | |
|
| with | Deprecated | text | YES | | NULL | |
|
||||||
| howlong | Deprecated | datetime | YES | | NULL | |
|
| howlong | Deprecated | datetime | YES | | NULL | |
|
||||||
| sexual | Deprecated | varchar(255) | YES | | NULL | |
|
| sexual | Deprecated | varchar(255) | YES | | NULL | |
|
||||||
| politic | Deprecated | varchar(255) | YES | | NULL | |
|
| politic | Deprecated | varchar(255) | YES | | NULL | |
|
||||||
| religion | Deprecated | varchar(255) | YES | | NULL | |
|
| religion | Deprecated | varchar(255) | YES | | NULL | |
|
||||||
| pub_keywords | | text | YES | | NULL | |
|
| pub_keywords | | text | YES | | NULL | |
|
||||||
| prv_keywords | | text | YES | | NULL | |
|
| prv_keywords | | text | YES | | NULL | |
|
||||||
| likes | Deprecated | text | YES | | NULL | |
|
| likes | Deprecated | text | YES | | NULL | |
|
||||||
| dislikes | Deprecated | text | YES | | NULL | |
|
| dislikes | Deprecated | text | YES | | NULL | |
|
||||||
| about | Profile description | text | YES | | NULL | |
|
| about | Profile description | text | YES | | NULL | |
|
||||||
| summary | Deprecated | varchar(255) | YES | | NULL | |
|
| summary | Deprecated | varchar(255) | YES | | NULL | |
|
||||||
| music | Deprecated | text | YES | | NULL | |
|
| music | Deprecated | text | YES | | NULL | |
|
||||||
| book | Deprecated | text | YES | | NULL | |
|
| book | Deprecated | text | YES | | NULL | |
|
||||||
| tv | Deprecated | text | YES | | NULL | |
|
| tv | Deprecated | text | YES | | NULL | |
|
||||||
| film | Deprecated | text | YES | | NULL | |
|
| film | Deprecated | text | YES | | NULL | |
|
||||||
| interest | Deprecated | text | YES | | NULL | |
|
| interest | Deprecated | text | YES | | NULL | |
|
||||||
| romance | Deprecated | text | YES | | NULL | |
|
| romance | Deprecated | text | YES | | NULL | |
|
||||||
| work | Deprecated | text | YES | | NULL | |
|
| work | Deprecated | text | YES | | NULL | |
|
||||||
| education | Deprecated | text | YES | | NULL | |
|
| education | Deprecated | text | YES | | NULL | |
|
||||||
| contact | Deprecated | text | YES | | NULL | |
|
| contact | Deprecated | text | YES | | NULL | |
|
||||||
| homepage | | varchar(255) | NO | | | |
|
| homepage | | varchar(255) | NO | | | |
|
||||||
| xmpp | XMPP address | varchar(255) | NO | | | |
|
| homepage_verified | was the homepage verified by a rel-me link back to the profile | boolean | NO | | 0 | |
|
||||||
| matrix | Matrix address | varchar(255) | NO | | | |
|
| xmpp | XMPP address | varchar(255) | NO | | | |
|
||||||
| photo | | varbinary(383) | NO | | | |
|
| matrix | Matrix address | varchar(255) | NO | | | |
|
||||||
| thumb | | varbinary(383) | NO | | | |
|
| photo | | varbinary(383) | NO | | | |
|
||||||
| publish | publish default profile in local directory | boolean | NO | | 0 | |
|
| thumb | | varbinary(383) | NO | | | |
|
||||||
| net-publish | publish profile in global directory | boolean | NO | | 0 | |
|
| publish | publish default profile in local directory | boolean | NO | | 0 | |
|
||||||
|
| net-publish | publish profile in global directory | boolean | NO | | 0 | |
|
||||||
|
|
||||||
Indexes
|
Indexes
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -38,6 +38,7 @@ use Friendica\Module\Security\Login;
|
||||||
use Friendica\Network\HTTPException;
|
use Friendica\Network\HTTPException;
|
||||||
use Friendica\Util\DateTimeFormat;
|
use Friendica\Util\DateTimeFormat;
|
||||||
use Friendica\Util\Temporal;
|
use Friendica\Util\Temporal;
|
||||||
|
use Friendica\Core\Worker;
|
||||||
|
|
||||||
class Index extends BaseSettings
|
class Index extends BaseSettings
|
||||||
{
|
{
|
||||||
|
@ -127,6 +128,8 @@ class Index extends BaseSettings
|
||||||
DI::userSession()->getLocalUserId()
|
DI::userSession()->getLocalUserId()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Worker::add(Worker::PRIORITY_MEDIUM, 'CheckRelMeProfileLink', DI::userSession()->getLocalUserId());
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
DI::sysmsg()->addNotice(DI::l10n()->t('Profile couldn\'t be updated.'));
|
DI::sysmsg()->addNotice(DI::l10n()->t('Profile couldn\'t be updated.'));
|
||||||
return;
|
return;
|
||||||
|
@ -210,6 +213,12 @@ class Index extends BaseSettings
|
||||||
|
|
||||||
$personal_account = ($profile['account-type'] != User::ACCOUNT_TYPE_COMMUNITY);
|
$personal_account = ($profile['account-type'] != User::ACCOUNT_TYPE_COMMUNITY);
|
||||||
|
|
||||||
|
if ($profile['homepage_verified']) {
|
||||||
|
$homepage_help_text = DI::l10n()->t('The homepage is verified. A rel="me" link back to your Friendica profile page was found on the homepage.');
|
||||||
|
} else {
|
||||||
|
$homepage_help_text = DI::l10n()->t('To verify your homepage, add a rel="me" link to it, pointing to your profile URL (%s).', $profile['url']);
|
||||||
|
}
|
||||||
|
|
||||||
$tpl = Renderer::getMarkupTemplate('settings/profile/index.tpl');
|
$tpl = Renderer::getMarkupTemplate('settings/profile/index.tpl');
|
||||||
$o .= Renderer::replaceMacros($tpl, [
|
$o .= Renderer::replaceMacros($tpl, [
|
||||||
'$personal_account' => $personal_account,
|
'$personal_account' => $personal_account,
|
||||||
|
@ -245,7 +254,7 @@ class Index extends BaseSettings
|
||||||
'$age' => ((intval($profile['dob'])) ? '(' . DI::l10n()->t('Age: ') . DI::l10n()->tt('%d year old', '%d years old', Temporal::getAgeByTimezone($profile['dob'], $profile['timezone'])) . ')' : ''),
|
'$age' => ((intval($profile['dob'])) ? '(' . DI::l10n()->t('Age: ') . DI::l10n()->tt('%d year old', '%d years old', Temporal::getAgeByTimezone($profile['dob'], $profile['timezone'])) . ')' : ''),
|
||||||
'$xmpp' => ['xmpp', DI::l10n()->t('XMPP (Jabber) address:'), $profile['xmpp'], DI::l10n()->t('The XMPP address will be published so that people can follow you there.')],
|
'$xmpp' => ['xmpp', DI::l10n()->t('XMPP (Jabber) address:'), $profile['xmpp'], DI::l10n()->t('The XMPP address will be published so that people can follow you there.')],
|
||||||
'$matrix' => ['matrix', DI::l10n()->t('Matrix (Element) address:'), $profile['matrix'], DI::l10n()->t('The Matrix address will be published so that people can follow you there.')],
|
'$matrix' => ['matrix', DI::l10n()->t('Matrix (Element) address:'), $profile['matrix'], DI::l10n()->t('The Matrix address will be published so that people can follow you there.')],
|
||||||
'$homepage' => ['homepage', DI::l10n()->t('Homepage URL:'), $profile['homepage']],
|
'$homepage' => ['homepage', DI::l10n()->t('Homepage URL:'), $profile['homepage'], $homepage_help_text],
|
||||||
'$pub_keywords' => ['pub_keywords', DI::l10n()->t('Public Keywords:'), $profile['pub_keywords'], DI::l10n()->t('(Used for suggesting potential friends, can be seen by others)')],
|
'$pub_keywords' => ['pub_keywords', DI::l10n()->t('Public Keywords:'), $profile['pub_keywords'], DI::l10n()->t('(Used for suggesting potential friends, can be seen by others)')],
|
||||||
'$prv_keywords' => ['prv_keywords', DI::l10n()->t('Private Keywords:'), $profile['prv_keywords'], DI::l10n()->t('(Used for searching profiles, never shown to others)')],
|
'$prv_keywords' => ['prv_keywords', DI::l10n()->t('Private Keywords:'), $profile['prv_keywords'], DI::l10n()->t('(Used for searching profiles, never shown to others)')],
|
||||||
'$custom_fields_description' => DI::l10n()->t("<p>Custom fields appear on <a href=\"%s\">your profile page</a>.</p>
|
'$custom_fields_description' => DI::l10n()->t("<p>Custom fields appear on <a href=\"%s\">your profile page</a>.</p>
|
||||||
|
|
|
@ -0,0 +1,98 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @copyright Copyright (C) 2010-2022, 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Friendica\Worker;
|
||||||
|
|
||||||
|
use DOMDocument;
|
||||||
|
use Friendica\DI;
|
||||||
|
use Friendica\Core\Logger;
|
||||||
|
use Friendica\Model\Profile;
|
||||||
|
use Friendica\Model\User;
|
||||||
|
use Friendica\Network\HTTPClient\Client\HttpClientAccept;
|
||||||
|
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
|
||||||
|
use Friendica\Util\Network;
|
||||||
|
use Friendica\Util\Strings;
|
||||||
|
|
||||||
|
/* This class is used to verify the homepage link of a user profile.
|
||||||
|
* To do so, we look for rel="me" links in the given homepage, if one
|
||||||
|
* of them points to the Friendica profile of the user, a verification
|
||||||
|
* mark is added to the link.
|
||||||
|
*
|
||||||
|
* To reverse the process, if a homepage link is given, it is displayed
|
||||||
|
* with the rel="me" attribute as well, so that 3rd party tools can
|
||||||
|
* verify the connection between the two pages.
|
||||||
|
*
|
||||||
|
* This task will be performed by the worker on a daily basis _and_ every
|
||||||
|
* time the user changes their homepage link. In the first case the priority
|
||||||
|
* of the task is set to LOW, with the second case it is MEDIUM.
|
||||||
|
*
|
||||||
|
* rel-me microformat docs https://microformats.org/wiki/rel-me
|
||||||
|
*/
|
||||||
|
class CheckRelMeProfileLink
|
||||||
|
{
|
||||||
|
/* Cheks the homepage of a profile for a rel-me link back to the user profile
|
||||||
|
*
|
||||||
|
* @param $uid (int) the UID of the user
|
||||||
|
*/
|
||||||
|
public static function execute(int $uid)
|
||||||
|
{
|
||||||
|
Logger::notice('Verifying the homepage', ['uid' => $uid]);
|
||||||
|
Profile::update(['homepage_verified' => false], $uid);
|
||||||
|
$homepageUrlVerified = false;
|
||||||
|
$owner = User::getOwnerDataById($uid);
|
||||||
|
if (!empty($owner['homepage'])) {
|
||||||
|
$xrd_timeout = DI::config()->get('system', 'xrd_timeout');
|
||||||
|
$curlResult = DI::httpClient()->get($owner['homepage'], $accept_content = HttpClientAccept::HTML, [HttpClientOptions::TIMEOUT => $xrd_timeout]);
|
||||||
|
if ($curlResult->isSuccess()) {
|
||||||
|
$content = $curlResult->getBody();
|
||||||
|
if (!$content) {
|
||||||
|
Logger::notice('Empty body of the fetched homepage link). Cannot verify the relation to profile of UID %s.', ['uid' => $uid, 'owner homepage' => $owner['homepage']]);
|
||||||
|
} else {
|
||||||
|
$doc = new DOMDocument();
|
||||||
|
$doc->loadHTML($content);
|
||||||
|
if (!$doc) {
|
||||||
|
Logger::notice('Could not parse the content');
|
||||||
|
} else {
|
||||||
|
foreach ($doc->getElementsByTagName('a') as $link) {
|
||||||
|
$rel = $link->getAttribute('rel');
|
||||||
|
if ($rel == 'me') {
|
||||||
|
$href = $link->getAttribute('href');
|
||||||
|
if (!$homepageUrlVerified && Network::isValidHttpUrl($href)) {
|
||||||
|
$homepageUrlVerified = Strings::compareLink($owner['url'], $href);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($homepageUrlVerified) {
|
||||||
|
Profile::update(['homepage_verified' => true], $uid);
|
||||||
|
Logger::notice('Homepage URL verified', ['uid' => $uid, 'owner homepage' => $owner['homepage']]);
|
||||||
|
} else {
|
||||||
|
Logger::notice('Homepage URL could not be verified', ['uid' => $uid, 'owner homepage' => $owner['homepage']]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Logger::notice('Could not cURL the homepage URL', ['owner homepage' => $owner['homepage']]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Logger::notice('The user has no homepage link.', ['uid' => $uid]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -27,6 +27,7 @@ use Friendica\Core\Worker;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
use Friendica\Model\Tag;
|
use Friendica\Model\Tag;
|
||||||
|
use Friendica\Model\User;
|
||||||
use Friendica\Protocol\ActivityPub\Queue;
|
use Friendica\Protocol\ActivityPub\Queue;
|
||||||
use Friendica\Protocol\Relay;
|
use Friendica\Protocol\Relay;
|
||||||
|
|
||||||
|
@ -85,6 +86,7 @@ class Cron
|
||||||
// Hourly cron calls
|
// Hourly cron calls
|
||||||
if (DI::config()->get('system', 'last_cron_hourly', 0) + 3600 < time()) {
|
if (DI::config()->get('system', 'last_cron_hourly', 0) + 3600 < time()) {
|
||||||
|
|
||||||
|
|
||||||
// Update trending tags cache for the community page
|
// Update trending tags cache for the community page
|
||||||
Tag::setLocalTrendingHashtags(24, 20);
|
Tag::setLocalTrendingHashtags(24, 20);
|
||||||
Tag::setGlobalTrendingHashtags(24, 20);
|
Tag::setGlobalTrendingHashtags(24, 20);
|
||||||
|
@ -132,6 +134,10 @@ class Cron
|
||||||
Worker::add(Worker::PRIORITY_LOW, 'OptimizeTables');
|
Worker::add(Worker::PRIORITY_LOW, 'OptimizeTables');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (User::getList(1, PHP_INT_MAX, 'active') as $user) {
|
||||||
|
Worker::add(Worker::PRIORITY_LOW, 'CheckRelMeProfileLink', $user['uid']);
|
||||||
|
}
|
||||||
|
|
||||||
// Resubscribe to relay servers
|
// Resubscribe to relay servers
|
||||||
Relay::reSubscribe();
|
Relay::reSubscribe();
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
|
|
||||||
if (!defined('DB_UPDATE_VERSION')) {
|
if (!defined('DB_UPDATE_VERSION')) {
|
||||||
define('DB_UPDATE_VERSION', 1486);
|
define('DB_UPDATE_VERSION', 1487);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
@ -1580,6 +1580,7 @@ return [
|
||||||
"education" => ["type" => "text", "comment" => "Deprecated"],
|
"education" => ["type" => "text", "comment" => "Deprecated"],
|
||||||
"contact" => ["type" => "text", "comment" => "Deprecated"],
|
"contact" => ["type" => "text", "comment" => "Deprecated"],
|
||||||
"homepage" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
|
"homepage" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
|
||||||
|
"homepage_verified" => ["type" => "boolean", "not null" => 1, "default" => "0", "comment" => "was the homepage verified by a rel-me link back to the profile"],
|
||||||
"xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "XMPP address"],
|
"xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "XMPP address"],
|
||||||
"matrix" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Matrix address"],
|
"matrix" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Matrix address"],
|
||||||
"photo" => ["type" => "varbinary(383)", "not null" => "1", "default" => "", "comment" => ""],
|
"photo" => ["type" => "varbinary(383)", "not null" => "1", "default" => "", "comment" => ""],
|
||||||
|
|
|
@ -919,6 +919,7 @@
|
||||||
"postal-code" => ["profile", "postal-code"],
|
"postal-code" => ["profile", "postal-code"],
|
||||||
"country-name" => ["profile", "country-name"],
|
"country-name" => ["profile", "country-name"],
|
||||||
"homepage" => ["profile", "homepage"],
|
"homepage" => ["profile", "homepage"],
|
||||||
|
"homepage_verified" => ["profile", "homepage_verified"],
|
||||||
"dob" => ["profile", "dob"],
|
"dob" => ["profile", "dob"],
|
||||||
],
|
],
|
||||||
"query" => "FROM `user`
|
"query" => "FROM `user`
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 2022.12-dev\n"
|
"Project-Id-Version: 2022.12-dev\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-11-05 19:31-0400\n"
|
"POT-Creation-Date: 2022-11-07 11:21+0100\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"
|
||||||
|
@ -369,7 +369,7 @@ msgid "Event Finishes:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mod/events.php:503 src/Module/Profile/Profile.php:171
|
#: mod/events.php:503 src/Module/Profile/Profile.php:171
|
||||||
#: src/Module/Settings/Profile/Index.php:238
|
#: src/Module/Settings/Profile/Index.php:247
|
||||||
msgid "Description:"
|
msgid "Description:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -401,7 +401,7 @@ msgstr ""
|
||||||
#: src/Module/Install.php:252 src/Module/Install.php:294
|
#: src/Module/Install.php:252 src/Module/Install.php:294
|
||||||
#: src/Module/Install.php:331 src/Module/Invite.php:178
|
#: src/Module/Install.php:331 src/Module/Invite.php:178
|
||||||
#: src/Module/Item/Compose.php:189 src/Module/Profile/Profile.php:246
|
#: src/Module/Item/Compose.php:189 src/Module/Profile/Profile.php:246
|
||||||
#: src/Module/Profile/UnkMail.php:156 src/Module/Settings/Profile/Index.php:222
|
#: src/Module/Profile/UnkMail.php:156 src/Module/Settings/Profile/Index.php:231
|
||||||
#: src/Object/Post.php:986 view/theme/duepuntozero/config.php:85
|
#: src/Object/Post.php:986 view/theme/duepuntozero/config.php:85
|
||||||
#: view/theme/frio/config.php:171 view/theme/quattro/config.php:87
|
#: view/theme/frio/config.php:171 view/theme/quattro/config.php:87
|
||||||
#: view/theme/vier/config.php:135
|
#: view/theme/vier/config.php:135
|
||||||
|
@ -2102,7 +2102,7 @@ msgstr ""
|
||||||
|
|
||||||
#: src/Content/Item.php:389 src/Content/Item.php:407 src/Model/Contact.php:1137
|
#: src/Content/Item.php:389 src/Content/Item.php:407 src/Model/Contact.php:1137
|
||||||
#: src/Model/Contact.php:1191 src/Model/Contact.php:1200
|
#: src/Model/Contact.php:1191 src/Model/Contact.php:1200
|
||||||
#: src/Module/Directory.php:157 src/Module/Settings/Profile/Index.php:225
|
#: src/Module/Directory.php:157 src/Module/Settings/Profile/Index.php:234
|
||||||
msgid "View Profile"
|
msgid "View Profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2430,39 +2430,39 @@ msgstr ""
|
||||||
msgid "last"
|
msgid "last"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1002 src/Content/Text/BBCode.php:1863
|
#: src/Content/Text/BBCode.php:1003 src/Content/Text/BBCode.php:1865
|
||||||
#: src/Content/Text/BBCode.php:1864
|
#: src/Content/Text/BBCode.php:1866
|
||||||
msgid "Image/photo"
|
msgid "Image/photo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1218
|
#: src/Content/Text/BBCode.php:1220
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid ""
|
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:1243 src/Model/Item.php:3471
|
#: src/Content/Text/BBCode.php:1245 src/Model/Item.php:3482
|
||||||
#: src/Model/Item.php:3477 src/Model/Item.php:3478
|
#: src/Model/Item.php:3488 src/Model/Item.php:3489
|
||||||
msgid "Link to source"
|
msgid "Link to source"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1781 src/Content/Text/HTML.php:940
|
#: src/Content/Text/BBCode.php:1783 src/Content/Text/HTML.php:940
|
||||||
msgid "Click to open/close"
|
msgid "Click to open/close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1812
|
#: src/Content/Text/BBCode.php:1814
|
||||||
msgid "$1 wrote:"
|
msgid "$1 wrote:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:1868 src/Content/Text/BBCode.php:1869
|
#: src/Content/Text/BBCode.php:1870 src/Content/Text/BBCode.php:1871
|
||||||
msgid "Encrypted content"
|
msgid "Encrypted content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:2092
|
#: src/Content/Text/BBCode.php:2098
|
||||||
msgid "Invalid source protocol"
|
msgid "Invalid source protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Content/Text/BBCode.php:2107
|
#: src/Content/Text/BBCode.php:2113
|
||||||
msgid "Invalid link protocol"
|
msgid "Invalid link protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3577,44 +3577,44 @@ msgstr ""
|
||||||
msgid "Content warning: %s"
|
msgid "Content warning: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3383
|
#: src/Model/Item.php:3394
|
||||||
msgid "bytes"
|
msgid "bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3414
|
#: src/Model/Item.php:3425
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%2$s (%3$d%%, %1$d vote)"
|
msgid "%2$s (%3$d%%, %1$d vote)"
|
||||||
msgid_plural "%2$s (%3$d%%, %1$d votes)"
|
msgid_plural "%2$s (%3$d%%, %1$d votes)"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3416
|
#: src/Model/Item.php:3427
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%2$s (%1$d vote)"
|
msgid "%2$s (%1$d vote)"
|
||||||
msgid_plural "%2$s (%1$d votes)"
|
msgid_plural "%2$s (%1$d votes)"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3421
|
#: src/Model/Item.php:3432
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%d voter. Poll end: %s"
|
msgid "%d voter. Poll end: %s"
|
||||||
msgid_plural "%d voters. Poll end: %s"
|
msgid_plural "%d voters. Poll end: %s"
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3423
|
#: src/Model/Item.php:3434
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%d voter."
|
msgid "%d voter."
|
||||||
msgid_plural "%d voters."
|
msgid_plural "%d voters."
|
||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3425
|
#: src/Model/Item.php:3436
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "Poll end: %s"
|
msgid "Poll end: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Model/Item.php:3459 src/Model/Item.php:3460
|
#: src/Model/Item.php:3470 src/Model/Item.php:3471
|
||||||
msgid "View on separate page"
|
msgid "View on separate page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -7206,7 +7206,7 @@ msgid "Sort by post creation date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Conversation/Network.php:280
|
#: src/Module/Conversation/Network.php:280
|
||||||
#: src/Module/Settings/Profile/Index.php:227
|
#: src/Module/Settings/Profile/Index.php:236
|
||||||
msgid "Personal"
|
msgid "Personal"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -7430,7 +7430,7 @@ msgid "Twitter Source / Tweet URL (requires API key)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Debug/Feed.php:52 src/Module/Filer/SaveTag.php:47
|
#: src/Module/Debug/Feed.php:52 src/Module/Filer/SaveTag.php:47
|
||||||
#: src/Module/Settings/Profile/Index.php:141
|
#: src/Module/Settings/Profile/Index.php:144
|
||||||
msgid "You must be logged in to use this module"
|
msgid "You must be logged in to use this module"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -8289,12 +8289,12 @@ msgstr ""
|
||||||
msgid "Birthday:"
|
msgid "Birthday:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Profile/Profile.php:166 src/Module/Settings/Profile/Index.php:245
|
#: src/Module/Profile/Profile.php:166 src/Module/Settings/Profile/Index.php:254
|
||||||
#: src/Util/Temporal.php:168
|
#: src/Util/Temporal.php:168
|
||||||
msgid "Age: "
|
msgid "Age: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Profile/Profile.php:166 src/Module/Settings/Profile/Index.php:245
|
#: src/Module/Profile/Profile.php:166 src/Module/Settings/Profile/Index.php:254
|
||||||
#: src/Util/Temporal.php:168
|
#: src/Util/Temporal.php:168
|
||||||
#, php-format
|
#, php-format
|
||||||
msgid "%d year old"
|
msgid "%d year old"
|
||||||
|
@ -9514,133 +9514,146 @@ msgstr ""
|
||||||
msgid "Beginning of week:"
|
msgid "Beginning of week:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:83
|
#: src/Module/Settings/Profile/Index.php:84
|
||||||
msgid "Profile Name is required."
|
msgid "Profile Name is required."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:131
|
#: 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:172
|
#: src/Module/Settings/Profile/Index.php:175
|
||||||
#: src/Module/Settings/Profile/Index.php:192
|
#: src/Module/Settings/Profile/Index.php:195
|
||||||
msgid "Label:"
|
msgid "Label:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:173
|
#: src/Module/Settings/Profile/Index.php:176
|
||||||
#: src/Module/Settings/Profile/Index.php:193
|
#: src/Module/Settings/Profile/Index.php:196
|
||||||
msgid "Value:"
|
msgid "Value:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:183
|
#: src/Module/Settings/Profile/Index.php:186
|
||||||
#: src/Module/Settings/Profile/Index.php:203
|
#: src/Module/Settings/Profile/Index.php:206
|
||||||
msgid "Field Permissions"
|
msgid "Field Permissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:184
|
#: src/Module/Settings/Profile/Index.php:187
|
||||||
#: src/Module/Settings/Profile/Index.php:204
|
#: src/Module/Settings/Profile/Index.php:207
|
||||||
msgid "(click to open/close)"
|
msgid "(click to open/close)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:190
|
#: src/Module/Settings/Profile/Index.php:193
|
||||||
msgid "Add a new profile field"
|
msgid "Add a new profile field"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:220
|
#: src/Module/Settings/Profile/Index.php:217
|
||||||
msgid "Profile Actions"
|
msgid ""
|
||||||
|
"The homepage is verified. A rel=\"me\" link back to your Friendica profile "
|
||||||
|
"page was found on the homepage."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:221
|
#: src/Module/Settings/Profile/Index.php:219
|
||||||
msgid "Edit Profile Details"
|
#, php-format
|
||||||
msgstr ""
|
msgid ""
|
||||||
|
"To verify your homepage, add a rel=\"me\" link to it, pointing to your "
|
||||||
#: src/Module/Settings/Profile/Index.php:223
|
"profile URL (%s)."
|
||||||
msgid "Change Profile Photo"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:228
|
|
||||||
msgid "Profile picture"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:229
|
#: src/Module/Settings/Profile/Index.php:229
|
||||||
|
msgid "Profile Actions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Profile/Index.php:230
|
||||||
|
msgid "Edit Profile Details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Profile/Index.php:232
|
||||||
|
msgid "Change Profile Photo"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Profile/Index.php:237
|
||||||
|
msgid "Profile picture"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Module/Settings/Profile/Index.php:238
|
||||||
msgid "Location"
|
msgid "Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:230 src/Util/Temporal.php:95
|
#: src/Module/Settings/Profile/Index.php:239 src/Util/Temporal.php:95
|
||||||
#: src/Util/Temporal.php:97
|
#: src/Util/Temporal.php:97
|
||||||
msgid "Miscellaneous"
|
msgid "Miscellaneous"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:231
|
#: src/Module/Settings/Profile/Index.php:240
|
||||||
msgid "Custom Profile Fields"
|
msgid "Custom Profile Fields"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:233 src/Module/Welcome.php:58
|
#: src/Module/Settings/Profile/Index.php:242 src/Module/Welcome.php:58
|
||||||
msgid "Upload Profile Photo"
|
msgid "Upload Profile Photo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:237
|
#: src/Module/Settings/Profile/Index.php:246
|
||||||
msgid "Display name:"
|
msgid "Display name:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:240
|
#: src/Module/Settings/Profile/Index.php:249
|
||||||
msgid "Street Address:"
|
msgid "Street Address:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:241
|
#: src/Module/Settings/Profile/Index.php:250
|
||||||
msgid "Locality/City:"
|
msgid "Locality/City:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:242
|
#: src/Module/Settings/Profile/Index.php:251
|
||||||
msgid "Region/State:"
|
msgid "Region/State:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:243
|
#: src/Module/Settings/Profile/Index.php:252
|
||||||
msgid "Postal/Zip Code:"
|
msgid "Postal/Zip Code:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:244
|
#: src/Module/Settings/Profile/Index.php:253
|
||||||
msgid "Country:"
|
msgid "Country:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:246
|
#: src/Module/Settings/Profile/Index.php:255
|
||||||
msgid "XMPP (Jabber) address:"
|
msgid "XMPP (Jabber) address:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:246
|
#: src/Module/Settings/Profile/Index.php:255
|
||||||
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:247
|
#: src/Module/Settings/Profile/Index.php:256
|
||||||
msgid "Matrix (Element) address:"
|
msgid "Matrix (Element) address:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:247
|
#: src/Module/Settings/Profile/Index.php:256
|
||||||
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:248
|
#: src/Module/Settings/Profile/Index.php:257
|
||||||
msgid "Homepage URL:"
|
msgid "Homepage URL:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:249
|
#: src/Module/Settings/Profile/Index.php:258
|
||||||
msgid "Public Keywords:"
|
msgid "Public Keywords:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:249
|
#: src/Module/Settings/Profile/Index.php:258
|
||||||
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:250
|
#: src/Module/Settings/Profile/Index.php:259
|
||||||
msgid "Private Keywords:"
|
msgid "Private Keywords:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/Module/Settings/Profile/Index.php:250
|
#: src/Module/Settings/Profile/Index.php:259
|
||||||
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:251
|
#: src/Module/Settings/Profile/Index.php:260
|
||||||
#, 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"
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
{{if $updated}}<div class="updated" style="display:none;">{{$updated}}</div>{{/if}}
|
{{if $updated}}<div class="updated" style="display:none;">{{$updated}}</div>{{/if}}
|
||||||
|
|
||||||
{{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url u-url"><a href="{{$profile.homepage}}" rel="me" target="_blank" rel="noopener noreferrer">{{$profile.homepage}}</a></dd></dl>{{/if}}
|
{{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url u-url"><a href="{{$profile.homepage}}" rel="me" target="_blank" rel="noopener noreferrer">{{$profile.homepage}}</a>{{if $profile.homepage_verified}} ✔{{/if}}</dd></dl>{{/if}}
|
||||||
|
|
||||||
{{if $about}}<dl class="about"><dt class="about-label">{{$about}}</dt><dd class="x-network" dir="auto">{{$profile.about nofilter}}</dd></dl>{{/if}}
|
{{if $about}}<dl class="about"><dt class="about-label">{{$about}}</dt><dd class="x-network" dir="auto">{{$profile.about nofilter}}</dd></dl>{{/if}}
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,7 @@
|
||||||
<label id="profile-edit-homepage-label" for="profile-edit-homepage">{{$homepage.1}} </label>
|
<label id="profile-edit-homepage-label" for="profile-edit-homepage">{{$homepage.1}} </label>
|
||||||
<input type="url" size="32" name="homepage" id="profile-edit-homepage" value="{{$homepage.2}}"/>
|
<input type="url" size="32" name="homepage" id="profile-edit-homepage" value="{{$homepage.2}}"/>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="profile-edit-homepage-desc">{{$homepage.3}}</div>
|
||||||
<div id="profile-edit-homepage-end"></div>
|
<div id="profile-edit-homepage-end"></div>
|
||||||
<div id="profile-edit-xmpp-wrapper">
|
<div id="profile-edit-xmpp-wrapper">
|
||||||
<label id="profile-edit-xmpp-label" for="profile-edit-xmpp">{{$xmpp.1}} </label>
|
<label id="profile-edit-xmpp-label" for="profile-edit-xmpp">{{$xmpp.1}} </label>
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
{{if $homepage}}
|
{{if $homepage}}
|
||||||
<div class="homepage detail">
|
<div class="homepage detail">
|
||||||
<span class="homepage-label icon"><i class="fa fa-external-link"></i></span>
|
<span class="homepage-label icon"><i class="fa fa-external-link"></i></span>
|
||||||
<span class="homepage-url u-url"><a href="{{$profile.homepage}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$profile.homepage}}</a></span>
|
<span class="homepage-url u-url"><a href="{{$profile.homepage}}" rel="me" target="_blank" rel="noopener noreferrer">{{include file="sub/punct_wrap.tpl" text=$profile.homepage}}</a>{{if $profile.homepage_verified}} ✔{{/if}}</span>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
|
|
||||||
{{if $homepage}}
|
{{if $homepage}}
|
||||||
<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt>
|
<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt>
|
||||||
<dd class="homepage-url"><a href="{{$profile.homepage}}" class="u-url" rel="me" target="external-link">{{$profile.homepage}}</a></dd>
|
<dd class="homepage-url"><a href="{{$profile.homepage}}" class="u-url" rel="me" target="external-link">{{$profile.homepage}}</a>{{if $profile.homepage_verified}} ✔{{/if}}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
{{if $updated}}<div class="updated" style="display:none;">{{$updated}}</div>{{/if}}
|
{{if $updated}}<div class="updated" style="display:none;">{{$updated}}</div>{{/if}}
|
||||||
|
|
||||||
{{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url"><a href="{{$profile.homepage}}" class="u-url" rel="me" target="_blank" rel="noopener noreferrer">{{$profile.homepage}}</a></dd></dl>{{/if}}
|
{{if $homepage}}<dl class="homepage"><dt class="homepage-label">{{$homepage}}</dt><dd class="homepage-url"><a href="{{$profile.homepage}}" class="u-url" rel="me" target="_blank" rel="noopener noreferrer">{{$profile.homepage}}</a>{{if $profile.homepage_verified}} ✔{{/if}}</dd></dl>{{/if}}
|
||||||
|
|
||||||
{{if $about}}<dl class="about"><dt class="about-label">{{$about}}</dt><dd class="x-network" dir="auto">{{$profile.about nofilter}}</dd></dl>{{/if}}
|
{{if $about}}<dl class="about"><dt class="about-label">{{$about}}</dt><dd class="x-network" dir="auto">{{$profile.about nofilter}}</dd></dl>{{/if}}
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,7 @@
|
||||||
<label id="profile-edit-homepage-label" for="profile-edit-homepage">{{$homepage.1}} </label>
|
<label id="profile-edit-homepage-label" for="profile-edit-homepage">{{$homepage.1}} </label>
|
||||||
<input type="text" size="32" name="homepage" id="profile-edit-homepage" value="{{$homepage.2}}"/>
|
<input type="text" size="32" name="homepage" id="profile-edit-homepage" value="{{$homepage.2}}"/>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="profile-edit-homepage-desc">{{$homepage.3}}</div>
|
||||||
<div id="profile-edit-homepage-end"></div>
|
<div id="profile-edit-homepage-end"></div>
|
||||||
|
|
||||||
<div id="profile-edit-dob-wrapper">
|
<div id="profile-edit-dob-wrapper">
|
||||||
|
|
Loading…
Reference in New Issue
Block a user