* @brief Friendica admin
*/
+use \Friendica\Core\Config;
require_once("include/enotify.php");
require_once("include/text.php");
function admin_post(App $a) {
- if(!is_site_admin()) {
+ if (!is_site_admin()) {
return;
}
// urls
if ($a->argc > 1) {
- switch ($a->argv[1]){
+ switch ($a->argv[1]) {
case 'site':
admin_page_site_post($a);
break;
admin_page_users_post($a);
break;
case 'plugins':
- if($a->argc > 2 &&
+ if ($a->argc > 2 &&
is_file("addon/".$a->argv[2]."/".$a->argv[2].".php")) {
@include_once("addon/".$a->argv[2]."/".$a->argv[2].".php");
- if(function_exists($a->argv[2].'_plugin_admin_post')) {
+ if (function_exists($a->argv[2].'_plugin_admin_post')) {
$func = $a->argv[2].'_plugin_admin_post';
$func($a);
}
return; // NOTREACHED
break;
case 'themes':
- if($a->argc < 2) {
- if(is_ajax()) return;
+ if ($a->argc < 2) {
+ if (is_ajax()) {
+ return;
+ }
goaway('admin/');
return;
}
$theme = $a->argv[2];
- if(is_file("view/theme/$theme/config.php")){
+ if (is_file("view/theme/$theme/config.php")) {
function __call_theme_admin_post(App $a, $theme) {
$orig_theme = $a->theme;
$orig_page = $a->page;
$init = $theme."_init";
- if(function_exists($init)) $init($a);
- if(function_exists("theme_admin_post")) {
+ if (function_exists($init)) {
+ $init($a);
+ }
+ if (function_exists("theme_admin_post")) {
$admin_form = theme_admin_post($a);
}
__call_theme_admin_post($a, $theme);
}
info(t('Theme settings updated.'));
- if(is_ajax()) return;
-
+ if (is_ajax()) {
+ return;
+ }
goaway('admin/themes/'.$theme);
return;
break;
*/
function admin_content(App $a) {
- if(!is_site_admin()) {
+ if (!is_site_admin()) {
return login(false);
}
$r = q("SELECT `name` FROM `addon` WHERE `plugin_admin` = 1 ORDER BY `name`");
$aside_tools['plugins_admin']=array();
- foreach ($r as $h){
+ foreach ($r as $h) {
$plugin =$h['name'];
$aside_tools['plugins_admin'][] = array("admin/plugins/".$plugin, $plugin, "plugin");
// temp plugins with admin
*/
$o = '';
// urls
- if($a->argc > 1) {
- switch ($a->argv[1]){
+ if ($a->argc > 1) {
+ switch ($a->argv[1]) {
case 'site':
$o = admin_page_site($a);
break;
$o = admin_page_summary($a);
}
- if(is_ajax()) {
+ if (is_ajax()) {
echo $o;
killme();
return '';
// off one % two of them are needed in the query
// Add more platforms if you like, when one returns 0 known nodes it is not
// displayed on the stats page.
- $platforms = array('Friendica', 'Diaspora', '%%red%%', 'Hubzilla', 'BlaBlaNet', 'GNU Social', 'StatusNet', 'Mastodon');
- $colors = array('Friendica' => '#ffc018', // orange from the logo
+ $platforms = array('Friendi%%a', 'Diaspora', '%%red%%', 'Hubzilla', 'BlaBlaNet', 'GNU Social', 'StatusNet', 'Mastodon');
+ $colors = array('Friendi%%a' => '#ffc018', // orange from the logo
'Diaspora' => '#a1a1a1', // logo is black and white, makes a gray
'%%red%%' => '#c50001', // fire red from the logo
'Hubzilla' => '#43488a', // blue from the logo
// in the DB the Diaspora versions have the format x.x.x.x-xx the last
// part (-xx) should be removed to clean up the versions from the "head
// commit" information and combined into a single entry for x.x.x.x
- if($p=='Diaspora') {
+ if ($p == 'Diaspora') {
$newV = array();
$newVv = array();
- foreach($v as $vv) {
+ foreach ($v as $vv) {
$newVC = $vv['total'];
$newVV = $vv['version'];
$posDash = strpos($newVV, '-');
- if($posDash)
+ if ($posDash) {
$newVV = substr($newVV, 0, $posDash);
- if(isset($newV[$newVV]))
+ }
+ if (isset($newV[$newVV])) {
$newV[$newVV] += $newVC;
- else
+ } else {
$newV[$newVV] = $newVC;
+ }
}
foreach ($newV as $key => $value) {
array_push($newVv, array('total'=>$value, 'version'=>$key));
// early friendica versions have the format x.x.xxxx where xxxx is the
// DB version stamp; those should be operated out and versions be
// conbined
- if($p=='Friendica') {
+ if ($p == 'Friendi%%a') {
$newV = array();
$newVv = array();
foreach ($v as $vv) {
$newVV = $vv['version'];
$lastDot = strrpos($newVV,'.');
$len = strlen($newVV)-1;
- if(($lastDot == $len-4) && (!strrpos($newVV,'-rc')==$len-3))
+ if (($lastDot == $len-4) && (!strrpos($newVV,'-rc') == $len-3)) {
$newVV = substr($newVV, 0, $lastDot);
- if(isset($newV[$newVV]))
+ }
+ if (isset($newV[$newVV])) {
$newV[$newVV] += $newVC;
- else
+ } else {
$newV[$newVV] = $newVC;
+ }
}
foreach ($newV as $key => $value) {
array_push($newVv, array('total'=>$value, 'version'=>$key));
);
$users=0;
- foreach ($r as $u){ $accounts[$u['page-flags']][1] = $u['count']; $users+= $u['count']; }
+ foreach ($r as $u) {
+ $accounts[$u['page-flags']][1] = $u['count'];
+ $users+= $u['count'];
+ }
logger('accounts: '.print_r($accounts,true),LOGGER_DATA);
$r = qu("SELECT COUNT(*) AS `total` FROM `queue` WHERE 1");
$queue = (($r) ? $r[0]['total'] : 0);
- if (get_config('system','worker')) {
- $r = qu("SELECT COUNT(*) AS `total` FROM `workerqueue` WHERE 1");
- $workerqueue = (($r) ? $r[0]['total'] : 0);
- } else {
- $workerqueue = 0;
- }
+ $r = qu("SELECT COUNT(*) AS `total` FROM `workerqueue` WHERE 1");
+ $workerqueue = (($r) ? $r[0]['total'] : 0);
// We can do better, but this is a quick queue status
'$title' => t('Administration'),
'$page' => t('Summary'),
'$queues' => $queues,
- '$workeractive' => get_config('system','worker'),
'$users' => array(t('Registered users'), $users),
'$accounts' => $accounts,
'$pending' => array(t('Pending registrations'), $pending),
* @param App $a
*/
function admin_page_site_post(App $a) {
- if(!x($_POST,"page_site")) {
+ if (!x($_POST,"page_site")) {
return;
}
check_form_security_token_redirectOnErr('/admin/site', 'admin_site');
// relocate
- if(x($_POST,'relocate') && x($_POST,'relocate_url') && $_POST['relocate_url']!="") {
+ if (x($_POST,'relocate') && x($_POST,'relocate_url') && $_POST['relocate_url'] != "") {
$new_url = $_POST['relocate_url'];
$new_url = rtrim($new_url,"/");
$parsed = @parse_url($new_url);
- if(!$parsed || (!x($parsed,'host') || !x($parsed,'scheme'))) {
+ if (!$parsed || (!x($parsed,'host') || !x($parsed,'scheme'))) {
notice(t("Can not parse base url. Must have at least <scheme>://<domain>"));
goaway('admin/site');
}
$q = sprintf("UPDATE %s SET %s;", $table_name, $upds);
$r = q($q);
- if(!$r) {
+ if (!$r) {
notice("Failed updating '$table_name': ".$db->error);
goaway('admin/site');
}
$no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False);
$no_openid = !((x($_POST,'no_openid')) ? True : False);
$no_regfullname = !((x($_POST,'no_regfullname')) ? True : False);
- $no_utf = !((x($_POST,'no_utf')) ? True : False);
$community_page_style = ((x($_POST,'community_page_style')) ? intval(trim($_POST['community_page_style'])) : 0);
$max_author_posts_community_page = ((x($_POST,'max_author_posts_community_page')) ? intval(trim($_POST['max_author_posts_community_page'])) : 0);
$proxyuser = ((x($_POST,'proxyuser')) ? notags(trim($_POST['proxyuser'])) : '');
$proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
$timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
- $delivery_interval = ((x($_POST,'delivery_interval')) ? intval(trim($_POST['delivery_interval'])) : 0);
- $poll_interval = ((x($_POST,'poll_interval')) ? intval(trim($_POST['poll_interval'])) : 0);
$maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
$maxloadavg_frontend = ((x($_POST,'maxloadavg_frontend')) ? intval(trim($_POST['maxloadavg_frontend'])) : 50);
$optimize_max_tablesize = ((x($_POST,'optimize_max_tablesize')) ? intval(trim($_POST['optimize_max_tablesize'])): 100);
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
$force_ssl = ((x($_POST,'force_ssl')) ? True : False);
- $old_share = ((x($_POST,'old_share')) ? True : False);
$hide_help = ((x($_POST,'hide_help')) ? True : False);
- $suppress_language = ((x($_POST,'suppress_language')) ? True : False);
$suppress_tags = ((x($_POST,'suppress_tags')) ? True : False);
$use_fulltext_engine = ((x($_POST,'use_fulltext_engine')) ? True : False);
$itemcache = ((x($_POST,'itemcache')) ? notags(trim($_POST['itemcache'])) : '');
$itemcache_duration = ((x($_POST,'itemcache_duration')) ? intval($_POST['itemcache_duration']) : 0);
$max_comments = ((x($_POST,'max_comments')) ? intval($_POST['max_comments']) : 0);
- $lockpath = ((x($_POST,'lockpath')) ? notags(trim($_POST['lockpath'])) : '');
$temppath = ((x($_POST,'temppath')) ? notags(trim($_POST['temppath'])) : '');
$basepath = ((x($_POST,'basepath')) ? notags(trim($_POST['basepath'])) : '');
$singleuser = ((x($_POST,'singleuser')) ? notags(trim($_POST['singleuser'])) : '');
$proxy_disabled = ((x($_POST,'proxy_disabled')) ? True : False);
- $old_pager = ((x($_POST,'old_pager')) ? True : False);
$only_tag_search = ((x($_POST,'only_tag_search')) ? True : False);
$rino = ((x($_POST,'rino')) ? intval($_POST['rino']) : 0);
- $embedly = ((x($_POST,'embedly')) ? notags(trim($_POST['embedly'])) : '');
- $worker = ((x($_POST,'worker')) ? True : False);
$worker_queues = ((x($_POST,'worker_queues')) ? intval($_POST['worker_queues']) : 4);
$worker_dont_fork = ((x($_POST,'worker_dont_fork')) ? True : False);
$worker_fastlane = ((x($_POST,'worker_fastlane')) ? True : False);
$worker_frontend = ((x($_POST,'worker_frontend')) ? True : False);
- if($a->get_path() != "")
+ if ($a->get_path() != "") {
$diaspora_enabled = false;
-
- if(!$thread_allow)
+ }
+ if (!$thread_allow) {
$ostatus_disabled = true;
-
- if($ssl_policy != intval(get_config('system','ssl_policy'))) {
- if($ssl_policy == SSL_POLICY_FULL) {
+ }
+ if ($ssl_policy != intval(get_config('system','ssl_policy'))) {
+ if ($ssl_policy == SSL_POLICY_FULL) {
q("UPDATE `contact` SET
`url` = REPLACE(`url` , 'http:' , 'https:'),
`photo` = REPLACE(`photo` , 'http:' , 'https:'),
`thumb` = REPLACE(`thumb` , 'http:' , 'https:')
WHERE 1 "
);
- }
- elseif($ssl_policy == SSL_POLICY_SELFSIGN) {
+ } elseif ($ssl_policy == SSL_POLICY_SELFSIGN) {
q("UPDATE `contact` SET
`url` = REPLACE(`url` , 'https:' , 'http:'),
`photo` = REPLACE(`photo` , 'https:' , 'http:'),
}
}
set_config('system','ssl_policy',$ssl_policy);
- set_config('system','delivery_interval',$delivery_interval);
- set_config('system','poll_interval',$poll_interval);
set_config('system','maxloadavg',$maxloadavg);
set_config('system','maxloadavg_frontend',$maxloadavg_frontend);
set_config('system','optimize_max_tablesize',$optimize_max_tablesize);
set_config('config','sitename',$sitename);
set_config('config','hostname',$hostname);
set_config('config','sender_email', $sender_email);
- set_config('system','suppress_language',$suppress_language);
set_config('system','suppress_tags',$suppress_tags);
set_config('system','shortcut_icon',$shortcut_icon);
set_config('system','touch_icon',$touch_icon);
- if($banner=="") {
+ if ($banner == "") {
// don't know why, but del_config doesn't work...
q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1",
dbesc("system"),
set_config('system','banner', $banner);
}
- if($info=="") {
+ if ($info == "") {
del_config('config','info');
} else {
set_config('config','info',$info);
set_config('system','language', $language);
set_config('system','theme', $theme);
- if($theme_mobile === '---') {
+ if ($theme_mobile === '---') {
del_config('system','mobile-theme');
} else {
set_config('system','mobile-theme', $theme_mobile);
}
- if($singleuser === '---') {
+ if ($singleuser === '---') {
del_config('system','singleuser');
} else {
set_config('system','singleuser', $singleuser);
set_config('system','no_regfullname', $no_regfullname);
set_config('system','community_page_style', $community_page_style);
set_config('system','max_author_posts_community_page', $max_author_posts_community_page);
- set_config('system','no_utf', $no_utf);
set_config('system','verifyssl', $verifyssl);
set_config('system','proxyuser', $proxyuser);
set_config('system','proxy', $proxy);
set_config('config','private_addons', $private_addons);
set_config('system','force_ssl', $force_ssl);
- set_config('system','old_share', $old_share);
set_config('system','hide_help', $hide_help);
set_config('system','use_fulltext_engine', $use_fulltext_engine);
set_config('system','itemcache', $itemcache);
set_config('system','itemcache_duration', $itemcache_duration);
set_config('system','max_comments', $max_comments);
- set_config('system','lockpath', $lockpath);
set_config('system','temppath', $temppath);
set_config('system','basepath', $basepath);
set_config('system','proxy_disabled', $proxy_disabled);
- set_config('system','old_pager', $old_pager);
set_config('system','only_tag_search', $only_tag_search);
- set_config('system','worker', $worker);
set_config('system','worker_queues', $worker_queues);
set_config('system','worker_dont_fork', $worker_dont_fork);
set_config('system','worker_fastlane', $worker_fastlane);
set_config('system','frontend_worker', $worker_frontend);
- if($rino==2 and !function_exists('mcrypt_create_iv')) {
+ if (($rino == 2) and !function_exists('mcrypt_create_iv')) {
notice(t("RINO2 needs mcrypt php extension to work."));
} else {
set_config('system','rino_encrypt', $rino);
}
- set_config('system','embedly', $embedly);
-
-
info(t('Site settings updated.').EOL);
goaway('admin/site');
return; // NOTREACHED
/* Installed langs */
$lang_choices = get_available_languages();
- if(strlen(get_config('system','directory_submit_url')) AND
+ if (strlen(get_config('system','directory_submit_url')) AND
!strlen(get_config('system','directory'))) {
set_config('system','directory', dirname(get_config('system','directory_submit_url')));
del_config('system','directory_submit_url');
$theme_choices_mobile = array();
$theme_choices_mobile["---"] = t("No special theme for mobile devices");
$files = glob('view/theme/*');
- if($files) {
- foreach($files as $file) {
- if(intval(file_exists($file.'/unsupported')))
+ if ($files) {
+
+ $allowed_theme_list = Config::get('system', 'allowed_themes');
+
+ foreach ($files as $file) {
+ if (intval(file_exists($file.'/unsupported')))
continue;
$f = basename($file);
+
+ // Only show allowed themes here
+ if (($allowed_theme_list != '') AND !strstr($allowed_theme_list, $f)) {
+ continue;
+ }
+
$theme_name = ((file_exists($file.'/experimental')) ? sprintf("%s - \x28Experimental\x29", $f) : $f);
- if(file_exists($file.'/mobile')) {
+
+ if (file_exists($file.'/mobile')) {
$theme_choices_mobile[$f] = $theme_name;
} else {
$theme_choices[$f] = $theme_name;
/* Banner */
$banner = get_config('system','banner');
- if($banner == false)
+ if ($banner == false) {
$banner = '<a href="http://friendica.com"><img id="logo-img" src="images/friendica-32.png" alt="logo" /></a><span id="logo-text"><a href="http://friendica.com">Friendica</a></span>';
+ }
$banner = htmlspecialchars($banner);
$info = get_config('config','info');
$info = htmlspecialchars($info);
// Automatically create temporary paths
get_temppath();
- get_lockpath();
get_itemcachepath();
//echo "<pre>"; var_dump($lang_choices); die("</pre>");
SSL_POLICY_SELFSIGN => t("Self-signed certificate, use SSL for local links only (discouraged)")
);
- if($a->config['hostname'] == "")
+ if ($a->config['hostname'] == "") {
$a->config['hostname'] = $a->get_hostname();
-
+ }
$diaspora_able = ($a->get_path() == "");
+ $optimize_max_tablesize = Config::get('system','optimize_max_tablesize', 100);
+
+ if ($optimize_max_tablesize < -1) {
+ $optimize_max_tablesize = -1;
+ }
+
+ if ($optimize_max_tablesize == 0) {
+ $optimize_max_tablesize = 100;
+ }
+
$t = get_markup_template("admin_site.tpl");
return replace_macros($t, array(
'$title' => t('Administration'),
'$theme_mobile' => array('theme_mobile', t("Mobile system theme"), get_config('system','mobile-theme'), t("Theme for mobile devices"), $theme_choices_mobile),
'$ssl_policy' => array('ssl_policy', t("SSL link policy"), (string) intval(get_config('system','ssl_policy')), t("Determines whether generated links should be forced to use SSL"), $ssl_choices),
'$force_ssl' => array('force_ssl', t("Force SSL"), get_config('system','force_ssl'), t("Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops.")),
- '$old_share' => array('old_share', t("Old style 'Share'"), get_config('system','old_share'), t("Deactivates the bbcode element 'share' for repeating items.")),
'$hide_help' => array('hide_help', t("Hide help entry from navigation menu"), get_config('system','hide_help'), t("Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly.")),
'$singleuser' => array('singleuser', t("Single user instance"), get_config('system','singleuser'), t("Make this instance multi-user or single-user for the named user"), $user_names),
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
'$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
'$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
'$no_regfullname' => array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), t("Force users to register with a space between firstname and lastname in Full name, as an antispam measure")),
- '$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
'$community_page_style' => array('community_page_style', t("Community Page Style"), get_config('system','community_page_style'), t("Type of community page to show. 'Global community' shows every public posting from an open distributed network that arrived on this server."), $community_page_style_choices),
'$max_author_posts_community_page' => array('max_author_posts_community_page', t("Posts per user on community page"), get_config('system','max_author_posts_community_page'), t("The maximum number of posts per user on the community page. (Not valid for 'Global Community')")),
'$ostatus_disabled' => array('ostatus_disabled', t("Enable OStatus support"), !get_config('system','ostatus_disabled'), t("Provide built-in OStatus \x28StatusNet, GNU Social etc.\x29 compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.")),
'$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""),
'$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
'$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).")),
- '$delivery_interval' => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")),
- '$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
'$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.")),
- '$optimize_max_tablesize'=> array('optimize_max_tablesize', t("Maximum table size for optimization"), ((intval(get_config('system','optimize_max_tablesize')) > 0)?get_config('system','optimize_max_tablesize'):100), t("Maximum table size (in MB) for the automatic optimization - default 100 MB. Enter -1 to disable it.")),
+ '$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%.")),
'$poco_completion' => array('poco_completion', t("Periodical check of global contacts"), get_config('system','poco_completion'), t("If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers.")),
'$nodeinfo' => array('nodeinfo', t("Publish server information"), get_config('system','nodeinfo'), t("If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See <a href='http://the-federation.info/'>the-federation.info</a> for details.")),
'$use_fulltext_engine' => array('use_fulltext_engine', t("Use MySQL full text engine"), get_config('system','use_fulltext_engine'), t("Activates the full text engine. Speeds up search - but can only search for four and more characters.")),
- '$suppress_language' => array('suppress_language', t("Suppress Language"), get_config('system','suppress_language'), t("Suppress language information in meta information about a posting.")),
'$suppress_tags' => array('suppress_tags', t("Suppress Tags"), get_config('system','suppress_tags'), t("Suppress showing a list of hashtags at the end of the posting.")),
'$itemcache' => array('itemcache', t("Path to item cache"), get_config('system','itemcache'), t("The item caches buffers generated bbcode and external images.")),
'$itemcache_duration' => array('itemcache_duration', t("Cache duration in seconds"), get_config('system','itemcache_duration'), t("How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1.")),
'$max_comments' => array('max_comments', t("Maximum numbers of comments per post"), get_config('system','max_comments'), t("How much comments should be shown for each post? Default value is 100.")),
- '$lockpath' => array('lockpath', t("Path for lock file"), get_config('system','lockpath'), t("The lock file is used to avoid multiple pollers at one time. Only define a folder here.")),
'$temppath' => array('temppath', t("Temp path"), get_config('system','temppath'), t("If you have a restricted system where the webserver can't access the system temp path, enter another path here.")),
'$basepath' => array('basepath', t("Base path to installation"), get_config('system','basepath'), t("If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot.")),
'$proxy_disabled' => array('proxy_disabled', t("Disable picture proxy"), get_config('system','proxy_disabled'), t("The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwith.")),
- '$old_pager' => array('old_pager', t("Enable old style pager"), get_config('system','old_pager'), t("The old style pager has page numbers but slows down massively the page speed.")),
'$only_tag_search' => array('only_tag_search', t("Only search in tags"), get_config('system','only_tag_search'), t("On large systems the text search can slow down the system extremely.")),
'$relocate_url' => array('relocate_url', t("New base url"), App::get_baseurl(), t("Change base url for this server. Sends relocate message to all DFRN contacts of all users.")),
'$rino' => array('rino', t("RINO Encryption"), intval(get_config('system','rino_encrypt')), t("Encryption layer between nodes."), array("Disabled", "RINO1 (deprecated)", "RINO2")),
- '$embedly' => array('embedly', t("Embedly API key"), get_config('system','embedly'), t("<a href='http://embed.ly'>Embedly</a> is used to fetch additional data for web pages. This is an optional parameter.")),
- '$worker' => array('worker', t("Enable 'worker' background processing"), get_config('system','worker'), t("The worker background processing limits the number of parallel background jobs to a maximum number and respects the system load.")),
'$worker_queues' => array('worker_queues', t("Maximum number of parallel workers"), get_config('system','worker_queues'), t("On shared hosters set this to 2. On larger systems, values of 10 are great. Default value is 4.")),
'$worker_dont_fork' => array('worker_dont_fork', t("Don't use 'proc_open' with the worker"), get_config('system','worker_dont_fork'), t("Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of poller calls in your crontab.")),
'$worker_fastlane' => array('worker_fastlane', t("Enable fastlane"), get_config('system','worker_fastlane'), t("When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.")),
$o = '';
- if($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') {
+ if ($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') {
set_config('database', 'update_'.intval($a->argv[3]), 'success');
$curr = get_config('system','build');
- if(intval($curr) == intval($a->argv[3]))
+ if (intval($curr) == intval($a->argv[3])) {
set_config('system','build',intval($curr) + 1);
+ }
info(t('Update has been marked successful').EOL);
goaway('admin/dbsync');
}
- if(($a->argc > 2) AND (intval($a->argv[2]) OR ($a->argv[2] === 'check'))) {
+ if (($a->argc > 2) AND (intval($a->argv[2]) OR ($a->argv[2] === 'check'))) {
require_once("include/dbstructure.php");
$retval = update_structure(false, true);
- if(!$retval) {
+ if (!$retval) {
$o .= sprintf(t("Database structure update %s was successfully applied."), DB_UPDATE_VERSION)."<br />";
set_config('database', 'dbupdate_'.DB_UPDATE_VERSION, 'success');
- } else
+ } else {
$o .= sprintf(t("Executing of database structure update %s failed with error: %s"),
DB_UPDATE_VERSION, $retval)."<br />";
- if($a->argv[2] === 'check')
+ }
+ if ($a->argv[2] === 'check') {
return $o;
+ }
}
- if($a->argc > 2 && intval($a->argv[2])) {
+ if ($a->argc > 2 && intval($a->argv[2])) {
require_once('update.php');
$func = 'update_'.intval($a->argv[2]);
- if(function_exists($func)) {
+ if (function_exists($func)) {
$retval = $func();
- if($retval === UPDATE_FAILED) {
+ if ($retval === UPDATE_FAILED) {
$o .= sprintf(t("Executing %s failed with error: %s"), $func, $retval);
}
- elseif($retval === UPDATE_SUCCESS) {
+ elseif ($retval === UPDATE_SUCCESS) {
$o .= sprintf(t('Update %s was successfully applied.', $func));
set_config('database',$func, 'success');
- }
- else
+ } else {
$o .= sprintf(t('Update %s did not return a status. Unknown if it succeeded.'), $func);
+ }
} else {
$o .= sprintf(t('There was no additional update function %s that needed to be called.'), $func)."<br />";
set_config('database',$func, 'success');
if (dbm::is_result($r)) {
foreach ($r as $rr) {
$upd = intval(substr($rr['k'],7));
- if($upd < 1139 || $rr['v'] === 'success')
+ if ($upd < 1139 || $rr['v'] === 'success') {
continue;
+ }
$failed[] = $upd;
}
}
check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
- if (!($nu_name==="") && !($nu_email==="") && !($nu_nickname==="")) {
+ if (!($nu_name === "") && !($nu_email === "") && !($nu_nickname === "")) {
require_once('include/user.php');
$result = create_user(array('username'=>$nu_name, 'email'=>$nu_email,
}
- if(x($_POST,'page_users_block')) {
- foreach($users as $uid){
+ if (x($_POST,'page_users_block')) {
+ foreach ($users as $uid) {
q("UPDATE `user` SET `blocked` = 1-`blocked` WHERE `uid` = %s",
intval($uid)
);
}
notice(sprintf(tt("%s user blocked/unblocked", "%s users blocked/unblocked", count($users)), count($users)));
}
- if(x($_POST,'page_users_delete')) {
+ if (x($_POST,'page_users_delete')) {
require_once("include/Contact.php");
- foreach($users as $uid){
+ foreach ($users as $uid) {
user_remove($uid);
}
notice(sprintf(tt("%s user deleted", "%s users deleted", count($users)), count($users)));
}
- if(x($_POST,'page_users_approve')) {
+ if (x($_POST,'page_users_approve')) {
require_once("mod/regmod.php");
- foreach($pending as $hash){
+ foreach ($pending as $hash) {
user_allow($hash);
}
}
- if(x($_POST,'page_users_deny')) {
+ if (x($_POST,'page_users_deny')) {
require_once("mod/regmod.php");
- foreach($pending as $hash){
+ foreach ($pending as $hash) {
user_deny($hash);
}
}
* @return string
*/
function admin_page_users(App $a) {
- if($a->argc>2) {
+ if ($a->argc>2) {
$uid = $a->argv[3];
$user = q("SELECT `username`, `blocked` FROM `user` WHERE `uid` = %d", intval($uid));
- if(count($user)==0) {
+ if (count($user) == 0) {
notice('User not found'.EOL);
goaway('admin/users');
return ''; // NOTREACHED
}
- switch($a->argv[2]){
- case "delete":{
+ switch($a->argv[2]) {
+ case "delete":
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
// delete user
require_once("include/Contact.php");
user_remove($uid);
notice(sprintf(t("User '%s' deleted"), $user[0]['username']).EOL);
- }; break;
- case "block":{
+ break;
+ case "block":
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
q("UPDATE `user` SET `blocked` = %d WHERE `uid` = %s",
intval(1-$user[0]['blocked']),
intval($uid)
);
notice(sprintf(($user[0]['blocked']?t("User '%s' unblocked"):t("User '%s' blocked")) , $user[0]['username']).EOL);
- }; break;
+ break;
}
goaway('admin/users');
return ''; // NOTREACHED
/* get users */
$total = qu("SELECT COUNT(*) AS `total` FROM `user` WHERE 1");
- if(count($total)) {
+ if (count($total)) {
$a->set_pager_total($total[0]['total']);
$a->set_pager_itemspage(100);
}
$order = "contact.name";
$order_direction = "+";
- if (x($_GET,'o')){
+ if (x($_GET,'o')) {
$new_order = $_GET['o'];
- if ($new_order[0]==="-") {
+ if ($new_order[0] === "-") {
$order_direction = "-";
$new_order = substr($new_order,1);
}
- if (in_array($new_order, $valid_orders)){
+ if (in_array($new_order, $valid_orders)) {
$order = $new_order;
}
- if (x($_GET,'d')){
+ if (x($_GET,'d')) {
$new_direction = $_GET['d'];
}
}
$sql_order = "`".str_replace('.','`.`',$order)."`";
- $sql_order_direction = ($order_direction==="+")?"ASC":"DESC";
+ $sql_order_direction = ($order_direction === "+")?"ASC":"DESC";
$users = qu("SELECT `user`.*, `contact`.`name`, `contact`.`url`, `contact`.`micro`, `user`.`account_expired`, `contact`.`last-item` AS `lastitem_date`
FROM `user`
//echo "<pre>$users"; killme();
$adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
- $_setup_users = function ($e) use ($adminlist){
+ $_setup_users = function ($e) use ($adminlist) {
$accounts = array(
t('Normal Account'),
t('Soapbox Account'),
$tmp_users = array();
$deleted = array();
- while(count($users)) {
+ while (count($users)) {
$new_user = array();
- foreach(array_pop($users) as $k => $v) {
+ foreach (array_pop($users) as $k => $v) {
$k = str_replace('-','_',$k);
$new_user[$k] = $v;
}
- if($new_user['deleted']) {
+ if ($new_user['deleted']) {
array_push($deleted, $new_user);
- }
- else {
+ } else {
array_push($tmp_users, $new_user);
}
}
//Reversing the two array, and moving $tmp_users to $users
array_reverse($deleted);
- while(count($tmp_users)) {
+ while (count($tmp_users)) {
array_push($users, array_pop($tmp_users));
}
/*
* Single plugin
*/
- if($a->argc == 3) {
+ if ($a->argc == 3) {
$plugin = $a->argv[2];
- if(!is_file("addon/$plugin/$plugin.php")) {
+ if (!is_file("addon/$plugin/$plugin.php")) {
notice(t("Item not found."));
return '';
}
- if(x($_GET,"a") && $_GET['a']=="t") {
+ if (x($_GET,"a") && $_GET['a']=="t") {
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_themes', 't');
// Toggle plugin status
$idx = array_search($plugin, $a->plugins);
- if($idx !== false) {
+ if ($idx !== false) {
unset($a->plugins[$idx]);
uninstall_plugin($plugin);
info(sprintf(t("Plugin %s disabled."), $plugin));
// display plugin details
require_once('library/markdown.php');
- if(in_array($plugin, $a->plugins)) {
+ if (in_array($plugin, $a->plugins)) {
$status="on"; $action= t("Disable");
} else {
$status="off"; $action= t("Enable");
}
$readme=Null;
- if(is_file("addon/$plugin/README.md")) {
+ if (is_file("addon/$plugin/README.md")) {
$readme = file_get_contents("addon/$plugin/README.md");
$readme = Markdown($readme);
- } elseif(is_file("addon/$plugin/README")) {
+ } elseif (is_file("addon/$plugin/README")) {
$readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>";
}
$admin_form="";
- if(is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)) {
+ if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)) {
@require_once("addon/$plugin/$plugin.php");
$func = $plugin.'_plugin_admin';
$func($a, $admin_form);
*/
function toggle_theme(&$themes,$th,&$result) {
for($x = 0; $x < count($themes); $x ++) {
- if($themes[$x]['name'] === $th) {
- if($themes[$x]['allowed']) {
+ if ($themes[$x]['name'] === $th) {
+ if ($themes[$x]['allowed']) {
$themes[$x]['allowed'] = 0;
$result = 0;
}
*/
function theme_status($themes,$th) {
for($x = 0; $x < count($themes); $x ++) {
- if($themes[$x]['name'] === $th) {
- if($themes[$x]['allowed']) {
+ if ($themes[$x]['name'] === $th) {
+ if ($themes[$x]['allowed']) {
return 1;
}
else {
*/
function rebuild_theme_table($themes) {
$o = '';
- if(count($themes)) {
- foreach($themes as $th) {
- if($th['allowed']) {
- if(strlen($o))
+ if (count($themes)) {
+ foreach ($themes as $th) {
+ if ($th['allowed']) {
+ if (strlen($o)) {
$o .= ',';
+ }
$o .= $th['name'];
}
}
$allowed_themes_str = get_config('system','allowed_themes');
$allowed_themes_raw = explode(',',$allowed_themes_str);
$allowed_themes = array();
- if(count($allowed_themes_raw))
- foreach($allowed_themes_raw as $x)
- if(strlen(trim($x)))
+ if (count($allowed_themes_raw)) {
+ foreach ($allowed_themes_raw as $x) {
+ if (strlen(trim($x))) {
$allowed_themes[] = trim($x);
+ }
+ }
+ }
$themes = array();
$files = glob('view/theme/*');
- if($files) {
- foreach($files as $file) {
+ if ($files) {
+ foreach ($files as $file) {
$f = basename($file);
+
+ // Is there a style file?
+ $theme_files = glob('view/theme/'.$f.'/style.*');
+
+ // If not then quit
+ if (count($theme_files) == 0) {
+ continue;
+ }
+
$is_experimental = intval(file_exists($file.'/experimental'));
$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 OR $is_supported OR get_config("system", "show_unsupported_themes")) {
$themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed);
+ }
}
}
- if(! count($themes)) {
+ if (! count($themes)) {
notice(t('No themes found.'));
return '';
}
* Single theme
*/
- if($a->argc == 3) {
+ if ($a->argc == 3) {
$theme = $a->argv[2];
- if(! is_dir("view/theme/$theme")) {
+ if (! is_dir("view/theme/$theme")) {
notice(t("Item not found."));
return '';
}
- if(x($_GET,"a") && $_GET['a']=="t") {
+ if (x($_GET,"a") && $_GET['a']=="t") {
check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't');
// Toggle theme status
toggle_theme($themes,$theme,$result);
$s = rebuild_theme_table($themes);
- if($result) {
+ if ($result) {
install_theme($theme);
info(sprintf('Theme %s enabled.',$theme));
- }
- else {
+ } else {
uninstall_theme($theme);
info(sprintf('Theme %s disabled.',$theme));
}
// display theme details
require_once('library/markdown.php');
- if(theme_status($themes,$theme)) {
+ if (theme_status($themes,$theme)) {
$status="on"; $action= t("Disable");
} else {
$status="off"; $action= t("Enable");
}
- $readme=Null;
- if(is_file("view/theme/$theme/README.md")) {
+ $readme = Null;
+ if (is_file("view/theme/$theme/README.md")) {
$readme = file_get_contents("view/theme/$theme/README.md");
$readme = Markdown($readme);
- } elseif(is_file("view/theme/$theme/README")) {
+ } elseif (is_file("view/theme/$theme/README")) {
$readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>";
}
- $admin_form="";
- if(is_file("view/theme/$theme/config.php")) {
+ $admin_form = "";
+ if (is_file("view/theme/$theme/config.php")) {
function __get_theme_admin_form(App $a, $theme) {
$orig_theme = $a->theme;
$orig_page = $a->page;
$init = $theme."_init";
- if(function_exists($init)) $init($a);
- if(function_exists("theme_admin")) {
+ if (function_exists($init)) {
+ $init($a);
+ }
+ if (function_exists("theme_admin")) {
$admin_form = theme_admin($a);
}
}
$screenshot = array(get_theme_screenshot($theme), t('Screenshot'));
- if(! stristr($screenshot[0],$theme))
+ if (! stristr($screenshot[0],$theme)) {
$screenshot = null;
-
+ }
$t = get_markup_template("admin_plugins_details.tpl");
return replace_macros($t, array(
$xthemes = array();
if ($themes) {
- foreach($themes as $th) {
+ foreach ($themes as $th) {
$xthemes[] = array($th['name'],(($th['allowed']) ? "on" : "off"), get_theme_info($th['name']));
}
}
$f = get_config('system','logfile');
$data = '';
- if(!file_exists($f)) {
+ if (!file_exists($f)) {
$data = t("Error trying to open <strong>$f</strong> log file.\r\n<br/>Check to see if file $f exist and is readable.");
- }
- else {
+ } else {
$fp = fopen($f, 'r');
- if(!$fp) {
+ if (!$fp) {
$data = t("Couldn't open <strong>$f</strong> log file.\r\n<br/>Check to see if file $f is readable.");
- }
- else {
+ } else {
$fstat = fstat($fp);
$size = $fstat['size'];
- if($size != 0) {
- if($size > 5000000 || $size < 0)
+ if ($size != 0) {
+ if ($size > 5000000 || $size < 0) {
$size = 5000000;
+ }
$seek = fseek($fp,0-$size,SEEK_END);
- if($seek === 0) {
+ if ($seek === 0) {
$data = escape_tags(fread($fp,$size));
- while(! feof($fp))
+ while (! feof($fp)) {
$data .= escape_tags(fread($fp,4096));
+ }
}
}
fclose($fp);
$arr = array();
$features = get_features(false);
- foreach($features as $fname => $fdata) {
- foreach(array_slice($fdata,1) as $f) {
+ foreach ($features as $fname => $fdata) {
+ foreach (array_slice($fdata,1) as $f) {
$feature = $f[0];
$feature_state = 'feature_'.$feature;
$featurelock = 'featurelock_'.$feature;
- if(x($_POST[$feature_state]))
+ if (x($_POST[$feature_state])) {
$val = intval($_POST['feature_'.$feature]);
- else
+ } else {
$val = 0;
+ }
set_config('feature',$feature,$val);
- if(x($_POST[$featurelock]))
+ if (x($_POST[$featurelock])) {
set_config('feature_lock',$feature,$val);
- else
+ } else {
del_config('feature_lock',$feature);
+ }
}
}
*/
function admin_page_features(App $a) {
- if((argc() > 1) && (argv(1) === 'features')) {
+ if ((argc() > 1) && (argv(1) === 'features')) {
$arr = array();
$features = get_features(false);
- foreach($features as $fname => $fdata) {
+ foreach ($features as $fname => $fdata) {
$arr[$fname] = array();
$arr[$fname][0] = $fdata[0];
- foreach(array_slice($fdata,1) as $f) {
+ foreach (array_slice($fdata,1) as $f) {
$set = get_config('feature',$f[0]);
- if($set === false)
+ if ($set === false) {
$set = $f[3];
+ }
$arr[$fname][1][] = array(
array('feature_' .$f[0],$f[1],$set,$f[2],array(t('Off'),t('On'))),
array('featurelock_' .$f[0],sprintf(t('Lock feature %s'),$f[1]),(($f[4] !== false) ? "1" : ''),'',array(t('Off'),t('On')))