]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Admin/Summary.php
Update src/Module/Admin/Summary.php
[friendica.git] / src / Module / Admin / Summary.php
index 667b3224228664f99fc1fce35837203d65e32244..9ca71e33d2487170a9e6f9494b78c44bedf9946b 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
 
 namespace Friendica\Module\Admin;
 
+use Friendica\App;
 use Friendica\Core\Addon;
+use Friendica\Core\Config\Util\ConfigFileManager;
 use Friendica\Core\Config\ValueObject\Cache;
-use Friendica\Core\Logger;
 use Friendica\Core\Renderer;
 use Friendica\Core\Update;
 use Friendica\Database\DBA;
 use Friendica\Database\DBStructure;
 use Friendica\DI;
 use Friendica\Core\Config\Factory\Config;
-use Friendica\Model\Register;
 use Friendica\Module\BaseAdmin;
 use Friendica\Network\HTTPClient\Client\HttpClientAccept;
 use Friendica\Network\HTTPException\ServiceUnavailableException;
+use Friendica\Network\Probe;
 use Friendica\Util\DateTimeFormat;
 
 class Summary extends BaseAdmin
@@ -78,9 +79,10 @@ class Summary extends BaseAdmin
                // Check if github.com/friendica/stable/VERSION is higher then
                // the local version of Friendica. Check is opt-in, source may be stable or develop branch
                if (DI::config()->get('system', 'check_new_version_url', 'none') != 'none') {
-                       $gitversion = DI::config()->get('system', 'git_friendica_version');
-                       if (version_compare(FRIENDICA_VERSION, $gitversion) < 0) {
-                               $warningtext[] = DI::l10n()->t('There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s', FRIENDICA_VERSION, $gitversion);
+                       $gitversion = DI::keyValue()->get('git_friendica_version') ?? ''; 
+
+                       if (version_compare(App::VERSION, $gitversion) < 0) {
+                               $warningtext[] = DI::l10n()->t('There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s', App::VERSION, $gitversion);
                        }
                }
 
@@ -96,7 +98,7 @@ class Summary extends BaseAdmin
                        $warningtext[] = DI::l10n()->t('The last update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)');
                }
 
-               $last_worker_call = DI::config()->get('system', 'last_worker_execution', false);
+               $last_worker_call = DI::keyValue()->get('last_worker_execution');
                if (!$last_worker_call) {
                        $warningtext[] = DI::l10n()->t('The worker was never executed. Please check your database structure!');
                } elseif ((strtotime(DateTimeFormat::utcNow()) - strtotime($last_worker_call)) > 60 * 60) {
@@ -112,9 +114,13 @@ class Summary extends BaseAdmin
                        $warningtext[] = DI::l10n()->t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from <code>config/local.ini.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', DI::baseUrl()->get() . '/help/Config');
                }
 
+               if (!DI::configFileManager()->dataIsWritable()) {
+                       $warningtext[] = DI::l10n()->t('Friendica\'s configuration store "%s" isn\'t writable. Until then database updates won\'t be applied automatically, admin settings and console configuration changes won\'t be saved.', ConfigFileManager::CONFIG_DATA_FILE);
+               }
+
                // Check server vitality
                if (!self::checkSelfHostMeta()) {
-                       $well_known = DI::baseUrl()->get() . '/.well-known/host-meta';
+                       $well_known = DI::baseUrl()->get() . Probe::HOST_META;
                        $warningtext[] = DI::l10n()->t('<a href="%s">%s</a> is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See <a href="%s">the installation page</a> for help.',
                                $well_known, $well_known, DI::baseUrl()->get() . '/help/Install');
                }
@@ -152,7 +158,7 @@ class Summary extends BaseAdmin
                }
 
                // check legacy basepath settings
-               $configLoader = (new Config())->createConfigFileLoader($a->getBasePath(), $_SERVER);
+               $configLoader = (new Config())->createConfigFileManager($a->getBasePath(), $_SERVER);
                $configCache = new Cache();
                $configLoader->setupCache($configCache);
                $confBasepath = $configCache->get('system', 'basepath');
@@ -185,27 +191,6 @@ class Summary extends BaseAdmin
                        }
                }
 
-               $accounts = [
-                       [DI::l10n()->t('Normal Account'), 0],
-                       [DI::l10n()->t('Automatic Follower Account'), 0],
-                       [DI::l10n()->t('Public Forum Account'), 0],
-                       [DI::l10n()->t('Automatic Friend Account'), 0],
-                       [DI::l10n()->t('Blog Account'), 0],
-                       [DI::l10n()->t('Private Forum Account'), 0]
-               ];
-
-               $users = 0;
-               $pageFlagsCountStmt = DBA::p('SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` WHERE `uid` != ? GROUP BY `page-flags`', 0);
-               while ($pageFlagsCount = DBA::fetch($pageFlagsCountStmt)) {
-                       $accounts[$pageFlagsCount['page-flags']][1] = $pageFlagsCount['count'];
-                       $users += $pageFlagsCount['count'];
-               }
-               DBA::close($pageFlagsCountStmt);
-
-               Logger::debug('accounts', ['accounts' => $accounts]);
-
-               $pending = Register::getPendingCount();
-
                $deferred = DBA::count('workerqueue', ['NOT `done` AND `retrial` > ?', 0]);
 
                $workerqueue = DBA::count('workerqueue', ['NOT `done` AND `retrial` = ?', 0]);
@@ -218,10 +203,12 @@ class Summary extends BaseAdmin
 
                $server_settings = [
                        'label' => DI::l10n()->t('Server Settings'),
-                       'php' => [
+                       'php'   => [
+                               'version'             => phpversion(),
+                               'php.ini'             => php_ini_loaded_file(),
                                'upload_max_filesize' => ini_get('upload_max_filesize'),
-                               'post_max_size' => ini_get('post_max_size'),
-                               'memory_limit' => ini_get('memory_limit')
+                               'post_max_size'       => ini_get('post_max_size'),
+                               'memory_limit'        => ini_get('memory_limit')
                        ],
                        'mysql' => [
                                'max_allowed_packet' => $max_allowed_packet
@@ -230,26 +217,23 @@ class Summary extends BaseAdmin
 
                $t = Renderer::getMarkupTemplate('admin/summary.tpl');
                return Renderer::replaceMacros($t, [
-                       '$title' => DI::l10n()->t('Administration'),
-                       '$page' => DI::l10n()->t('Summary'),
-                       '$queues' => $queues,
-                       '$users' => [DI::l10n()->t('Registered users'), $users],
-                       '$accounts' => $accounts,
-                       '$pending' => [DI::l10n()->t('Pending registrations'), $pending],
-                       '$version' => [DI::l10n()->t('Version'), FRIENDICA_VERSION],
-                       '$platform' => FRIENDICA_PLATFORM,
-                       '$codename' => FRIENDICA_CODENAME,
-                       '$build' => DI::config()->get('system', 'build'),
-                       '$addons' => [DI::l10n()->t('Active addons'), Addon::getEnabledList()],
+                       '$title'          => DI::l10n()->t('Administration'),
+                       '$page'           => DI::l10n()->t('Summary'),
+                       '$queues'         => $queues,
+                       '$version'        => [DI::l10n()->t('Version'), App::VERSION],
+                       '$platform'       => App::PLATFORM,
+                       '$codename'       => App::CODENAME,
+                       '$build'          => DI::config()->get('system', 'build'),
+                       '$addons'         => [DI::l10n()->t('Active addons'), Addon::getEnabledList()],
                        '$serversettings' => $server_settings,
-                       '$warningtext' => $warningtext
+                       '$warningtext'    => $warningtext,
                ]);
        }
 
        private static function checkSelfHostMeta()
        {
                // Fetch the host-meta to check if this really is a vital server
-               return DI::httpClient()->get(DI::baseUrl()->get() . '/.well-known/host-meta', HttpClientAccept::XRD_XML)->isSuccess();
+               return DI::httpClient()->get(DI::baseUrl()->get() . Probe::HOST_META, HttpClientAccept::XRD_XML)->isSuccess();
        }
 
 }