* @brief Friendica admin
*/
-use \Friendica\Core\Config;
+use Friendica\App;
+use Friendica\Core\Config;
require_once("include/enotify.php");
require_once("include/text.php");
$blocklist = Config::get('system', 'blocklist');
$blocklistform = array();
if (is_array($blocklist)) {
- foreach($blocklist as $id =>$b) {
- $blocklistform[] = Array(
- 'url' => Array("url[$id]", t('Blocked URL'), $b['URL'], '', t('The blocked URL'), 'required', '', ''),
- 'reason' => Array("reason[$id]", t("Reason for the block"), $b['reason'], t('The reason why you blocked this URL.').'('.$b['URL'].')', 'required', '', ''),
- 'delete' => Array("delete[$id]", t("Delete UFL").' ('.$b['URL'].')', False , "Check to delete this entry from the blocklist")
+ foreach($blocklist as $id => $b) {
+ $blocklistform[] = array(
+ 'domain' => array("domain[$id]", t('Blocked domain'), $b['domain'], '', t('The blocked domain'), 'required', '', ''),
+ 'reason' => array("reason[$id]", t("Reason for the block"), $b['reason'], t('The reason why you blocked this domain.').'('.$b['domain'].')', 'required', '', ''),
+ 'delete' => array("delete[$id]", t("Delete domain").' ('.$b['domain'].')', False , t("Check to delete this entry from the blocklist"))
);
}
}
return replace_macros($t, array(
'$title' => t('Administration'),
'$page' => t('Server Blocklist'),
- '$intro' => t('This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered URLs you should also give a reason, why you have blocked the remote server.'),
+ '$intro' => t('This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server.'),
'$public' => t('The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily.'),
'$addtitle' => t('Add new entry to block list'),
- '$newurl' => Array('newentry_url', t('Server URL'), '', t('The URL of the new server to add to the block list. Do not include the protocol to the URL.'), 'required', '', ''),
- '$newreason' => Array('newentry_reason', t('Block reason'), '', t('The reason why you blocked this URL.'), 'required', '', ''),
+ '$newdomain' => array('newentry_domain', t('Server Domain'), '', t('The domain of the new server to add to the block list. Do not include the protocol.'), 'required', '', ''),
+ '$newreason' => array('newentry_reason', t('Block reason'), '', t('The reason why you blocked this domain.'), 'required', '', ''),
'$submit' => t('Add Entry'),
'$savechanges' => t('Save changes to the blocklist'),
'$currenttitle' => t('Current Entries in the Blocklist'),
- '$thurl' => t('Blocked URL'),
+ '$thurl' => t('Blocked domain'),
'$threason' => t('Reason for the block'),
'$delentry' => t('Delete entry from blocklist'),
'$entries' => $blocklistform,
'$baseurl' => App::get_baseurl(true),
- '$confirm_delete' => t('Delete entriy from blocklist?'),
+ '$confirm_delete' => t('Delete entry from blocklist?'),
'$form_security_token' => get_form_security_token("admin_blocklist")
));
}
if (x($_POST['page_blocklist_save'])) {
// Add new item to blocklist
$blocklist = get_config('system', 'blocklist');
- $blocklist[] = Array(
- 'URL' => notags(trim($_POST['newentry_url'])),
+ $blocklist[] = array(
+ 'domain' => notags(trim($_POST['newentry_domain'])),
'reason' => notags(trim($_POST['newentry_reason']))
);
Config::set('system', 'blocklist', $blocklist);
} else {
// Edit the entries from blocklist
$blocklist = array();
- foreach ($_POST['url'] as $id => $URL) {
- $URL = notags(trim($URL));
+ foreach ($_POST['domain'] as $id => $domain) {
+ // Trimming whitespaces as well as any lingering slashes
+ $domain = notags(trim($domain, "\x00..\x1F/"));
$reason = notags(trim($_POST['reason'][$id]));
if (!x($_POST['delete'][$id])) {
- $blocklist[] = Array(
- 'URL' => $URL,
+ $blocklist[] = array(
+ 'domain' => $domain,
'reason' => $reason
);
}
info(t('Site blocklist updated.').EOL);
}
goaway('admin/blocklist');
-
+
return; // NOTREACHED
}
$showwarning = true;
$warningtext[] = sprintf(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 include/dbstructure.php 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');
}
- // MySQL >= 5.7.4 doesn't support the IGNORE keyword in ALTER TABLE statements
- if ((version_compare($db->server_info(), '5.7.4') >= 0) AND
- !(strpos($db->server_info(), 'MariaDB') !== false)) {
- $warningtext[] = t('You are using a MySQL version which does not support all features that Friendica uses. You should consider switching to MariaDB.');
+
+ if (Config::get('system', 'dbupdate', DB_UPDATE_NOT_CHECKED) == DB_UPDATE_NOT_CHECKED) {
+ require_once("include/dbstructure.php");
+ update_structure(false, true);
+ }
+ if (Config::get('system', 'dbupdate') == DB_UPDATE_FAILED) {
+ $showwarning = true;
+ $warningtext[] = t('The database update failed. Please run "php include/dbstructure.php update" from the command line and have a look at the errors that might appear.');
}
+
$r = q("SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`");
$accounts = array(
array(t('Normal Account'), 0),
- array(t('Soapbox Account'), 0),
- array(t('Community/Celebrity Account'), 0),
+ array(t('Automatic Follower Account'), 0),
+ array(t('Public Forum Account'), 0),
array(t('Automatic Friend Account'), 0),
array(t('Blog Account'), 0),
- array(t('Private Forum'), 0)
+ array(t('Private Forum Account'), 0)
);
$users=0;
$r = qu("SELECT COUNT(*) AS `total` FROM `queue` WHERE 1");
$queue = (($r) ? $r[0]['total'] : 0);
- $r = qu("SELECT COUNT(*) AS `total` FROM `workerqueue` WHERE 1");
+ $r = qu("SELECT COUNT(*) AS `total` FROM `workerqueue` WHERE NOT `done`");
$workerqueue = (($r) ? $r[0]['total'] : 0);
// We can do better, but this is a quick queue status
$timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
$maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
$maxloadavg_frontend = ((x($_POST,'maxloadavg_frontend')) ? intval(trim($_POST['maxloadavg_frontend'])) : 50);
+ $min_memory = ((x($_POST,'min_memory')) ? intval(trim($_POST['min_memory'])) : 0);
$optimize_max_tablesize = ((x($_POST,'optimize_max_tablesize')) ? intval(trim($_POST['optimize_max_tablesize'])): 100);
$optimize_fragmentation = ((x($_POST,'optimize_fragmentation')) ? intval(trim($_POST['optimize_fragmentation'])): 30);
$poco_completion = ((x($_POST,'poco_completion')) ? intval(trim($_POST['poco_completion'])) : false);
$worker_frontend = ((x($_POST,'worker_frontend')) ? True : False);
// Has the directory url changed? If yes, then resubmit the existing profiles there
- if ($global_directory != Config::get('system', 'directory') AND ($global_directory != '')) {
+ if ($global_directory != Config::get('system', 'directory') && ($global_directory != '')) {
Config::set('system', 'directory', $global_directory);
proc_run(PRIORITY_LOW, 'include/directory.php');
}
set_config('system','ssl_policy',$ssl_policy);
set_config('system','maxloadavg',$maxloadavg);
set_config('system','maxloadavg_frontend',$maxloadavg_frontend);
+ set_config('system','min_memory',$min_memory);
set_config('system','optimize_max_tablesize',$optimize_max_tablesize);
set_config('system','optimize_fragmentation',$optimize_fragmentation);
set_config('system','poco_completion',$poco_completion);
/* Installed langs */
$lang_choices = get_available_languages();
- if (strlen(get_config('system','directory_submit_url')) AND
+ if (strlen(get_config('system','directory_submit_url')) &&
!strlen(get_config('system','directory'))) {
set_config('system','directory', dirname(get_config('system','directory_submit_url')));
del_config('system','directory_submit_url');
$f = basename($file);
// Only show allowed themes here
- if (($allowed_theme_list != '') AND !strstr($allowed_theme_list, $f)) {
+ if (($allowed_theme_list != '') && !strstr($allowed_theme_list, $f)) {
continue;
}
'$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
'$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
'$maxloadavg_frontend' => array('maxloadavg_frontend', t("Maximum Load Average (Frontend)"), ((intval(get_config('system','maxloadavg_frontend')) > 0)?get_config('system','maxloadavg_frontend'):50), t("Maximum system load before the frontend quits service - default 50.")),
+ '$min_memory' => array('min_memory', t("Minimal Memory"), ((intval(get_config('system','min_memory')) > 0)?get_config('system','min_memory'):0), t("Minimal free memory in MB for the poller. Needs access to /proc/meminfo - default 0 (deactivated).")),
'$optimize_max_tablesize'=> array('optimize_max_tablesize', t("Maximum table size for optimization"), $optimize_max_tablesize, t("Maximum table size (in MB) for the automatic optimization - default 100 MB. Enter -1 to disable it.")),
'$optimize_fragmentation'=> array('optimize_fragmentation', t("Minimum level of fragmentation"), ((intval(get_config('system','optimize_fragmentation')) > 0)?get_config('system','optimize_fragmentation'):30), t("Minimum fragmenation level to start the automatic optimization - default value is 30%.")),
goaway('admin/dbsync');
}
- if (($a->argc > 2) AND (intval($a->argv[2]) OR ($a->argv[2] === 'check'))) {
+ if (($a->argc > 2) && (intval($a->argv[2]) || ($a->argv[2] === 'check'))) {
require_once("include/dbstructure.php");
$retval = update_structure(false, true);
if (!$retval) {
$_setup_users = function ($e) use ($adminlist) {
$accounts = array(
t('Normal Account'),
- t('Soapbox Account'),
- t('Community/Celebrity Account'),
+ t('Automatic Follower Account'),
+ t('Public Forum Account'),
t('Automatic Friend Account')
);
$e['page-flags'] = $accounts[$e['page-flags']];
$show_plugin = true;
// If the addon is unsupported, then only show it, when it is enabled
- if ((strtolower($info["status"]) == "unsupported") AND !in_array($id, $a->plugins)) {
+ if ((strtolower($info["status"]) == "unsupported") && !in_array($id, $a->plugins)) {
$show_plugin = false;
}
$is_supported = 1-(intval(file_exists($file.'/unsupported')));
$is_allowed = intval(in_array($f,$allowed_themes));
- if ($is_allowed OR $is_supported OR get_config("system", "show_unsupported_themes")) {
+ if ($is_allowed || $is_supported || get_config("system", "show_unsupported_themes")) {
$themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed);
}
}