. * */ namespace Friendica\Module\Search; use Friendica\App; use Friendica\BaseModule; use Friendica\Core\L10n; use Friendica\Core\Search; use Friendica\Database\Database; use Friendica\Module\Response; use Friendica\Util\Profiler; use Psr\Log\LoggerInterface; class Saved extends BaseModule { /** @var Database */ protected $dba; public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, Database $dba, array $server, array $parameters = []) { parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); $this->dba = $dba; } protected function rawContent(array $request = []) { $action = $this->args->get(2, 'none'); $search = trim(rawurldecode($_GET['term'] ?? '')); $return_url = $_GET['return_url'] ?? Search::getSearchPath($search); if (local_user() && $search) { switch ($action) { case 'add': $fields = ['uid' => local_user(), 'term' => $search]; if (!$this->dba->exists('search', $fields)) { if (!$this->dba->insert('search', $fields)) { notice($this->t('Search term was not saved.')); } } else { notice($this->t('Search term already saved.')); } break; case 'remove': if (!$this->dba->delete('search', ['uid' => local_user(), 'term' => $search])) { notice($this->t('Search term was not removed.')); } break; } } $this->baseUrl->redirect($return_url); } }