]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Admin/Site.php
Fixings
[friendica.git] / src / Module / Admin / Site.php
index 18a1cbf2a835f5d214e1731a478945c52672e492..433cddf6f75018e1dce4b3f59a63af2d9c257de7 100644 (file)
@@ -6,10 +6,12 @@ use Friendica\App;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
 use Friendica\Core\Renderer;
+use Friendica\Core\Search;
 use Friendica\Core\StorageManager;
 use Friendica\Core\Theme;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
+use Friendica\DI;
 use Friendica\Module\BaseAdminModule;
 use Friendica\Module\Register;
 use Friendica\Protocol\PortableContact;
@@ -21,13 +23,13 @@ require_once __DIR__ . '/../../../boot.php';
 
 class Site extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                self::checkFormSecurityTokenRedirectOnError('/admin/site', 'admin_site');
 
-               $a = self::getApp();
+               $a = DI::app();
 
                if (!empty($_POST['republish_directory'])) {
                        Worker::add(PRIORITY_LOW, 'Directory');
@@ -47,7 +49,7 @@ class Site extends BaseAdminModule
                        $parsed = @parse_url($new_url);
                        if (!is_array($parsed) || empty($parsed['host']) || empty($parsed['scheme'])) {
                                notice(L10n::t("Can not parse base url. Must have at least <scheme>://<domain>"));
-                               $a->internalRedirect('admin/site');
+                               DI::baseUrl()->redirect('admin/site');
                        }
 
                        /* steps:
@@ -55,7 +57,7 @@ class Site extends BaseAdminModule
                         * send relocate for every local user
                         * */
 
-                       $old_url = $a->getBaseURL(true);
+                       $old_url = DI::baseUrl()->get(true);
 
                        // Generate host names for relocation the addresses in the format user@address.tld
                        $new_host = str_replace("http://", "@", Strings::normaliseLink($new_url));
@@ -76,7 +78,7 @@ class Site extends BaseAdminModule
                                $r = DBA::e(sprintf("UPDATE %s SET %s;", $table_name, $upds));
                                if (!DBA::isResult($r)) {
                                        notice("Failed updating '$table_name': " . DBA::errorMessage());
-                                       $a->internalRedirect('admin/site');
+                                       DI::baseUrl()->redirect('admin/site');
                                }
                        }
 
@@ -94,7 +96,7 @@ class Site extends BaseAdminModule
 
                        // update config
                        Config::set('system', 'url', $new_url);
-                       $a->setBaseURL($new_url);
+                       DI::baseUrl()->saveByURL($new_url);
 
                        // send relocate
                        $usersStmt = DBA::select('user', ['uid'], ['account_removed' => false, 'account_expired' => false]);
@@ -104,7 +106,7 @@ class Site extends BaseAdminModule
 
                        info("Relocation started. Could take a while to complete.");
 
-                       $a->internalRedirect('admin/site');
+                       DI::baseUrl()->redirect('admin/site');
                }
                // end relocate
 
@@ -197,42 +199,37 @@ class Site extends BaseAdminModule
                $relay_user_tags   = !empty($_POST['relay_user_tags']);
                $active_panel      = (!empty($_POST['active_panel'])      ? "#" . Strings::escapeTags(trim($_POST['active_panel'])) : '');
 
-               /**
-                * @var $storagebackend \Friendica\Model\Storage\IStorage
-                */
                $storagebackend    = Strings::escapeTags(trim($_POST['storagebackend'] ?? ''));
 
                // save storage backend form
-               if (!is_null($storagebackend) && $storagebackend != "") {
-                       if (StorageManager::setBackend($storagebackend)) {
-                               $storage_opts = $storagebackend::getOptions();
-                               $storage_form_prefix = preg_replace('|[^a-zA-Z0-9]|', '', $storagebackend);
-                               $storage_opts_data = [];
-                               foreach ($storage_opts as $name => $info) {
-                                       $fieldname = $storage_form_prefix . '_' . $name;
-                                       switch ($info[0]) { // type
-                                               case 'checkbox':
-                                               case 'yesno':
-                                                       $value = !empty($_POST[$fieldname]);
-                                                       break;
-                                               default:
-                                                       $value = $_POST[$fieldname] ?? '';
-                                       }
-                                       $storage_opts_data[$name] = $value;
+               if (DI::storageManager()->setBackend($storagebackend)) {
+                       $storage_opts     = DI::storage()->getOptions();
+                       $storage_form_prefix = preg_replace('|[^a-zA-Z0-9]|', '', $storagebackend);
+                       $storage_opts_data   = [];
+                       foreach ($storage_opts as $name => $info) {
+                               $fieldname = $storage_form_prefix . '_' . $name;
+                               switch ($info[0]) { // type
+                                       case 'checkbox':
+                                       case 'yesno':
+                                               $value = !empty($_POST[$fieldname]);
+                                               break;
+                                       default:
+                                               $value = $_POST[$fieldname] ?? '';
                                }
-                               unset($name);
-                               unset($info);
-
-                               $storage_form_errors = $storagebackend::saveOptions($storage_opts_data);
-                               if (count($storage_form_errors)) {
-                                       foreach ($storage_form_errors as $name => $err) {
-                                               notice('Storage backend, ' . $storage_opts[$name][1] . ': ' . $err);
-                                       }
-                                       $a->internalRedirect('admin/site' . $active_panel);
+                               $storage_opts_data[$name] = $value;
+                       }
+                       unset($name);
+                       unset($info);
+
+                       $storage_form_errors = DI::storage()->saveOptions($storage_opts_data);
+                       if (count($storage_form_errors)) {
+                               foreach ($storage_form_errors as $name => $err) {
+                                       notice('Storage backend, ' . $storage_opts[$name][1] . ': ' . $err);
                                }
-                       } else {
-                               info(L10n::t('Invalid storage backend setting value.'));
+                               DI::baseUrl()->redirect('admin/site' . $active_panel);
                        }
+               } else {
+                       info(L10n::t('Invalid storage backend setting value.'));
                }
 
                // Has the directory url changed? If yes, then resubmit the existing profiles there
@@ -241,7 +238,7 @@ class Site extends BaseAdminModule
                        Worker::add(PRIORITY_LOW, 'Directory');
                }
 
-               if ($a->getURLPath() != "") {
+               if (DI::baseUrl()->getUrlPath() != "") {
                        $diaspora_enabled = false;
                }
                if ($ssl_policy != intval(Config::get('system', 'ssl_policy'))) {
@@ -409,14 +406,12 @@ class Site extends BaseAdminModule
 
                info(L10n::t('Site settings updated.') . EOL);
 
-               $a->internalRedirect('admin/site' . $active_panel);
+               DI::baseUrl()->redirect('admin/site' . $active_panel);
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
-
-               $a = self::getApp();
+               parent::content($parameters);
 
                /* Installed langs */
                $lang_choices = L10n::getAvailableLanguages();
@@ -522,7 +517,7 @@ class Site extends BaseAdminModule
                        'develop' => L10n::t('check the development version')
                ];
 
-               $diaspora_able = ($a->getURLPath() == '');
+               $diaspora_able = (DI::baseUrl()->getUrlPath() == '');
 
                $optimize_max_tablesize = Config::get('system', 'optimize_max_tablesize', -1);
 
@@ -530,29 +525,25 @@ class Site extends BaseAdminModule
                        $optimize_max_tablesize = -1;
                }
 
-               $storage_backends = StorageManager::listBackends();
-               /** @var $current_storage_backend \Friendica\Model\Storage\IStorage */
-               $current_storage_backend = StorageManager::getBackend();
-
+               $current_storage_backend = DI::storage();
                $available_storage_backends = [];
 
                // show legacy option only if it is the current backend:
                // once changed can't be selected anymore
-               if ($current_storage_backend == '') {
+               if ($current_storage_backend == null) {
                        $available_storage_backends[''] = L10n::t('Database (legacy)');
                }
 
-               foreach ($storage_backends as $name => $class) {
-                       $available_storage_backends[$class] = $name;
+               foreach (DI::storageManager()->listBackends() as $name => $class) {
+                       $available_storage_backends[$name] = $name;
                }
-               unset($storage_backends);
 
                // build storage config form,
                $storage_form_prefix = preg_replace('|[^a-zA-Z0-9]|' ,'', $current_storage_backend);
 
                $storage_form = [];
                if (!is_null($current_storage_backend) && $current_storage_backend != '') {
-                       foreach ($current_storage_backend::getOptions() as $name => $info) {
+                       foreach ($current_storage_backend->getOptions() as $name => $info) {
                                $type = $info[0];
                                $info[0] = $storage_form_prefix . '_' . $name;
                                $info['type'] = $type;
@@ -577,7 +568,7 @@ class Site extends BaseAdminModule
                        '$relay_title'       => L10n::t('Message Relay'),
                        '$relocate'          => L10n::t('Relocate Instance'),
                        '$relocate_warning'  => L10n::t('Warning! Advanced function. Could make this server unreachable.'),
-                       '$baseurl'           => $a->getBaseURL(true),
+                       '$baseurl'           => DI::baseUrl()->get(true),
 
                        // name, label, value, help string, extra data...
                        '$sitename'         => ['sitename', L10n::t('Site name'), Config::get('config', 'sitename'), ''],
@@ -585,7 +576,7 @@ class Site extends BaseAdminModule
                        '$banner'           => ['banner', L10n::t('Banner/Logo'), $banner, ''],
                        '$shortcut_icon'    => ['shortcut_icon', L10n::t('Shortcut icon'), Config::get('system', 'shortcut_icon'), L10n::t('Link to an icon that will be used for browsers.')],
                        '$touch_icon'       => ['touch_icon', L10n::t('Touch icon'), Config::get('system', 'touch_icon'), L10n::t('Link to an icon that will be used for tablets and mobiles.')],
-                       '$additional_info'  => ['additional_info', L10n::t('Additional Info'), $additional_info, L10n::t('For public servers: you can add additional information here that will be listed at %s/servers.', get_server())],
+                       '$additional_info'  => ['additional_info', L10n::t('Additional Info'), $additional_info, L10n::t('For public servers: you can add additional information here that will be listed at %s/servers.', Search::getGlobalDirectory())],
                        '$language'         => ['language', L10n::t('System language'), Config::get('system', 'language'), '', $lang_choices],
                        '$theme'            => ['theme', L10n::t('System theme'), Config::get('system', 'theme'), L10n::t('Default system theme - may be over-ridden by user profiles - <a href="/admin/themes" id="cnftheme">Change default theme settings</a>'), $theme_choices],
                        '$theme_mobile'     => ['theme_mobile', L10n::t('Mobile system theme'), Config::get('system', 'mobile-theme', '---'), L10n::t('Theme for mobile devices'), $theme_choices_mobile],
@@ -660,14 +651,14 @@ class Site extends BaseAdminModule
                        '$proxy_disabled'         => ['proxy_disabled', L10n::t('Disable picture proxy'), Config::get('system', 'proxy_disabled'), L10n::t('The picture proxy increases performance and privacy. It shouldn\'t be used on systems with very low bandwidth.')],
                        '$only_tag_search'        => ['only_tag_search', L10n::t('Only search in tags'), Config::get('system', 'only_tag_search'), L10n::t('On large systems the text search can slow down the system extremely.')],
 
-                       '$relocate_url'           => ['relocate_url', L10n::t('New base url'), $a->getBaseURL(), L10n::t('Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users.')],
+                       '$relocate_url'           => ['relocate_url', L10n::t('New base url'), DI::baseUrl()->get(), L10n::t('Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users.')],
 
                        '$rino'                   => ['rino', L10n::t('RINO Encryption'), intval(Config::get('system', 'rino_encrypt')), L10n::t('Encryption layer between nodes.'), [0 => L10n::t('Disabled'), 1 => L10n::t('Enabled')]],
 
                        '$worker_queues'          => ['worker_queues', L10n::t('Maximum number of parallel workers'), Config::get('system', 'worker_queues'), L10n::t('On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d.', 5, 20, 10)],
                        '$worker_dont_fork'       => ['worker_dont_fork', L10n::t('Don\'t use "proc_open" with the worker'), Config::get('system', 'worker_dont_fork'), L10n::t('Enable this if your system doesn\'t allow the use of "proc_open". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab.')],
                        '$worker_fastlane'        => ['worker_fastlane', L10n::t('Enable fastlane'), Config::get('system', 'worker_fastlane'), L10n::t('When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.')],
-                       '$worker_frontend'        => ['worker_frontend', L10n::t('Enable frontend worker'), Config::get('system', 'frontend_worker'), L10n::t('When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server.', $a->getBaseURL())],
+                       '$worker_frontend'        => ['worker_frontend', L10n::t('Enable frontend worker'), Config::get('system', 'frontend_worker'), L10n::t('When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server.', DI::baseUrl()->get())],
 
                        '$relay_subscribe'        => ['relay_subscribe', L10n::t('Subscribe to relay'), Config::get('system', 'relay_subscribe'), L10n::t('Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page.')],
                        '$relay_server'           => ['relay_server', L10n::t('Relay server'), Config::get('system', 'relay_server', 'https://relay.diasp.org'), L10n::t('Address of the relay server where public posts should be send to. For example https://relay.diasp.org')],