Fix Issue #2822 - Add new setting to user settings page

- Convert formatting to PSR-2
- Add new bandwitdh saver setting
This commit is contained in:
Hypolite Petovan 2016-10-02 15:25:10 -04:00
commit d9a5554543
3 changed files with 1093 additions and 1078 deletions

View file

@ -1,9 +1,10 @@
<?php
require_once('include/group.php');
require_once('include/socgraph.php');
require_once 'include/group.php';
require_once 'include/socgraph.php';
function get_theme_config_file($theme){
function get_theme_config_file($theme)
{
$a = get_app();
$base_theme = $a->theme_info['extends'];
@ -13,13 +14,15 @@ function get_theme_config_file($theme){
if (file_exists("view/theme/$base_theme/config.php")) {
return "view/theme/$base_theme/config.php";
}
return null;
}
function settings_init(&$a) {
function settings_init(&$a)
{
if (!local_user()) {
notice(t('Permission denied.').EOL);
return;
}
@ -31,13 +34,11 @@ function settings_init(&$a) {
// These lines provide the javascript needed by the acl selector
$tpl = get_markup_template("settings-head.tpl");
$tpl = get_markup_template('settings-head.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$ispublic' => t('everybody')
'$ispublic' => t('everybody'),
));
$tabs = array(
array(
'label' => t('Account'),
@ -105,27 +106,27 @@ function settings_init(&$a) {
'accesskey' => 'r',
);
$tabtpl = get_markup_template("generic_links_widget.tpl");
$tabtpl = get_markup_template('generic_links_widget.tpl');
$a->page['aside'] = replace_macros($tabtpl, array(
'$title' => t('Settings'),
'$class' => 'settings-widget',
'$items' => $tabs,
));
}
function settings_post(&$a) {
if(! local_user())
function settings_post(&$a)
{
if (!local_user()) {
return;
}
if(x($_SESSION,'submanage') && intval($_SESSION['submanage']))
if (x($_SESSION, 'submanage') && intval($_SESSION['submanage'])) {
return;
}
if (count($a->user) && x($a->user, 'uid') && $a->user['uid'] != local_user()) {
notice(t('Permission denied.').EOL);
return;
}
@ -138,12 +139,12 @@ function settings_post(&$a) {
q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
dbesc($key),
local_user());
goaway($a->get_baseurl(true)."/settings/oauth/");
goaway($a->get_baseurl(true).'/settings/oauth/');
return;
}
if (($a->argc > 2) && ($a->argv[1] === 'oauth') && ($a->argv[2] === 'edit' || ($a->argv[2] === 'add')) && x($_POST, 'submit')) {
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
$name = ((x($_POST, 'name')) ? $_POST['name'] : '');
@ -151,11 +152,10 @@ function settings_post(&$a) {
$secret = ((x($_POST, 'secret')) ? $_POST['secret'] : '');
$redirect = ((x($_POST, 'redirect')) ? $_POST['redirect'] : '');
$icon = ((x($_POST, 'icon')) ? $_POST['icon'] : '');
if ($name=="" || $key=="" || $secret==""){
notice(t("Missing some important data!"));
if ($name == '' || $key == '' || $secret == '') {
notice(t('Missing some important data!'));
} else {
if ($_POST['submit']==t("Update")){
if ($_POST['submit'] == t('Update')) {
$r = q("UPDATE clients SET
client_id='%s',
pw='%s',
@ -183,7 +183,8 @@ function settings_post(&$a) {
local_user());
}
}
goaway($a->get_baseurl(true)."/settings/oauth/");
goaway($a->get_baseurl(true).'/settings/oauth/');
return;
}
@ -191,11 +192,11 @@ function settings_post(&$a) {
check_form_security_token_redirectOnErr('/settings/addon', 'settings_addon');
call_hooks('plugin_settings_post', $_POST);
return;
}
if (($a->argc > 1) && ($a->argv[1] == 'connectors')) {
check_form_security_token_redirectOnErr('/settings/connectors', 'settings_connectors');
if (x($_POST, 'general-submit')) {
@ -204,7 +205,6 @@ function settings_post(&$a) {
set_pconfig(local_user(), 'ostatus', 'default_group', $_POST['group-selection']);
set_pconfig(local_user(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']);
} elseif (x($_POST, 'imap-submit')) {
$mail_server = ((x($_POST, 'mail_server')) ? $_POST['mail_server'] : '');
$mail_port = ((x($_POST, 'mail_port')) ? $_POST['mail_port'] : '');
$mail_ssl = ((x($_POST, 'mail_ssl')) ? strtolower(trim($_POST['mail_ssl'])) : '');
@ -215,18 +215,18 @@ function settings_post(&$a) {
$mail_replyto = ((x($_POST, 'mail_replyto')) ? $_POST['mail_replyto'] : '');
$mail_pubmail = ((x($_POST, 'mail_pubmail')) ? $_POST['mail_pubmail'] : '');
$mail_disabled = ((function_exists('imap_open') && (!get_config('system', 'imap_disabled'))) ? 0 : 1);
if(get_config('system','dfrn_only'))
if (get_config('system', 'dfrn_only')) {
$mail_disabled = 1;
}
if (!$mail_disabled) {
$failed = false;
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
$r = q('SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1',
intval(local_user())
);
if (!count($r)) {
q("INSERT INTO `mailacct` (`uid`) VALUES (%d)",
q('INSERT INTO `mailacct` (`uid`) VALUES (%d)',
intval(local_user())
);
}
@ -251,13 +251,13 @@ function settings_post(&$a) {
intval($mail_pubmail),
intval(local_user())
);
logger("mail: updating mailaccount. Response: ".print_r($r, true));
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
logger('mail: updating mailaccount. Response: '.print_r($r, true));
$r = q('SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1',
intval(local_user())
);
if (count($r)) {
$eacct = $r[0];
require_once('include/email.php');
require_once 'include/email.php';
$mb = construct_mailbox_name($eacct);
if (strlen($eacct['server'])) {
$dcrpass = '';
@ -270,12 +270,14 @@ function settings_post(&$a) {
}
}
}
if(! $failed)
if (!$failed) {
info(t('Email settings updated.').EOL);
}
}
}
call_hooks('connector_settings_post', $_POST);
return;
}
@ -287,11 +289,11 @@ function settings_post(&$a) {
}
}
info(t('Features updated').EOL);
return;
}
if (($a->argc > 1) && ($a->argv[1] === 'display')) {
check_form_security_token_redirectOnErr('/settings/display', 'settings_display');
$theme = ((x($_POST, 'theme')) ? notags(trim($_POST['theme'])) : $a->user['theme']);
@ -302,19 +304,22 @@ function settings_post(&$a) {
$infinite_scroll = ((x($_POST, 'infinite_scroll')) ? intval($_POST['infinite_scroll']) : 0);
$no_auto_update = ((x($_POST, 'no_auto_update')) ? intval($_POST['no_auto_update']) : 0);
$browser_update = ((x($_POST, 'browser_update')) ? intval($_POST['browser_update']) : 0);
$bandwidth_saver = ((x($_POST, 'bandwidth_saver')) ? intval($_POST['bandwidth_saver']) : 0);
if ($browser_update != -1) {
$browser_update = $browser_update * 1000;
if ($browser_update < 10000)
if ($browser_update < 10000) {
$browser_update = 10000;
}
}
$itemspage_network = ((x($_POST, 'itemspage_network')) ? intval($_POST['itemspage_network']) : 40);
if($itemspage_network > 100)
if ($itemspage_network > 100) {
$itemspage_network = 100;
}
$itemspage_mobile_network = ((x($_POST, 'itemspage_mobile_network')) ? intval($_POST['itemspage_mobile_network']) : 20);
if($itemspage_mobile_network > 100)
if ($itemspage_mobile_network > 100) {
$itemspage_mobile_network = 100;
}
if ($mobile_theme !== '') {
set_pconfig(local_user(), 'system', 'mobile_theme', $mobile_theme);
@ -328,17 +333,16 @@ function settings_post(&$a) {
set_pconfig(local_user(), 'system', 'ignore_info', $noinfo);
set_pconfig(local_user(), 'system', 'infinite_scroll', $infinite_scroll);
set_pconfig(local_user(), 'system', 'no_auto_update', $no_auto_update);
set_pconfig(local_user(), 'system', 'bandwidth_saver', $bandwidth_saver);
if ($theme == $a->user['theme']) {
// call theme_post only if theme has not been changed
if (($themeconfigfile = get_theme_config_file($theme)) != null) {
require_once($themeconfigfile);
require_once $themeconfigfile;
theme_post($a);
}
}
$r = q("UPDATE `user` SET `theme` = '%s' WHERE `uid` = %d",
dbesc($theme),
intval(local_user())
@ -346,6 +350,7 @@ function settings_post(&$a) {
call_hooks('display_settings_post', $_POST);
goaway('settings/display');
return; // NOTREACHED
}
@ -353,14 +358,13 @@ function settings_post(&$a) {
if (x($_POST, 'resend_relocate')) {
proc_run(PRIORITY_HIGH, 'include/notifier.php', 'relocate', local_user());
info(t("Relocate message has been send to your contacts"));
info(t('Relocate message has been send to your contacts'));
goaway('settings');
}
call_hooks('settings_post', $_POST);
if ((x($_POST, 'password')) || (x($_POST, 'confirm'))) {
$newpass = $_POST['password'];
$confirm = $_POST['confirm'];
$oldpass = hash('whirlpool', $_POST['opassword']);
@ -378,7 +382,7 @@ function settings_post(&$a) {
// check if the old password was supplied correctly before
// changing it to the new value
$r = q("SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1", intval(local_user()));
$r = q('SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1', intval(local_user()));
if ($oldpass != $r[0]['password']) {
notice(t('Wrong password.').EOL);
$err = true;
@ -390,12 +394,13 @@ function settings_post(&$a) {
dbesc($password),
intval(local_user())
);
if($r)
if ($r) {
info(t('Password changed.').EOL);
else
} else {
notice(t('Password update failed. Please try again.').EOL);
}
}
}
$username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : '');
@ -437,32 +442,41 @@ function settings_post(&$a) {
$notify = 0;
if(x($_POST,'notify1'))
if (x($_POST, 'notify1')) {
$notify += intval($_POST['notify1']);
if(x($_POST,'notify2'))
}
if (x($_POST, 'notify2')) {
$notify += intval($_POST['notify2']);
if(x($_POST,'notify3'))
}
if (x($_POST, 'notify3')) {
$notify += intval($_POST['notify3']);
if(x($_POST,'notify4'))
}
if (x($_POST, 'notify4')) {
$notify += intval($_POST['notify4']);
if(x($_POST,'notify5'))
}
if (x($_POST, 'notify5')) {
$notify += intval($_POST['notify5']);
if(x($_POST,'notify6'))
}
if (x($_POST, 'notify6')) {
$notify += intval($_POST['notify6']);
if(x($_POST,'notify7'))
}
if (x($_POST, 'notify7')) {
$notify += intval($_POST['notify7']);
if(x($_POST,'notify8'))
}
if (x($_POST, 'notify8')) {
$notify += intval($_POST['notify8']);
}
// Adjust the page flag if the account type doesn't fit to the page flag.
if (($account_type == ACCOUNT_TYPE_PERSON) AND !in_array($page_flags, array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE)))
if (($account_type == ACCOUNT_TYPE_PERSON) && !in_array($page_flags, array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE))) {
$page_flags = PAGE_NORMAL;
elseif (($account_type == ACCOUNT_TYPE_ORGANISATION) AND !in_array($page_flags, array(PAGE_SOAPBOX)))
} elseif (($account_type == ACCOUNT_TYPE_ORGANISATION) && !in_array($page_flags, array(PAGE_SOAPBOX))) {
$page_flags = PAGE_SOAPBOX;
elseif (($account_type == ACCOUNT_TYPE_NEWS) AND !in_array($page_flags, array(PAGE_SOAPBOX)))
} elseif (($account_type == ACCOUNT_TYPE_NEWS) && !in_array($page_flags, array(PAGE_SOAPBOX))) {
$page_flags = PAGE_SOAPBOX;
elseif (($account_type == ACCOUNT_TYPE_COMMUNITY) AND !in_array($page_flags, array(PAGE_COMMUNITY, PAGE_PRVGROUP)))
} elseif (($account_type == ACCOUNT_TYPE_COMMUNITY) && !in_array($page_flags, array(PAGE_COMMUNITY, PAGE_PRVGROUP))) {
$page_flags = PAGE_COMMUNITY;
}
$email_changed = false;
@ -472,28 +486,31 @@ function settings_post(&$a) {
if ($username != $a->user['username']) {
$name_change = true;
if(strlen($username) > 40)
if (strlen($username) > 40) {
$err .= t(' Please use a shorter name.');
if(strlen($username) < 3)
}
if (strlen($username) < 3) {
$err .= t(' Name too short.');
}
}
if ($email != $a->user['email']) {
$email_changed = true;
// check for the correct password
$r = q("SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1", intval(local_user()));
$r = q('SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1', intval(local_user()));
$password = hash('whirlpool', $_POST['mpassword']);
if ($password != $r[0]['password']) {
$err .= t('Wrong Password').EOL;
$email = $a->user['email'];
}
// check the email is valid
if(! valid_email($email))
if (!valid_email($email)) {
$err .= t(' Not valid email.');
}
// ensure new email is not the admin mail
//if((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0)) {
if (x($a->config, 'admin_email')) {
$adminlist = explode(",", str_replace(" ", "", strtolower($a->config['admin_email'])));
$adminlist = explode(',', str_replace(' ', '', strtolower($a->config['admin_email'])));
if (in_array(strtolower($email), $adminlist)) {
$err .= t(' Cannot change to that email.');
$email = $a->user['email'];
@ -503,13 +520,15 @@ function settings_post(&$a) {
if (strlen($err)) {
notice($err.EOL);
return;
}
if ($timezone != $a->user['timezone']) {
if(strlen($timezone))
if (strlen($timezone)) {
date_default_timezone_set($timezone);
}
}
$str_group_allow = perms2str($_POST['group_allow']);
$str_contact_allow = perms2str($_POST['contact_allow']);
@ -525,14 +544,14 @@ function settings_post(&$a) {
$tmp_str = $openid;
if (strlen($tmp_str) && validate_url($tmp_str)) {
logger('updating openidserver');
require_once('library/openid.php');
$open_id_obj = new LightOpenID;
require_once 'library/openid.php';
$open_id_obj = new LightOpenID();
$open_id_obj->identity = $openid;
$openidserver = $open_id_obj->discover($open_id_obj->identity);
}
else
} else {
$openidserver = '';
}
}
set_pconfig(local_user(), 'expire', 'items', $expire_items);
set_pconfig(local_user(), 'expire', 'notes', $expire_notes);
@ -553,14 +572,12 @@ function settings_post(&$a) {
if ($def_gid) {
info(t('Private forum has no privacy permissions. Using default privacy group.').EOL);
$str_group_allow = '<'.$def_gid.'>';
}
else {
} else {
notice(t('Private forum has no privacy permissions and no default privacy group.').EOL);
}
}
}
$r = q("UPDATE `user` SET `username` = '%s', `email` = '%s',
`openid` = '%s', `timezone` = '%s',
`allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s',
@ -594,8 +611,9 @@ function settings_post(&$a) {
dbesc($language),
intval(local_user())
);
if($r)
if ($r) {
info(t('Settings updated.').EOL);
}
// clear session language
unset($_SESSION['language']);
@ -613,7 +631,6 @@ function settings_post(&$a) {
intval(local_user())
);
if ($name_change) {
q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `uid` = %d AND `self`",
dbesc($username),
@ -625,11 +642,12 @@ function settings_post(&$a) {
if (($old_visibility != $net_publish) || ($page_flags != $old_page_flags)) {
// Update global directory in background
$url = $_SESSION['my_url'];
if($url && strlen(get_config('system','directory')))
proc_run(PRIORITY_LOW, "include/directory.php", $url);
if ($url && strlen(get_config('system', 'directory'))) {
proc_run(PRIORITY_LOW, 'include/directory.php', $url);
}
}
require_once('include/profile_update.php');
require_once 'include/profile_update.php';
profile_change();
// Update the global contact for the user
@ -640,37 +658,34 @@ function settings_post(&$a) {
// FIXME - set to un-verified, blocked and redirect to logout
// Why? Are we verifying people or email addresses?
}
goaway('settings');
return; // NOTREACHED
}
function settings_content(&$a) {
function settings_content(&$a)
{
$o = '';
nav_set_selected('settings');
if (!local_user()) {
#notice( t('Permission denied.') . EOL );
//notice( t('Permission denied.') . EOL );
return;
}
if (x($_SESSION, 'submanage') && intval($_SESSION['submanage'])) {
notice(t('Permission denied.').EOL);
return;
}
if (($a->argc > 1) && ($a->argv[1] === 'oauth')) {
if (($a->argc > 2) && ($a->argv[2] === 'add')) {
$tpl = get_markup_template("settings_oauth_edit.tpl");
$tpl = get_markup_template('settings_oauth_edit.tpl');
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$form_security_token' => get_form_security_token('settings_oauth'),
'$title' => t('Add application'),
'$submit' => t('Save Settings'),
'$cancel' => t('Cancel'),
@ -680,6 +695,7 @@ function settings_content(&$a) {
'$redirect' => array('redirect', t('Redirect'), '', ''),
'$icon' => array('icon', t('Icon url'), '', ''),
));
return $o;
}
@ -690,13 +706,14 @@ function settings_content(&$a) {
if (!count($r)) {
notice(t("You can't edit this application."));
return;
}
$app = $r[0];
$tpl = get_markup_template("settings_oauth_edit.tpl");
$tpl = get_markup_template('settings_oauth_edit.tpl');
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$form_security_token' => get_form_security_token('settings_oauth'),
'$title' => t('Add application'),
'$submit' => t('Update'),
'$cancel' => t('Cancel'),
@ -706,6 +723,7 @@ function settings_content(&$a) {
'$redirect' => array('redirect', t('Redirect'), $app['redirect_uri'], ''),
'$icon' => array('icon', t('Icon url'), $app['icon'], ''),
));
return $o;
}
@ -715,22 +733,21 @@ function settings_content(&$a) {
$r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
dbesc($a->argv[3]),
local_user());
goaway($a->get_baseurl(true)."/settings/oauth/");
goaway($a->get_baseurl(true).'/settings/oauth/');
return;
}
$r = q("SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my
$r = q('SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my
FROM clients
LEFT JOIN tokens ON clients.client_id=tokens.client_id
WHERE clients.uid IN (%d,0)",
WHERE clients.uid IN (%d,0)',
local_user(),
local_user());
$tpl = get_markup_template("settings_oauth.tpl");
$tpl = get_markup_template('settings_oauth.tpl');
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$form_security_token' => get_form_security_token('settings_oauth'),
'$baseurl' => $a->get_baseurl(true),
'$title' => t('Connected Apps'),
'$add' => t('Add application'),
@ -741,54 +758,53 @@ function settings_content(&$a) {
'$remove' => t('Remove authorization'),
'$apps' => $r,
));
return $o;
return $o;
}
if (($a->argc > 1) && ($a->argv[1] === 'addon')) {
$settings_addons = "";
$settings_addons = '';
$r = q("SELECT * FROM `hook` WHERE `hook` = 'plugin_settings' ");
if(! count($r))
if (!count($r)) {
$settings_addons = t('No Plugin settings configured');
}
call_hooks('plugin_settings', $settings_addons);
$tpl = get_markup_template("settings_addons.tpl");
$tpl = get_markup_template('settings_addons.tpl');
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_addon"),
'$form_security_token' => get_form_security_token('settings_addon'),
'$title' => t('Plugin Settings'),
'$settings_addons' => $settings_addons
'$settings_addons' => $settings_addons,
));
return $o;
}
if (($a->argc > 1) && ($a->argv[1] === 'features')) {
$arr = array();
$features = get_features();
foreach ($features as $fname => $fdata) {
$arr[$fname] = array();
$arr[$fname][0] = $fdata[0];
foreach (array_slice($fdata, 1) as $f) {
$arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(feature_enabled(local_user(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On')));
$arr[$fname][1][] = array('feature_'.$f[0], $f[1], ((intval(feature_enabled(local_user(), $f[0]))) ? '1' : ''), $f[2], array(t('Off'), t('On')));
}
}
$tpl = get_markup_template("settings_features.tpl");
$tpl = get_markup_template('settings_features.tpl');
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_features"),
'$form_security_token' => get_form_security_token('settings_features'),
'$title' => t('Additional Features'),
'$features' => $arr,
'$submit' => t('Save Settings'),
));
return $o;
}
if (($a->argc > 1) && ($a->argv[1] === 'connectors')) {
$settings_connectors = '<span id="settings_general_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose(\'settings_general_expanded\'); openClose(\'settings_general_inflated\');">';
$settings_connectors .= '<h3 class="connector">'.t('General Social Media Settings').'</h3>';
$settings_connectors .= '</span>';
@ -816,10 +832,11 @@ function settings_content(&$a) {
$default_group = get_pconfig(local_user(), 'ostatus', 'default_group');
$legacy_contact = get_pconfig(local_user(), 'ostatus', 'legacy_contact');
$settings_connectors .= mini_group_select(local_user(), $default_group, t("Default group for OStatus contacts"));
$settings_connectors .= mini_group_select(local_user(), $default_group, t('Default group for OStatus contacts'));
if ($legacy_contact != "")
if ($legacy_contact != '') {
$a->page['htmlhead'] = '<meta http-equiv="refresh" content="0; URL='.$a->get_baseurl().'/ostatus_subscribe?url='.urlencode($legacy_contact).'">';
}
$settings_connectors .= '<div id="legacy-contact-wrapper" class="field input">';
$settings_connectors .= '<label id="legacy-contact-label" for="snautofollow-checkbox">'.t('Your legacy GNU Social account').'</label>';
@ -827,7 +844,7 @@ function settings_content(&$a) {
$settings_connectors .= '<span class="field_help">'.t('If you enter your old GNU Social/Statusnet account name here (in the format user@domain.tld), your contacts will be added automatically. The field will be emptied when done.').'</span>';
$settings_connectors .= '</div>';
$settings_connectors .= '<p><a href="'.$a->get_baseurl().'/repair_ostatus">'.t("Repair OStatus subscriptions").'</a></p>';
$settings_connectors .= '<p><a href="'.$a->get_baseurl().'/repair_ostatus">'.t('Repair OStatus subscriptions').'</a></p>';
$settings_connectors .= '<div class="settings-submit-wrapper" ><input type="submit" name="general-submit" class="settings-submit" value="'.t('Save Settings').'" /></div>';
@ -839,20 +856,20 @@ function settings_content(&$a) {
$diasp_enabled = sprintf(t('Built-in support for %s connectivity is %s'), t('Diaspora'), ((get_config('system', 'diaspora_enabled')) ? t('enabled') : t('disabled')));
$ostat_enabled = sprintf(t('Built-in support for %s connectivity is %s'), t('GNU Social (OStatus)'), ((get_config('system', 'ostatus_disabled')) ? t('disabled') : t('enabled')));
} else {
$diasp_enabled = "";
$ostat_enabled = "";
$diasp_enabled = '';
$ostat_enabled = '';
}
$mail_disabled = ((function_exists('imap_open') && (!get_config('system', 'imap_disabled'))) ? 0 : 1);
if(get_config('system','dfrn_only'))
if (get_config('system', 'dfrn_only')) {
$mail_disabled = 1;
}
if (!$mail_disabled) {
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
$r = q('SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1',
local_user()
);
}
else {
} else {
$r = null;
}
@ -866,19 +883,16 @@ function settings_content(&$a) {
$mail_movetofolder = ((count($r)) ? $r[0]['movetofolder'] : '');
$mail_chk = ((count($r)) ? $r[0]['last_check'] : '0000-00-00 00:00:00');
$tpl = get_markup_template("settings_connectors.tpl");
$tpl = get_markup_template('settings_connectors.tpl');
if (!service_class_allows(local_user(), 'email_connect')) {
$mail_disabled_message = upgrade_bool_message();
}
else {
} else {
$mail_disabled_message = (($mail_disabled) ? t('Email access is disabled on this site.') : '');
}
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_connectors"),
'$form_security_token' => get_form_security_token('settings_connectors'),
'$title' => t('Social Networks'),
@ -900,10 +914,11 @@ function settings_content(&$a) {
'$mail_movetofolder' => array('mail_movetofolder', t('Move to folder:'), $mail_movetofolder, ''),
'$submit' => t('Save Settings'),
'$settings_connectors' => $settings_connectors
'$settings_connectors' => $settings_connectors,
));
call_hooks('display_settings', $o);
return $o;
}
@ -912,24 +927,28 @@ function settings_content(&$a) {
*/
if (($a->argc > 1) && ($a->argv[1] === 'display')) {
$default_theme = get_config('system', 'theme');
if(! $default_theme)
if (!$default_theme) {
$default_theme = 'default';
}
$default_mobile_theme = get_config('system', 'mobile-theme');
if(! $mobile_default_theme)
if (!$mobile_default_theme) {
$mobile_default_theme = 'none';
}
$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)) && is_dir("view/theme/$x"))
if (count($allowed_themes_raw)) {
foreach ($allowed_themes_raw as $x) {
if (strlen(trim($x)) && is_dir("view/theme/$x")) {
$allowed_themes[] = trim($x);
}
}
}
$themes = array();
$mobile_themes = array("---" => t('No special theme for mobile devices'));
$files = glob('view/theme/*'); /* */
$mobile_themes = array('---' => t('No special theme for mobile devices'));
$files = glob('view/theme/*');
if ($allowed_themes) {
foreach ($allowed_themes as $th) {
$f = $th;
@ -940,8 +959,7 @@ function settings_content(&$a) {
$theme_name = (($is_experimental) ? sprintf("%s - \x28Experimental\x29", $f) : $f);
if ($is_mobile) {
$mobile_themes[$f] = $theme_name;
}
else {
} else {
$themes[$f] = $theme_name;
}
}
@ -951,8 +969,9 @@ function settings_content(&$a) {
$mobile_theme_selected = (!x($_SESSION, 'mobile-theme') ? $default_mobile_theme : $_SESSION['mobile-theme']);
$browser_update = intval(get_pconfig(local_user(), 'system', 'update_interval'));
if (intval($browser_update) != -1)
$browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds
if (intval($browser_update) != -1) {
$browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000);
} // default if not set: 40 seconds
$itemspage_network = intval(get_pconfig(local_user(), 'system', 'itemspage_network'));
$itemspage_network = (($itemspage_network > 0 && $itemspage_network < 101) ? $itemspage_network : 40); // default if not set: 40 items
@ -964,7 +983,7 @@ function settings_content(&$a) {
$first_day_of_week = get_pconfig(local_user(), 'system', 'first_day_of_week');
$first_day_of_week = (($first_day_of_week === false) ? '0' : $first_day_of_week); // default if not set: 0
$weekdays = array(0 => t("Sunday"), 1 => t("Monday"));
$weekdays = array(0 => t('Sunday'), 1 => t('Monday'));
$noinfo = get_pconfig(local_user(), 'system', 'ignore_info');
$noinfo = (($noinfo === false) ? '0' : $noinfo); // default if not set: 0
@ -975,31 +994,35 @@ function settings_content(&$a) {
$no_auto_update = get_pconfig(local_user(), 'system', 'no_auto_update');
$no_auto_update = (($no_auto_update === false) ? '0' : $no_auto_update); // default if not set: 0
$theme_config = "";
$bandwidth_saver = get_pconfig(local_user(), 'system', 'bandwidth_saver');
$bandwidth_saver = (($bandwidth_saver === false) ? '0' : $bandwidth_saver); // default if not set: 0
$theme_config = '';
if (($themeconfigfile = get_theme_config_file($theme_selected)) != null) {
require_once($themeconfigfile);
require_once $themeconfigfile;
$theme_config = theme_content($a);
}
$tpl = get_markup_template("settings_display.tpl");
$tpl = get_markup_template('settings_display.tpl');
$o = replace_macros($tpl, array(
'$ptitle' => t('Display Settings'),
'$form_security_token' => get_form_security_token("settings_display"),
'$form_security_token' => get_form_security_token('settings_display'),
'$submit' => t('Save Settings'),
'$baseurl' => $a->get_baseurl(true),
'$uid' => local_user(),
'$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes, true),
'$mobile_theme' => array('mobile_theme', t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, false),
'$ajaxint' => array('browser_update', t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds. Enter -1 to disable it.')),
'$itemspage_network' => array('itemspage_network', t("Number of items to display per page:"), $itemspage_network, t('Maximum of 100 items')),
'$itemspage_mobile_network' => array('itemspage_mobile_network', t("Number of items to display per page when viewed from mobile device:"), $itemspage_mobile_network, t('Maximum of 100 items')),
'$ajaxint' => array('browser_update', t('Update browser every xx seconds'), $browser_update, t('Minimum of 10 seconds. Enter -1 to disable it.')),
'$itemspage_network' => array('itemspage_network', t('Number of items to display per page:'), $itemspage_network, t('Maximum of 100 items')),
'$itemspage_mobile_network' => array('itemspage_mobile_network', t('Number of items to display per page when viewed from mobile device:'), $itemspage_mobile_network, t('Maximum of 100 items')),
'$nosmile' => array('nosmile', t("Don't show emoticons"), $nosmile, ''),
'$calendar_title' => t('Calendar'),
'$first_day_of_week' => array('first_day_of_week', t('Beginning of week:'), $first_day_of_week, '', $weekdays, false),
'$noinfo' => array('noinfo', t("Don't show notices"), $noinfo, ''),
'$infinite_scroll' => array('infinite_scroll', t("Infinite scroll"), $infinite_scroll, ''),
'$no_auto_update' => array('no_auto_update', t("Automatic updates only at the top of the network page"), $no_auto_update, 'When disabled, the network page is updated all the time, which could be confusing while reading.'),
'$infinite_scroll' => array('infinite_scroll', t('Infinite scroll'), $infinite_scroll, ''),
'$no_auto_update' => array('no_auto_update', t('Automatic updates only at the top of the network page'), $no_auto_update, 'When disabled, the network page is updated all the time, which could be confusing while reading.'),
'$bandwidth_saver' => array('bandwidth_saver', t('Bandwith Saver Mode'), $bandwidth_saver, 'When enabled, embedded content is not displayed on automatic updates, they only show on page reload.'),
'$d_tset' => t('General Theme Settings'),
'$d_ctset' => t('Custom Theme Settings'),
@ -1008,26 +1031,26 @@ function settings_content(&$a) {
'$theme_config' => $theme_config,
));
$tpl = get_markup_template("settings_display_end.tpl");
$tpl = get_markup_template('settings_display_end.tpl');
$a->page['end'] .= replace_macros($tpl, array(
'$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes)
'$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes),
));
return $o;
}
/*
* ACCOUNT SETTINGS
*/
require_once('include/acl_selectors.php');
require_once 'include/acl_selectors.php';
$p = q("SELECT * FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
$p = q('SELECT * FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1',
intval(local_user())
);
if(count($p))
if (count($p)) {
$profile = $p[0];
}
$username = $a->user['username'];
$email = $a->user['email'];
@ -1059,7 +1082,6 @@ function settings_content(&$a) {
$expire_network_only = get_pconfig(local_user(), 'expire', 'network_only');
$expire_network_only = (($expire_network_only === false) ? '0' : $expire_network_only); // default if not set: 0
$suggestme = get_pconfig(local_user(), 'system', 'suggestme');
$suggestme = (($suggestme === false) ? '0' : $suggestme); // default if not set: 0
@ -1074,21 +1096,23 @@ function settings_content(&$a) {
// nowarn_insecure
if(! strlen($a->user['timezone']))
if (!strlen($a->user['timezone'])) {
$timezone = date_default_timezone_get();
}
// Set the account type to "Community" when the page is a community page but the account type doesn't fit
// This is only happening on the first visit after the update
if (in_array($a->user['page-flags'], array(PAGE_COMMUNITY, PAGE_PRVGROUP)) AND
($a->user['account-type'] != ACCOUNT_TYPE_COMMUNITY))
if (in_array($a->user['page-flags'], array(PAGE_COMMUNITY, PAGE_PRVGROUP)) and
($a->user['account-type'] != ACCOUNT_TYPE_COMMUNITY)) {
$a->user['account-type'] = ACCOUNT_TYPE_COMMUNITY;
}
$pageset_tpl = get_markup_template('pagetypes.tpl');
$pagetype = replace_macros($pageset_tpl, array(
'$account_types' => t("Account Types"),
'$user' => t("Personal Page Subtypes"),
'$community' => t("Community Forum Subtypes"),
'$account_types' => t('Account Types'),
'$user' => t('Personal Page Subtypes'),
'$community' => t('Community Forum Subtypes'),
'$account_type' => $a->user['account-type'],
'$type_person' => ACCOUNT_TYPE_PERSON,
'$type_organisation'=> ACCOUNT_TYPE_ORGANISATION,
@ -1131,24 +1155,20 @@ function settings_content(&$a) {
t('Private forum - approved members only'),
($a->user['page-flags'] == PAGE_PRVGROUP)),
));
$noid = get_config('system', 'no_openid');
if ($noid) {
$openid_field = false;
}
else {
$openid_field = array('openid_url', t('OpenID:'),$openid, t("\x28Optional\x29 Allow this OpenID to login to this account."), "", "", "url");
} else {
$openid_field = array('openid_url', t('OpenID:'), $openid, t("\x28Optional\x29 Allow this OpenID to login to this account."), '', '', 'url');
}
$opt_tpl = get_markup_template("field_yesno.tpl");
$opt_tpl = get_markup_template('field_yesno.tpl');
if (get_config('system', 'publish_all')) {
$profile_in_dir = '<input type="hidden" name="profile_in_directory" value="1" />';
}
else {
} else {
$profile_in_dir = replace_macros($opt_tpl, array(
'$field' => array('profile_in_directory', t('Publish your default profile in your local site directory?'), $profile['publish'], '', array(t('No'), t('Yes'))),
));
@ -1158,10 +1178,9 @@ function settings_content(&$a) {
$profile_in_net_dir = replace_macros($opt_tpl, array(
'$field' => array('profile_in_netdirectory', t('Publish your default profile in the global social directory?'), $profile['net-publish'], '', array(t('No'), t('Yes'))),
));
}
else
} else {
$profile_in_net_dir = '';
}
$hide_friends = replace_macros($opt_tpl, array(
'$field' => array('hide-friends', t('Hide your contact/friend list from viewers of your default profile?'), $profile['hide-friends'], '', array(t('No'), t('Yes'))),
@ -1177,19 +1196,16 @@ function settings_content(&$a) {
));
$blocktags = replace_macros($opt_tpl, array(
'$field' => array('blocktags', t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), '', array(t('No'), t('Yes'))),
));
$suggestme = replace_macros($opt_tpl, array(
'$field' => array('suggestme', t('Allow us to suggest you as a potential friend to new members?'), $suggestme, '', array(t('No'), t('Yes'))),
));
$unkmail = replace_macros($opt_tpl, array(
'$field' => array('unkmail', t('Permit unknown people to send you private mail?'), $unkmail, '', array(t('No'), t('Yes'))),
@ -1198,52 +1214,54 @@ function settings_content(&$a) {
$invisible = (((!$profile['publish']) && (!$profile['net-publish']))
? true : false);
if($invisible)
if ($invisible) {
info(t('Profile is <strong>not published</strong>.').EOL);
}
//$subdir = ((strlen($a->get_path())) ? '<br />' . t('or') . ' ' . 'profile/' . $nickname : '');
$tpl_addr = get_markup_template("settings_nick_set.tpl");
$tpl_addr = get_markup_template('settings_nick_set.tpl');
$prof_addr = replace_macros($tpl_addr, array(
'$desc' => sprintf(t("Your Identity Address is <strong>'%s'</strong> or '%s'."), $nickname.'@'.$a->get_hostname().$a->get_path(), $a->get_baseurl().'/profile/'.$nickname),
'$basepath' => $a->get_hostname()
'$basepath' => $a->get_hostname(),
));
$stpl = get_markup_template('settings.tpl');
$expire_arr = array(
'days' => array('expire', t("Automatically expire posts after this many days:"), $expire, t('If empty, posts will not expire. Expired posts will be deleted')),
'days' => array('expire', t('Automatically expire posts after this many days:'), $expire, t('If empty, posts will not expire. Expired posts will be deleted')),
'advanced' => t('Advanced expiration settings'),
'label' => t('Advanced Expiration'),
'items' => array('expire_items', t("Expire posts:"), $expire_items, '', array(t('No'),t('Yes'))),
'notes' => array('expire_notes', t("Expire personal notes:"), $expire_notes, '', array(t('No'),t('Yes'))),
'starred' => array('expire_starred', t("Expire starred posts:"), $expire_starred, '', array(t('No'),t('Yes'))),
'photos' => array('expire_photos', t("Expire photos:"), $expire_photos, '', array(t('No'),t('Yes'))),
'network_only' => array('expire_network_only', t("Only expire posts by others:"), $expire_network_only, '', array(t('No'),t('Yes'))),
'items' => array('expire_items', t('Expire posts:'), $expire_items, '', array(t('No'), t('Yes'))),
'notes' => array('expire_notes', t('Expire personal notes:'), $expire_notes, '', array(t('No'), t('Yes'))),
'starred' => array('expire_starred', t('Expire starred posts:'), $expire_starred, '', array(t('No'), t('Yes'))),
'photos' => array('expire_photos', t('Expire photos:'), $expire_photos, '', array(t('No'), t('Yes'))),
'network_only' => array('expire_network_only', t('Only expire posts by others:'), $expire_network_only, '', array(t('No'), t('Yes'))),
);
require_once('include/group.php');
require_once 'include/group.php';
$group_select = mini_group_select(local_user(), $a->user['def_gid']);
// Private/public post links for the non-JS ACL form
$private_post = 1;
if($_REQUEST['public'])
if ($_REQUEST['public']) {
$private_post = 0;
}
$query_str = $a->query_string;
if(strpos($query_str, 'public=1') !== false)
if (strpos($query_str, 'public=1') !== false) {
$query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str);
}
// I think $a->query_string may never have ? in it, but I could be wrong
// It looks like it's from the index.php?q=[etc] rewrite that the web
// server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61
if(strpos($query_str, '?') === false)
if (strpos($query_str, '?') === false) {
$public_post_link = '?public=1';
else
} else {
$public_post_link = '&public=1';
}
/* Installed langs */
$lang_choices = get_avaiable_languages();
@ -1254,7 +1272,7 @@ function settings_content(&$a) {
'$submit' => t('Save Settings'),
'$baseurl' => $a->get_baseurl(true),
'$uid' => local_user(),
'$form_security_token' => get_form_security_token("settings"),
'$form_security_token' => get_form_security_token('settings'),
'$nickname_block' => $prof_addr,
'$h_pass' => t('Password Settings'),
@ -1273,7 +1291,6 @@ function settings_content(&$a) {
'$defloc' => array('defloc', t('Default Post Location:'), $defloc, ''),
'$allowloc' => array('allow_location', t('Use Browser Location:'), ($a->user['allow_location'] == 1), ''),
'$h_prv' => t('Security and Privacy Settings'),
'$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), $maxreq, t("\x28to prevent spam abuse\x29")),
@ -1298,7 +1315,6 @@ function settings_content(&$a) {
'$group_select' => $group_select,
'$expire' => $expire_arr,
'$profile_in_dir' => $profile_in_dir,
@ -1308,7 +1324,6 @@ function settings_content(&$a) {
'$unkmail' => $unkmail,
'$cntunkmail' => array('cntunkmail', t('Maximum private messages per day from unknown people:'), $cntunkmail, t("\x28to prevent spam abuse\x29")),
'$h_not' => t('Notification Settings'),
'$activity_options' => t('By default post a status message when:'),
'$post_newfriend' => array('post_newfriend', t('accepting a friend request'), $post_newfriend, ''),
@ -1328,7 +1343,7 @@ function settings_content(&$a) {
'$email_textonly' => array('email_textonly', t('Text-only notification emails'),
get_pconfig(local_user(), 'system', 'email_textonly'),
t('Send text only notification emails, without the html part')),
t('Send text only notification emails, without the html part'), ),
'$h_advn' => t('Advanced Account/Page Type Settings'),
'$h_descadvn' => t('Change the behaviour of this account for special situations'),
@ -1336,7 +1351,7 @@ function settings_content(&$a) {
'$relocate' => t('Relocate'),
'$relocate_text' => t("If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."),
'$relocate_button' => t("Resend relocate message to contacts"),
'$relocate_button' => t('Resend relocate message to contacts'),
));
@ -1345,6 +1360,4 @@ function settings_content(&$a) {
$o .= '</form>'."\r\n";
return $o;
}

View file

@ -13,6 +13,7 @@
{{include file="field_checkbox.tpl" field=$nosmile}}
{{include file="field_checkbox.tpl" field=$noinfo}}
{{include file="field_checkbox.tpl" field=$infinite_scroll}}
{{include file="field_checkbox.tpl" field=$bandwidth_saver}}
<h2>{{$calendar_title}}</h2>
{{include file="field_select.tpl" field=$first_day_of_week}}

View file

@ -70,6 +70,7 @@
{{include file="field_checkbox.tpl" field=$nosmile}}
{{include file="field_checkbox.tpl" field=$noinfo}}
{{include file="field_checkbox.tpl" field=$infinite_scroll}}
{{include file="field_checkbox.tpl" field=$bandwidth_saver}}
<div class="form-group pull-right settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit|escape:'html'}}">{{$submit}}</button>