X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fadmin.php;h=77ac7eddf8ccf135a0cf6d37c3a0eead0a0f6998;hb=8841519c0dfae069aff6bee6325fa868e4b9b641;hp=9ef4c31aed6b0d57ebfa31af7fcd4dfe2827c27b;hpb=e4049d27937d94acb0502ba98d907ad3c0552551;p=friendica.git diff --git a/mod/admin.php b/mod/admin.php index 9ef4c31aed..77ac7eddf8 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -24,6 +24,7 @@ use Friendica\Module\Tos; use Friendica\Util\Arrays; use Friendica\Util\DateTimeFormat; use Friendica\Util\Temporal; +use Friendica\Util\Network; require_once 'include/enotify.php'; require_once 'include/text.php'; @@ -746,21 +747,19 @@ function admin_page_federation(App $a) function admin_page_queue(App $a) { // get content from the queue table - // PLEASE REVIEW (not 100% sure about my code) - $statement = DBA::Select('`queue` AS `q`, `contact` AS `c`', - [ '`c`.`name`', '`c`.`nurl`', '`q`.`id`', '`q`.`network`', "CONVERT_TZ(`q`.`created`, 'UTC' " . Config::get('system', 'default_timezone') . ') as created', "CONVERT_TZ(`q`.`last`, 'UTC', " . Config::get('system', 'default_timezone') . "') as last" ], - '`c`.`id`' => '`q`.`cid`', - ['order'=> ['`q`.`cid`, `q`.`created`']] - ); - $r = DBA::toArray($statement); + $entries = DBA::p("SELECT `contact`.`name`, `contact`.`nurl`, + `queue`.`id`, `queue`.`network`, `queue`.`created`, `queue`.`last` + FROM `queue` INNER JOIN `contact` ON `contact`.`id` = `queue`.`cid` + ORDER BY `queue`.`cid`, `queue`.`created`"); + + $r = []; + while ($entry = DBA::fetch($entries)) { + $entry['created'] = DateTimeFormat::local($entry['created']); + $entry['last'] = DateTimeFormat::local($entry['last']); + $r[] = $entry; + } + DBA::close($entries); - /* - // Leaving this one here for the code review as well as backup - $r = q("SELECT `c`.`name`, `c`.`nurl`, `q`.`id`, `q`.`network`, `q`.`created`, `q`.`last` - FROM `queue` AS `q`, `contact` AS `c` - WHERE `c`.`id` = `q`.`cid` - ORDER BY `q`.`cid`, `q`.`created`;"); - */ $t = get_markup_template('admin/queue.tpl'); return replace_macros($t, [ '$title' => L10n::t('Administration'), @@ -791,13 +790,16 @@ function admin_page_queue(App $a) function admin_page_workerqueue(App $a) { // get jobs from the workerqueue table - $statement = DBA::select('workerqueue', ['id', 'parameter', "CONVERT_TZ(created', 'UTC', " . Config::get('system', 'default_timezone') . "') as created", 'priority'], ['done' => 0], ['order'=> ['priority']]); - $r = DBA::toArray($statement); + $entries = DBA::select('workerqueue', ['id', 'parameter', 'created', 'priority'], ['done' => 0], ['order'=> ['priority']]); - foreach ($r as $key => $rr) { + $r = []; + while ($entry = DBA::fetch($entries)) { // fix GH-5469. ref: src/Core/Worker.php:217 - $r[$key]['parameter'] = Arrays::recursiveImplode(json_decode($rr['parameter'], true), ': '); + $entry['parameter'] = Arrays::recursiveImplode(json_decode($entry['parameter'], true), ': '); + $entry['created'] = DateTimeFormat::local($entry['created']); + $r[] = $entry; } + DBA::close($entries); $t = get_markup_template('admin/workerqueue.tpl'); return replace_macros($t, [ @@ -867,6 +869,14 @@ function admin_page_summary(App $a) $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.ini.php, please copy config/local-sample.ini.php and move your config from .htconfig.php. See the Config help page for help with the transition.', $a->get_baseurl() . '/help/Config'); } + // Check server vitality + if (!admin_page_server_vital()) { + $showwarning = true; + $well_known = $a->get_baseurl() . '/.well-known/host-meta'; + $warningtext[] = L10n::t('%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help.', + $well_known, $well_known, $a->get_baseurl() . '/help/Install'); + } + $r = q("SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`"); $accounts = [ [L10n::t('Normal Account'), 0], @@ -899,6 +909,15 @@ function admin_page_summary(App $a) $queues = ['label' => L10n::t('Message queues'), 'queue' => $queue, '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 = get_markup_template('admin/summary.tpl'); return replace_macros($t, [ '$title' => L10n::t('Administration'), @@ -913,6 +932,7 @@ function admin_page_summary(App $a) '$codename' => FRIENDICA_CODENAME, '$build' => Config::get('system', 'build'), '$addons' => [L10n::t('Active addons'), $a->addons], + '$serversettings' => $server_settings, '$showwarning' => $showwarning, '$warningtext' => $warningtext ]); @@ -1468,7 +1488,7 @@ function admin_page_site(App $a) '$community_page_style' => ['community_page_style', L10n::t("Community pages for visitors"), Config::get('system','community_page_style'), L10n::t("Which community pages should be available for visitors. Local users always see both pages."), $community_page_style_choices], '$max_author_posts_community_page' => ['max_author_posts_community_page', L10n::t("Posts per user on community page"), Config::get('system','max_author_posts_community_page'), L10n::t("The maximum number of posts per user on the community page. \x28Not valid for 'Global Community'\x29")], '$ostatus_disabled' => ['ostatus_disabled', L10n::t("Enable OStatus support"), !Config::get('system','ostatus_disabled'), L10n::t("Provide built-in OStatus \x28StatusNet, GNU Social etc.\x29 compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.")], - '$ostatus_full_threads' => ['ostatus_full_threads', L10n::t("Only import OStatus threads from our contacts"), Config::get('system','ostatus_full_threads'), L10n::t("Normally we import every content from our OStatus contacts. With this option we only store threads that are started by a contact that is known on our system.")], + '$ostatus_full_threads' => ['ostatus_full_threads', L10n::t("Only import OStatus/ActivityPub threads from our contacts"), Config::get('system','ostatus_full_threads'), L10n::t("Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system.")], '$ostatus_not_able' => L10n::t("OStatus support can only be enabled if threading is enabled."), '$diaspora_able' => $diaspora_able, '$diaspora_not_able' => L10n::t("Diaspora support can't be enabled because Friendica was installed into a sub directory."), @@ -1688,11 +1708,14 @@ function admin_page_users_post(App $a) $body = sprintf($body, System::baseUrl(), $user['email'], $result['password'], Config::get('config', 'sitename')); notification([ - 'type' => SYSTEM_EMAIL, + 'type' => SYSTEM_EMAIL, + 'language' => $user['language'], + 'to_name' => $user['username'], 'to_email' => $user['email'], - 'subject' => L10n::t('Registration details for %s', Config::get('config', 'sitename')), + 'uid' => $user['uid'], + 'subject' => L10n::t('Registration details for %s', Config::get('config', 'sitename')), 'preamble' => $preamble, - 'body' => $body]); + 'body' => $body]); } if (x($_POST, 'page_users_block')) { @@ -2540,3 +2563,10 @@ function admin_page_features(App $a) return $o; } } + +function admin_page_server_vital() +{ + // Fetch the host-meta to check if this really is a vital server + $serverret = Network::curl(System::baseUrl() . '/.well-known/host-meta'); + return $serverret["success"]; +}