<?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
*
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\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
$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) {
$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');
}
}
// 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');
}
}
- $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]);
$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
$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'), App::VERSION],
- '$platform' => App::PLATFORM,
- '$codename' => App::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();
}
}