]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Search/Saved.php
Issue 11566: More detailled notification configuration
[friendica.git] / src / Module / Search / Saved.php
index 9d8d84b55a9bb10337af8801500435e1e36f723a..4256ffcd44ec4904cd68b785eab258c02083809f 100644 (file)
@@ -1,44 +1,75 @@
 <?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\Module\Search;
 
-use Friendica\App\Arguments;
+use Friendica\App;
 use Friendica\BaseModule;
 use Friendica\Core\L10n;
-use Friendica\Database\DBA;
-use Friendica\Util\Strings;
+use Friendica\Core\Search;
+use Friendica\Database\Database;
+use Friendica\Module\Response;
+use Friendica\Util\Profiler;
+use Psr\Log\LoggerInterface;
 
 class Saved extends BaseModule
 {
-       public static function init()
+       /** @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 = [])
        {
-               /** @var Arguments $args */
-               $args = self::getClass(Arguments::class);
+               parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
 
-               $action = $args->get(2, 'none');
-               $search = Strings::escapeTags(trim(rawurldecode($_GET['term'] ?? '')));
+               $this->dba = $dba;
+       }
 
-               $return_url = $_GET['return_url'] ?? 'search?q=' . urlencode($search);
+       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 (!DBA::exists('search', $fields)) {
-                                               DBA::insert('search', $fields);
-                                               info(L10n::t('Search term successfully saved.'));
+                                       if (!$this->dba->exists('search', $fields)) {
+                                               if (!$this->dba->insert('search', $fields)) {
+                                                       notice($this->t('Search term was not saved.'));
+                                               }
                                        } else {
-                                               info(L10n::t('Search term already saved.'));
+                                               notice($this->t('Search term already saved.'));
                                        }
                                        break;
 
                                case 'remove':
-                                       DBA::delete('search', ['uid' => local_user(), 'term' => $search]);
-                                       info(L10n::t('Search term successfully removed.'));
+                                       if (!$this->dba->delete('search', ['uid' => local_user(), 'term' => $search])) {
+                                               notice($this->t('Search term was not removed.'));
+                                       }
                                        break;
                        }
                }
 
-               self::getApp()->internalRedirect($return_url);
+               $this->baseUrl->redirect($return_url);
        }
 }