. * */ namespace Friendica\Content\Conversation\Factory; use Friendica\Content\Conversation\Collection\Timelines; use Friendica\Content\Conversation\Entity\Network as NetworkEntity; use Friendica\Content\Conversation\Repository\Channel; use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\L10n; use Psr\Log\LoggerInterface; final class Network extends Timeline { public function __construct(Channel $channel, L10n $l10n, LoggerInterface $logger, IManageConfigValues $config) { parent::__construct($channel, $l10n, $logger, $config); } public function createFromTableRow(array $row): NetworkEntity { return new NetworkEntity( $row['id'] ?? null, $row['label'], $row['description'] ?? null, $row['access-key'] ?? null, null, $row['uid'], $row['include-tags'] ?? null, $row['exclude-tags'] ?? null, $row['full-text-search'] ?? null, $row['media-type'] ?? null, $row['circle'] ?? null, ); } /** * List of available network timelines * * @param string $command * @return Timelines */ public function getTimelines(string $command): Timelines { $tabs = [ new NetworkEntity(NetworkEntity::COMMENTED, $this->l10n->t('Latest Activity'), $this->l10n->t('Sort by latest activity'), 'e', $command . '?' . http_build_query(['order' => 'commented'])), new NetworkEntity(NetworkEntity::RECEIVED, $this->l10n->t('Latest Posts'), $this->l10n->t('Sort by post received date'), 't', $command . '?' . http_build_query(['order' => 'received'])), new NetworkEntity(NetworkEntity::CREATED, $this->l10n->t('Latest Creation'), $this->l10n->t('Sort by post creation date'), 'q', $command . '?' . http_build_query(['order' => 'created'])), new NetworkEntity(NetworkEntity::MENTION, $this->l10n->t('Personal'), $this->l10n->t('Posts that mention or involve you'), 'r', $command . '?' . http_build_query(['mention' => true])), new NetworkEntity(NetworkEntity::STAR, $this->l10n->t('Starred'), $this->l10n->t('Favourite Posts'), 'm', $command . '?' . http_build_query(['star' => true])), ]; return new Timelines($tabs); } public function isTimeline(string $selectedTab): bool { return in_array($selectedTab, [NetworkEntity::COMMENTED, NetworkEntity::RECEIVED, NetworkEntity::CREATED, NetworkEntity::MENTION, NetworkEntity::STAR]); } }