User defined channels can now base on circles/channels

This commit is contained in:
Michael 2023-09-24 00:45:07 +00:00
parent 2164787499
commit 9f23bee6e4
11 changed files with 136 additions and 73 deletions

View file

@ -500,6 +500,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
`uid` mediumint unsigned NOT NULL COMMENT 'User id', `uid` mediumint unsigned NOT NULL COMMENT 'User id',
`label` varchar(64) NOT NULL COMMENT 'Channel label', `label` varchar(64) NOT NULL COMMENT 'Channel label',
`description` varchar(64) COMMENT 'Channel description', `description` varchar(64) COMMENT 'Channel description',
`circle` int COMMENT 'Circle or channel that this channel is based on',
`access-key` varchar(1) COMMENT 'Access key', `access-key` varchar(1) COMMENT 'Access key',
`include-tags` varchar(255) COMMENT 'Comma separated list of tags that will be included in the channel', `include-tags` varchar(255) COMMENT 'Comma separated list of tags that will be included in the channel',
`exclude-tags` varchar(255) COMMENT 'Comma separated list of tags that aren\'t allowed in the channel', `exclude-tags` varchar(255) COMMENT 'Comma separated list of tags that aren\'t allowed in the channel',

View file

@ -12,6 +12,7 @@ Fields
| uid | User id | mediumint unsigned | NO | | NULL | | | uid | User id | mediumint unsigned | NO | | NULL | |
| label | Channel label | varchar(64) | NO | | NULL | | | label | Channel label | varchar(64) | NO | | NULL | |
| description | Channel description | varchar(64) | YES | | NULL | | | description | Channel description | varchar(64) | YES | | NULL | |
| circle | Circle or channel that this channel is based on | int | YES | | NULL | |
| access-key | Access key | varchar(1) | YES | | NULL | | | access-key | Access key | varchar(1) | YES | | NULL | |
| include-tags | Comma separated list of tags that will be included in the channel | varchar(255) | YES | | NULL | | | include-tags | Comma separated list of tags that will be included in the channel | varchar(255) | YES | | NULL | |
| exclude-tags | Comma separated list of tags that aren't allowed in the channel | varchar(255) | YES | | NULL | | | exclude-tags | Comma separated list of tags that aren't allowed in the channel | varchar(255) | YES | | NULL | |

View file

@ -62,6 +62,8 @@ final class Timeline extends \Friendica\BaseEntity
protected $path; protected $path;
/** @var int */ /** @var int */
protected $uid; protected $uid;
/** @var int */
protected $circle;
/** @var string */ /** @var string */
protected $includeTags; protected $includeTags;
/** @var string */ /** @var string */
@ -71,7 +73,7 @@ final class Timeline extends \Friendica\BaseEntity
/** @var int */ /** @var int */
protected $mediaType; protected $mediaType;
public function __construct(string $code = null, string $label = null, string $description = null, string $accessKey = null, string $path = null, int $uid = null, string $includeTags = null, string $excludeTags = null, string $fullTextSearch = null, int $mediaType = null) public function __construct(string $code = null, string $label = null, string $description = null, string $accessKey = null, string $path = null, int $uid = null, string $includeTags = null, string $excludeTags = null, string $fullTextSearch = null, int $mediaType = null, int $circle = null)
{ {
$this->code = $code; $this->code = $code;
$this->label = $label; $this->label = $label;
@ -83,5 +85,6 @@ final class Timeline extends \Friendica\BaseEntity
$this->excludeTags = $excludeTags; $this->excludeTags = $excludeTags;
$this->fullTextSearch = $fullTextSearch; $this->fullTextSearch = $fullTextSearch;
$this->mediaType = $mediaType; $this->mediaType = $mediaType;
$this->circle = $circle;
} }
} }

View file

@ -62,6 +62,7 @@ final class Timeline extends \Friendica\BaseFactory implements ICanCreateFromTab
$row['exclude-tags'] ?? null, $row['exclude-tags'] ?? null,
$row['full-text-search'] ?? null, $row['full-text-search'] ?? null,
$row['media-type'] ?? null, $row['media-type'] ?? null,
$row['circle'] ?? null,
); );
} }

View file

@ -91,6 +91,7 @@ class Channel extends \Friendica\BaseRepository
'description' => $Channel->description, 'description' => $Channel->description,
'access-key' => $Channel->accessKey, 'access-key' => $Channel->accessKey,
'uid' => $Channel->uid, 'uid' => $Channel->uid,
'circle' => $Channel->circle,
'include-tags' => $Channel->includeTags, 'include-tags' => $Channel->includeTags,
'exclude-tags' => $Channel->excludeTags, 'exclude-tags' => $Channel->excludeTags,
'full-text-search' => $Channel->fullTextSearch, 'full-text-search' => $Channel->fullTextSearch,

View file

@ -478,6 +478,22 @@ class Circle
return $return; return $return;
} }
public static function getByUID(int $uid): array
{
$circles = [];
$stmt = DBA::select('group', [], ['deleted' => false, 'uid' => $uid, 'cid' => null], ['order' => ['id']]);
while ($circle = DBA::fetch($stmt)) {
$circles[] = [
'id' => $circle['id'],
'name' => $circle['name'],
];
}
DBA::close($stmt);
return $circles;
}
/** /**
* Returns a templated circle selection list * Returns a templated circle selection list
* *

View file

@ -375,6 +375,16 @@ class Timeline extends BaseModule
$condition = []; $condition = [];
if (!empty($channel->circle)) {
if ($channel->circle == -1) {
$condition = ["`owner-id` IN (SELECT `pid` FROM `account-user-view` WHERE `uid` = ? AND `rel` IN (?, ?))", $uid, Contact::SHARING, Contact::FRIEND];
} elseif ($channel->circle == -2) {
$condition = ["`owner-id` IN (SELECT `pid` FROM `account-user-view` WHERE `uid` = ? AND `rel` = ?)", $uid, Contact::FOLLOWER];
} elseif ($channel->circle > 0) {
$condition = DBA::mergeConditions($condition, ["`owner-id` IN (SELECT `pid` FROM `group_member` INNER JOIN `account-user-view` ON `group_member`.`contact-id` = `account-user-view`.`id` WHERE `gid` = ? AND `account-user-view`.`uid` = ?)", $channel->circle, $uid]);
}
}
if (!empty($channel->fullTextSearch)) { if (!empty($channel->fullTextSearch)) {
$search = $channel->fullTextSearch; $search = $channel->fullTextSearch;
foreach (['from', 'to', 'group', 'tag', 'network', 'visibility'] as $keyword) { foreach (['from', 'to', 'group', 'tag', 'network', 'visibility'] as $keyword) {
@ -399,7 +409,8 @@ class Timeline extends BaseModule
$condition = DBA::mergeConditions($condition, ["`media-type` & ?", $channel->mediaType]); $condition = DBA::mergeConditions($condition, ["`media-type` & ?", $channel->mediaType]);
} }
return $condition; // For "addLanguageCondition" to work, the condition must not be empty
return $condition ?: ["true"];
} }
private function addLanguageCondition(int $uid, array $condition): array private function addLanguageCondition(int $uid, array $condition): array

View file

@ -27,6 +27,7 @@ use Friendica\Content\Conversation\Repository\Channel;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Model\Circle;
use Friendica\Module\BaseSettings; use Friendica\Module\BaseSettings;
use Friendica\Module\Response; use Friendica\Module\Response;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
@ -67,6 +68,7 @@ class Channels extends BaseSettings
'description' => $request['new_description'], 'description' => $request['new_description'],
'access-key' => substr(mb_strtolower($request['new_access_key']), 0, 1), 'access-key' => substr(mb_strtolower($request['new_access_key']), 0, 1),
'uid' => $uid, 'uid' => $uid,
'circle' => (int)$request['new_circle'],
'include-tags' => $this->cleanTags($request['new_include_tags']), 'include-tags' => $this->cleanTags($request['new_include_tags']),
'exclude-tags' => $this->cleanTags($request['new_exclude_tags']), 'exclude-tags' => $this->cleanTags($request['new_exclude_tags']),
'full-text-search' => $this->cleanTags($request['new_text_search']), 'full-text-search' => $this->cleanTags($request['new_text_search']),
@ -90,6 +92,7 @@ class Channels extends BaseSettings
'description' => $request['description'][$id], 'description' => $request['description'][$id],
'access-key' => substr(mb_strtolower($request['access_key'][$id]), 0, 1), 'access-key' => substr(mb_strtolower($request['access_key'][$id]), 0, 1),
'uid' => $uid, 'uid' => $uid,
'circle' => (int)$request['circle'][$id],
'include-tags' => $this->cleanTags($request['include_tags'][$id]), 'include-tags' => $this->cleanTags($request['include_tags'][$id]),
'exclude-tags' => $this->cleanTags($request['exclude_tags'][$id]), 'exclude-tags' => $this->cleanTags($request['exclude_tags'][$id]),
'full-text-search' => $this->cleanTags($request['text_search'][$id]), 'full-text-search' => $this->cleanTags($request['text_search'][$id]),
@ -111,12 +114,23 @@ class Channels extends BaseSettings
throw new HTTPException\ForbiddenException($this->t('Permission denied.')); throw new HTTPException\ForbiddenException($this->t('Permission denied.'));
} }
$circles = [
0 => $this->l10n->t('Global Community'),
-1 => $this->l10n->t('Following'),
-2 => $this->l10n->t('Followers'),
];
foreach (Circle::getByUID($uid) as $circle) {
$circles[$circle['id']] = $circle['name'];
}
$blocklistform = []; $blocklistform = [];
foreach ($this->channel->selectByUid($uid) as $channel) { foreach ($this->channel->selectByUid($uid) as $channel) {
$blocklistform[] = [ $blocklistform[] = [
'label' => ["label[$channel->code]", $this->t('Label'), $channel->label, '', $this->t('Required')], 'label' => ["label[$channel->code]", $this->t('Label'), $channel->label, '', $this->t('Required')],
'description' => ["description[$channel->code]", $this->t("Description"), $channel->description], 'description' => ["description[$channel->code]", $this->t("Description"), $channel->description],
'access_key' => ["access_key[$channel->code]", $this->t("Access Key"), $channel->accessKey], 'access_key' => ["access_key[$channel->code]", $this->t("Access Key"), $channel->accessKey],
'circle' => ["circle[$channel->code]", $this->t('Circle/Channel'), $channel->circle, '', $circles],
'include_tags' => ["include_tags[$channel->code]", $this->t("Include Tags"), $channel->includeTags], 'include_tags' => ["include_tags[$channel->code]", $this->t("Include Tags"), $channel->includeTags],
'exclude_tags' => ["exclude_tags[$channel->code]", $this->t("Exclude Tags"), $channel->excludeTags], 'exclude_tags' => ["exclude_tags[$channel->code]", $this->t("Exclude Tags"), $channel->excludeTags],
'text_search' => ["text_search[$channel->code]", $this->t("Full Text Search"), $channel->fullTextSearch], 'text_search' => ["text_search[$channel->code]", $this->t("Full Text Search"), $channel->fullTextSearch],
@ -132,6 +146,7 @@ class Channels extends BaseSettings
'label' => ["new_label", $this->t('Label'), '', $this->t('Short name for the channel. It is displayed on the channels widget.'), $this->t('Required')], 'label' => ["new_label", $this->t('Label'), '', $this->t('Short name for the channel. It is displayed on the channels widget.'), $this->t('Required')],
'description' => ["new_description", $this->t("Description"), '', $this->t('This should describe the content of the channel in a few word.')], 'description' => ["new_description", $this->t("Description"), '', $this->t('This should describe the content of the channel in a few word.')],
'access_key' => ["new_access_key", $this->t("Access Key"), '', $this->t('When you want to access this channel via an access key, you can define it here. Pay attention to not use an already used one.')], 'access_key' => ["new_access_key", $this->t("Access Key"), '', $this->t('When you want to access this channel via an access key, you can define it here. Pay attention to not use an already used one.')],
'circle' => ['new_circle', $this->t('Circle/Channel'), 0, $this->t('Select a circle or channel, that your channel should be based on.'), $circles],
'include_tags' => ["new_include_tags", $this->t("Include Tags"), '', $this->t('Comma separated list of tags. A post will be used when it contains any of the listed tags.')], 'include_tags' => ["new_include_tags", $this->t("Include Tags"), '', $this->t('Comma separated list of tags. A post will be used when it contains any of the listed tags.')],
'exclude_tags' => ["new_exclude_tags", $this->t("Exclude Tags"), '', $this->t('Comma separated list of tags. If a post contain any of these tags, then it will not be part of nthis channel.')], 'exclude_tags' => ["new_exclude_tags", $this->t("Exclude Tags"), '', $this->t('Comma separated list of tags. If a post contain any of these tags, then it will not be part of nthis channel.')],
'text_search' => ["new_text_search", $this->t("Full Text Search"), '', $this->t('Search terms for the body, supports the "boolean mode" operators from MariaDB. See the help for a complete list of operators and additional keywords: %s', '<a href="help/Channels">help/Channels</a>')], 'text_search' => ["new_text_search", $this->t("Full Text Search"), '', $this->t('Search terms for the body, supports the "boolean mode" operators from MariaDB. See the help for a complete list of operators and additional keywords: %s', '<a href="help/Channels">help/Channels</a>')],

View file

@ -558,6 +558,7 @@ return [
"uid" => ["type" => "mediumint unsigned", "not null" => "1", "foreign" => ["user" => "uid"], "comment" => "User id"], "uid" => ["type" => "mediumint unsigned", "not null" => "1", "foreign" => ["user" => "uid"], "comment" => "User id"],
"label" => ["type" => "varchar(64)", "not null" => "1", "comment" => "Channel label"], "label" => ["type" => "varchar(64)", "not null" => "1", "comment" => "Channel label"],
"description" => ["type" => "varchar(64)", "comment" => "Channel description"], "description" => ["type" => "varchar(64)", "comment" => "Channel description"],
"circle" => ["type" => "int", "comment" => "Circle or channel that this channel is based on"],
"access-key" => ["type" => "varchar(1)", "comment" => "Access key"], "access-key" => ["type" => "varchar(1)", "comment" => "Access key"],
"include-tags" => ["type" => "varchar(255)", "comment" => "Comma separated list of tags that will be included in the channel"], "include-tags" => ["type" => "varchar(255)", "comment" => "Comma separated list of tags that will be included in the channel"],
"exclude-tags" => ["type" => "varchar(255)", "comment" => "Comma separated list of tags that aren't allowed in the channel"], "exclude-tags" => ["type" => "varchar(255)", "comment" => "Comma separated list of tags that aren't allowed in the channel"],

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2023.09-dev\n" "Project-Id-Version: 2023.09-dev\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-23 14:19+0000\n" "POT-Creation-Date: 2023-09-24 00:43+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"
@ -68,7 +68,7 @@ msgstr ""
#: src/Module/Register.php:90 src/Module/Register.php:206 #: src/Module/Register.php:90 src/Module/Register.php:206
#: src/Module/Register.php:245 src/Module/Search/Directory.php:37 #: src/Module/Register.php:245 src/Module/Search/Directory.php:37
#: src/Module/Settings/Account.php:50 src/Module/Settings/Account.php:408 #: src/Module/Settings/Account.php:50 src/Module/Settings/Account.php:408
#: src/Module/Settings/Channels.php:55 src/Module/Settings/Channels.php:111 #: src/Module/Settings/Channels.php:56 src/Module/Settings/Channels.php:114
#: src/Module/Settings/Delegation.php:41 src/Module/Settings/Delegation.php:71 #: src/Module/Settings/Delegation.php:41 src/Module/Settings/Delegation.php:71
#: src/Module/Settings/Display.php:73 src/Module/Settings/Display.php:176 #: src/Module/Settings/Display.php:73 src/Module/Settings/Display.php:176
#: src/Module/Settings/Profile/Photo/Crop.php:165 #: src/Module/Settings/Profile/Photo/Crop.php:165
@ -385,7 +385,7 @@ msgstr ""
#: mod/notes.php:57 src/Content/Text/HTML.php:859 #: mod/notes.php:57 src/Content/Text/HTML.php:859
#: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:74 #: src/Module/Admin/Storage.php:142 src/Module/Filer/SaveTag.php:74
#: src/Module/Post/Edit.php:129 src/Module/Settings/Channels.php:146 #: src/Module/Post/Edit.php:129 src/Module/Settings/Channels.php:161
msgid "Save" msgid "Save"
msgstr "" msgstr ""
@ -794,13 +794,15 @@ msgstr ""
msgid "All contacts" msgid "All contacts"
msgstr "" msgstr ""
#: src/BaseModule.php:433 src/Content/Conversation/Factory/Timeline.php:83 #: src/BaseModule.php:433 src/Content/Conversation/Factory/Timeline.php:84
#: src/Content/Widget.php:239 src/Core/ACL.php:195 src/Module/Contact.php:415 #: src/Content/Widget.php:239 src/Core/ACL.php:195 src/Module/Contact.php:415
#: src/Module/PermissionTooltip.php:127 src/Module/PermissionTooltip.php:149 #: src/Module/PermissionTooltip.php:127 src/Module/PermissionTooltip.php:149
#: src/Module/Settings/Channels.php:120
msgid "Followers" msgid "Followers"
msgstr "" msgstr ""
#: src/BaseModule.php:438 src/Content/Widget.php:240 src/Module/Contact.php:418 #: src/BaseModule.php:438 src/Content/Widget.php:240 src/Module/Contact.php:418
#: src/Module/Settings/Channels.php:119
msgid "Following" msgid "Following"
msgstr "" msgstr ""
@ -1514,120 +1516,121 @@ msgstr ""
msgid "View in context" msgid "View in context"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:80 #: src/Content/Conversation/Factory/Timeline.php:81
msgid "For you" msgid "For you"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:80 #: src/Content/Conversation/Factory/Timeline.php:81
msgid "Posts from contacts you interact with and who interact with you" msgid "Posts from contacts you interact with and who interact with you"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:81 #: src/Content/Conversation/Factory/Timeline.php:82
msgid "What's Hot" msgid "What's Hot"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:81 #: src/Content/Conversation/Factory/Timeline.php:82
msgid "Posts with a lot of interactions" msgid "Posts with a lot of interactions"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:82 #: src/Content/Conversation/Factory/Timeline.php:83
#, php-format #, php-format
msgid "Posts in %s" msgid "Posts in %s"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:83 #: src/Content/Conversation/Factory/Timeline.php:84
msgid "Posts from your followers that you don't follow" msgid "Posts from your followers that you don't follow"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:84 #: src/Content/Conversation/Factory/Timeline.php:85
msgid "Sharers of sharers" msgid "Sharers of sharers"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:84 #: src/Content/Conversation/Factory/Timeline.php:85
msgid "Posts from accounts that are followed by accounts that you follow" msgid "Posts from accounts that are followed by accounts that you follow"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:85 #: src/Content/Conversation/Factory/Timeline.php:86
#: src/Module/Settings/Channels.php:123 src/Module/Settings/Channels.php:138 #: src/Module/Settings/Channels.php:137 src/Module/Settings/Channels.php:153
msgid "Images" msgid "Images"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:85 #: src/Content/Conversation/Factory/Timeline.php:86
msgid "Posts with images" msgid "Posts with images"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:86 #: src/Content/Conversation/Factory/Timeline.php:87
#: src/Module/Settings/Channels.php:125 src/Module/Settings/Channels.php:140 #: src/Module/Settings/Channels.php:139 src/Module/Settings/Channels.php:155
msgid "Audio" msgid "Audio"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:86 #: src/Content/Conversation/Factory/Timeline.php:87
msgid "Posts with audio" msgid "Posts with audio"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:87 #: src/Content/Conversation/Factory/Timeline.php:88
#: src/Module/Settings/Channels.php:124 src/Module/Settings/Channels.php:139 #: src/Module/Settings/Channels.php:138 src/Module/Settings/Channels.php:154
msgid "Videos" msgid "Videos"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:87 #: src/Content/Conversation/Factory/Timeline.php:88
msgid "Posts with videos" msgid "Posts with videos"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:110 #: src/Content/Conversation/Factory/Timeline.php:111
msgid "Local Community" msgid "Local Community"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:110 #: src/Content/Conversation/Factory/Timeline.php:111
msgid "Posts from local users on this server" msgid "Posts from local users on this server"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:114 #: src/Content/Conversation/Factory/Timeline.php:115
#: src/Module/Settings/Channels.php:118
msgid "Global Community" msgid "Global Community"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:114 #: src/Content/Conversation/Factory/Timeline.php:115
msgid "Posts from users of the whole federated network" msgid "Posts from users of the whole federated network"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:128 #: src/Content/Conversation/Factory/Timeline.php:129
msgid "Latest Activity" msgid "Latest Activity"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:128 #: src/Content/Conversation/Factory/Timeline.php:129
msgid "Sort by latest activity" msgid "Sort by latest activity"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:129 #: src/Content/Conversation/Factory/Timeline.php:130
msgid "Latest Posts" msgid "Latest Posts"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:129 #: src/Content/Conversation/Factory/Timeline.php:130
msgid "Sort by post received date" msgid "Sort by post received date"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:130 #: src/Content/Conversation/Factory/Timeline.php:131
msgid "Latest Creation" msgid "Latest Creation"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:130 #: src/Content/Conversation/Factory/Timeline.php:131
msgid "Sort by post creation date" msgid "Sort by post creation date"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:131 #: src/Content/Conversation/Factory/Timeline.php:132
#: src/Module/Settings/Profile/Index.php:260 #: src/Module/Settings/Profile/Index.php:260
msgid "Personal" msgid "Personal"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:131 #: src/Content/Conversation/Factory/Timeline.php:132
msgid "Posts that mention or involve you" msgid "Posts that mention or involve you"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:132 src/Object/Post.php:380 #: src/Content/Conversation/Factory/Timeline.php:133 src/Object/Post.php:380
msgid "Starred" msgid "Starred"
msgstr "" msgstr ""
#: src/Content/Conversation/Factory/Timeline.php:132 #: src/Content/Conversation/Factory/Timeline.php:133
msgid "Favourite Posts" msgid "Favourite Posts"
msgstr "" msgstr ""
@ -2289,7 +2292,7 @@ msgstr ""
msgid "Local Directory" msgid "Local Directory"
msgstr "" msgstr ""
#: src/Content/Widget.php:215 src/Model/Circle.php:600 #: src/Content/Widget.php:215 src/Model/Circle.php:616
#: src/Module/Contact.php:401 src/Module/Welcome.php:76 #: src/Module/Contact.php:401 src/Module/Welcome.php:76
msgid "Circles" msgid "Circles"
msgstr "" msgstr ""
@ -2367,7 +2370,7 @@ msgid "All"
msgstr "" msgstr ""
#: src/Content/Widget.php:585 src/Module/BaseSettings.php:125 #: src/Content/Widget.php:585 src/Module/BaseSettings.php:125
#: src/Module/Settings/Channels.php:142 src/Module/Settings/Display.php:293 #: src/Module/Settings/Channels.php:157 src/Module/Settings/Display.php:293
msgid "Channels" msgid "Channels"
msgstr "" msgstr ""
@ -3161,36 +3164,36 @@ msgid ""
"not what you intended, please create another circle with a different name." "not what you intended, please create another circle with a different name."
msgstr "" msgstr ""
#: src/Model/Circle.php:543 #: src/Model/Circle.php:559
msgid "Everybody" msgid "Everybody"
msgstr "" msgstr ""
#: src/Model/Circle.php:562 #: src/Model/Circle.php:578
msgid "edit" msgid "edit"
msgstr "" msgstr ""
#: src/Model/Circle.php:599 #: src/Model/Circle.php:615
msgid "add" msgid "add"
msgstr "" msgstr ""
#: src/Model/Circle.php:604 #: src/Model/Circle.php:620
msgid "Edit circle" msgid "Edit circle"
msgstr "" msgstr ""
#: src/Model/Circle.php:605 src/Module/Circle.php:193 #: src/Model/Circle.php:621 src/Module/Circle.php:193
msgid "Contacts not in any circle" msgid "Contacts not in any circle"
msgstr "" msgstr ""
#: src/Model/Circle.php:607 #: src/Model/Circle.php:623
msgid "Create a new circle" msgid "Create a new circle"
msgstr "" msgstr ""
#: src/Model/Circle.php:608 src/Module/Circle.php:178 src/Module/Circle.php:201 #: src/Model/Circle.php:624 src/Module/Circle.php:178 src/Module/Circle.php:201
#: src/Module/Circle.php:276 #: src/Module/Circle.php:276
msgid "Circle Name: " msgid "Circle Name: "
msgstr "" msgstr ""
#: src/Model/Circle.php:609 #: src/Model/Circle.php:625
msgid "Edit circles" msgid "Edit circles"
msgstr "" msgstr ""
@ -5847,7 +5850,7 @@ msgstr ""
#: src/Module/Moderation/Blocklist/Server/Index.php:116 #: src/Module/Moderation/Blocklist/Server/Index.php:116
#: src/Module/Moderation/Item/Delete.php:67 src/Module/Register.php:148 #: src/Module/Moderation/Item/Delete.php:67 src/Module/Register.php:148
#: src/Module/Security/TwoFactor/Verify.php:101 #: src/Module/Security/TwoFactor/Verify.php:101
#: src/Module/Settings/Channels.php:117 src/Module/Settings/Channels.php:132 #: src/Module/Settings/Channels.php:130 src/Module/Settings/Channels.php:146
#: src/Module/Settings/TwoFactor/Index.php:140 #: src/Module/Settings/TwoFactor/Index.php:140
#: src/Module/Settings/TwoFactor/Verify.php:155 #: src/Module/Settings/TwoFactor/Verify.php:155
msgid "Required" msgid "Required"
@ -7119,7 +7122,7 @@ msgstr ""
#: src/Module/Friendica.php:102 #: src/Module/Friendica.php:102
#: src/Module/Moderation/Blocklist/Server/Index.php:87 #: src/Module/Moderation/Blocklist/Server/Index.php:87
#: src/Module/Moderation/Blocklist/Server/Index.php:111 #: src/Module/Moderation/Blocklist/Server/Index.php:111
#: src/Module/Settings/Channels.php:149 #: src/Module/Settings/Channels.php:164
msgid "Reason for the block" msgid "Reason for the block"
msgstr "" msgstr ""
@ -7867,7 +7870,7 @@ msgstr ""
#: src/Module/Moderation/Blocklist/Server/Index.php:86 #: src/Module/Moderation/Blocklist/Server/Index.php:86
#: src/Module/Moderation/Blocklist/Server/Index.php:110 #: src/Module/Moderation/Blocklist/Server/Index.php:110
#: src/Module/Settings/Channels.php:148 #: src/Module/Settings/Channels.php:163
msgid "Blocked server domain pattern" msgid "Blocked server domain pattern"
msgstr "" msgstr ""
@ -9909,68 +9912,76 @@ msgstr ""
msgid "No Addon settings configured" msgid "No Addon settings configured"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:117 src/Module/Settings/Channels.php:132 #: src/Module/Settings/Channels.php:130 src/Module/Settings/Channels.php:146
#: src/Module/Settings/Display.php:314 #: src/Module/Settings/Display.php:314
msgid "Label" msgid "Label"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:118 src/Module/Settings/Channels.php:133 #: src/Module/Settings/Channels.php:131 src/Module/Settings/Channels.php:147
#: src/Module/Settings/Display.php:315 #: src/Module/Settings/Display.php:315
#: src/Module/Settings/TwoFactor/AppSpecific.php:134 #: src/Module/Settings/TwoFactor/AppSpecific.php:134
msgid "Description" msgid "Description"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:119 src/Module/Settings/Channels.php:134 #: src/Module/Settings/Channels.php:132 src/Module/Settings/Channels.php:148
msgid "Access Key" msgid "Access Key"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:120 src/Module/Settings/Channels.php:135 #: src/Module/Settings/Channels.php:133 src/Module/Settings/Channels.php:149
msgid "Circle/Channel"
msgstr ""
#: src/Module/Settings/Channels.php:134 src/Module/Settings/Channels.php:150
msgid "Include Tags" msgid "Include Tags"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:121 src/Module/Settings/Channels.php:136 #: src/Module/Settings/Channels.php:135 src/Module/Settings/Channels.php:151
msgid "Exclude Tags" msgid "Exclude Tags"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:122 src/Module/Settings/Channels.php:137 #: src/Module/Settings/Channels.php:136 src/Module/Settings/Channels.php:152
msgid "Full Text Search" msgid "Full Text Search"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:126 #: src/Module/Settings/Channels.php:140
msgid "Delete channel" msgid "Delete channel"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:126 #: src/Module/Settings/Channels.php:140
msgid "Check to delete this entry from the channel list" msgid "Check to delete this entry from the channel list"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:132 #: src/Module/Settings/Channels.php:146
msgid "Short name for the channel. It is displayed on the channels widget." msgid "Short name for the channel. It is displayed on the channels widget."
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:133 #: src/Module/Settings/Channels.php:147
msgid "This should describe the content of the channel in a few word." msgid "This should describe the content of the channel in a few word."
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:134 #: src/Module/Settings/Channels.php:148
msgid "" msgid ""
"When you want to access this channel via an access key, you can define it " "When you want to access this channel via an access key, you can define it "
"here. Pay attention to not use an already used one." "here. Pay attention to not use an already used one."
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:135 #: src/Module/Settings/Channels.php:149
msgid "Select a circle or channel, that your channel should be based on."
msgstr ""
#: src/Module/Settings/Channels.php:150
msgid "" msgid ""
"Comma separated list of tags. A post will be used when it contains any of " "Comma separated list of tags. A post will be used when it contains any of "
"the listed tags." "the listed tags."
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:136 #: src/Module/Settings/Channels.php:151
msgid "" msgid ""
"Comma separated list of tags. If a post contain any of these tags, then it " "Comma separated list of tags. If a post contain any of these tags, then it "
"will not be part of nthis channel." "will not be part of nthis channel."
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:137 #: src/Module/Settings/Channels.php:152
#, php-format #, php-format
msgid "" msgid ""
"Search terms for the body, supports the \"boolean mode\" operators from " "Search terms for the body, supports the \"boolean mode\" operators from "
@ -9978,39 +9989,39 @@ msgid ""
"keywords: %s" "keywords: %s"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:138 #: src/Module/Settings/Channels.php:153
msgid "Check to display images in the channel." msgid "Check to display images in the channel."
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:139 #: src/Module/Settings/Channels.php:154
msgid "Check to display videos in the channel." msgid "Check to display videos in the channel."
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:140 #: src/Module/Settings/Channels.php:155
msgid "Check to display audio in the channel." msgid "Check to display audio in the channel."
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:143 #: src/Module/Settings/Channels.php:158
msgid "This page can be used to define your own channels." msgid "This page can be used to define your own channels."
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:144 #: src/Module/Settings/Channels.php:159
msgid "Add new entry to the channel list" msgid "Add new entry to the channel list"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:145 src/Module/Settings/Delegation.php:181 #: src/Module/Settings/Channels.php:160 src/Module/Settings/Delegation.php:181
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:147 #: src/Module/Settings/Channels.php:162
msgid "Current Entries in the channel list" msgid "Current Entries in the channel list"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:150 #: src/Module/Settings/Channels.php:165
msgid "Delete entry from the channel list" msgid "Delete entry from the channel list"
msgstr "" msgstr ""
#: src/Module/Settings/Channels.php:151 #: src/Module/Settings/Channels.php:166
msgid "Delete entry from the channel list?" msgid "Delete entry from the channel list?"
msgstr "" msgstr ""

View file

@ -7,6 +7,7 @@
{{include file="field_input.tpl" field=$label}} {{include file="field_input.tpl" field=$label}}
{{include file="field_input.tpl" field=$description}} {{include file="field_input.tpl" field=$description}}
{{include file="field_input.tpl" field=$access_key}} {{include file="field_input.tpl" field=$access_key}}
{{include file="field_select.tpl" field=$circle}}
{{include file="field_input.tpl" field=$include_tags}} {{include file="field_input.tpl" field=$include_tags}}
{{include file="field_input.tpl" field=$exclude_tags}} {{include file="field_input.tpl" field=$exclude_tags}}
{{include file="field_input.tpl" field=$text_search}} {{include file="field_input.tpl" field=$text_search}}
@ -26,6 +27,7 @@
{{include file="field_input.tpl" field=$e.label}} {{include file="field_input.tpl" field=$e.label}}
{{include file="field_input.tpl" field=$e.description}} {{include file="field_input.tpl" field=$e.description}}
{{include file="field_input.tpl" field=$e.access_key}} {{include file="field_input.tpl" field=$e.access_key}}
{{include file="field_select.tpl" field=$e.circle}}
{{include file="field_input.tpl" field=$e.include_tags}} {{include file="field_input.tpl" field=$e.include_tags}}
{{include file="field_input.tpl" field=$e.exclude_tags}} {{include file="field_input.tpl" field=$e.exclude_tags}}
{{include file="field_input.tpl" field=$e.text_search}} {{include file="field_input.tpl" field=$e.text_search}}