default:
notice(L10n::t("Item not found."));
}
- } else {
- $o = admin_page_summary($a);
}
if ($a->isAjax()) {
]);
}
-/**
- * @brief Admin Summary Page
- *
- * The summary page is the "start page" of the admin panel. It gives the admin
- * a first overview of the open adminastrative tasks.
- *
- * The returned string contains the HTML content of the generated page.
- *
- * @param App $a
- * @return string
- * @throws \Friendica\Network\HTTPException\InternalServerErrorException
- */
-function admin_page_summary(App $a)
-{
- // are there MyISAM tables in the DB? If so, trigger a warning message
- $r = q("SELECT `engine` FROM `information_schema`.`tables` WHERE `engine` = 'myisam' AND `table_schema` = '%s' LIMIT 1", DBA::escape(DBA::databaseName()));
- $showwarning = false;
- $warningtext = [];
- if (DBA::isResult($r)) {
- $showwarning = true;
- $warningtext[] = L10n::t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See <a href="%s">here</a> for a guide that may be helpful converting the table engines. You may also use the command <tt>php bin/console.php dbstructure toinnodb</tt> of your Friendica installation for an automatic conversion.<br />', 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html');
- }
- // Check if github.com/friendica/master/VERSION is higher then
- // the local version of Friendica. Check is opt-in, source may be master or devel branch
- if (Config::get('system', 'check_new_version_url', 'none') != 'none') {
- $gitversion = Config::get('system', 'git_friendica_version');
- if (version_compare(FRIENDICA_VERSION, $gitversion) < 0) {
- $warningtext[] = 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);
- $showwarning = true;
- }
- }
-
- if (Config::get('system', 'dbupdate', DBStructure::UPDATE_NOT_CHECKED) == DBStructure::UPDATE_NOT_CHECKED) {
- DBStructure::update($a->getBasePath(), false, true);
- }
- if (Config::get('system', 'dbupdate') == DBStructure::UPDATE_FAILED) {
- $showwarning = true;
- $warningtext[] = L10n::t('The database update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear.');
- }
- if (Config::get('system', 'update') == Update::FAILED) {
- $showwarning = true;
- $warningtext[] = 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 = Config::get('system', 'last_worker_execution', false);
- if (!$last_worker_call) {
- $showwarning = true;
- $warningtext[] = L10n::t('The worker was never executed. Please check your database structure!');
- } elseif ((strtotime(DateTimeFormat::utcNow()) - strtotime($last_worker_call)) > 60 * 60) {
- $showwarning = true;
- $warningtext[] = L10n::t('The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.', $last_worker_call);
- }
-
- // Legacy config file warning
- if (file_exists('.htconfig.php')) {
- $showwarning = true;
- $warningtext[] = 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>.htconfig.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', $a->getBaseURL() . '/help/Config');
- }
- if (file_exists('config/local.ini.php')) {
- $showwarning = true;
- $warningtext[] = 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.', $a->getBaseURL() . '/help/Config');
- }
-
- // Check server vitality
- if (!admin_page_server_vital()) {
- $showwarning = true;
- $well_known = $a->getBaseURL() . '/.well-known/host-meta';
- $warningtext[] = 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, $a->getBaseURL() . '/help/Install');
- }
-
- $r = q("SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`");
- $accounts = [
- [L10n::t('Normal Account'), 0],
- [L10n::t('Automatic Follower Account'), 0],
- [L10n::t('Public Forum Account'), 0],
- [L10n::t('Automatic Friend Account'), 0],
- [L10n::t('Blog Account'), 0],
- [L10n::t('Private Forum Account'), 0]
- ];
-
- $users = 0;
- foreach ($r as $u) {
- $accounts[$u['page-flags']][1] = $u['count'];
- $users += $u['count'];
- }
-
- Logger::log('accounts: ' . print_r($accounts, true), Logger::DATA);
-
- $pending = Register::getPendingCount();
-
- $deferred = DBA::count('workerqueue', ["`executed` <= ? AND NOT `done` AND `next_try` > ?",
- DBA::NULL_DATETIME, DateTimeFormat::utcNow()]);
-
- $workerqueue = DBA::count('workerqueue', ["`executed` <= ? AND NOT `done` AND `next_try` < ?",
- DBA::NULL_DATETIME, DateTimeFormat::utcNow()]);
-
- // We can do better, but this is a quick queue status
-
- $queues = ['label' => L10n::t('Message queues'), 'deferred' => $deferred, 'workerq' => $workerqueue];
-
-
- $r = q("SHOW variables LIKE 'max_allowed_packet'");
- $max_allowed_packet = (($r) ? $r[0]['Value'] : 0);
-
- $server_settings = ['label' => L10n::t('Server Settings'),
- 'php' => ['upload_max_filesize' => ini_get('upload_max_filesize'),
- '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' => L10n::t('Administration'),
- '$page' => L10n::t('Summary'),
- '$queues' => $queues,
- '$users' => [L10n::t('Registered users'), $users],
- '$accounts' => $accounts,
- '$pending' => [L10n::t('Pending registrations'), $pending],
- '$version' => [L10n::t('Version'), FRIENDICA_VERSION],
- '$baseurl' => System::baseUrl(),
- '$platform' => FRIENDICA_PLATFORM,
- '$codename' => FRIENDICA_CODENAME,
- '$build' => Config::get('system', 'build'),
- '$addons' => [L10n::t('Active addons'), Addon::getEnabledList()],
- '$serversettings' => $server_settings,
- '$showwarning' => $showwarning,
- '$warningtext' => $warningtext
- ]);
-}
-
/**
* @brief Process send data from Admin Site Page
*