<?php
-if(! function_exists('get_theme_config_file')) {
-function get_theme_config_file($theme) {
+require_once('include/group.php');
+require_once('include/socgraph.php');
+
+function get_theme_config_file($theme){
$a = get_app();
$base_theme = $a->theme_info['extends'];
}
return null;
}
-}
-if(! function_exists('settings_init')) {
function settings_init(&$a) {
if(! local_user()) {
$tabs = array(
array(
'label' => t('Account'),
- 'url' => $a->get_baseurl(true).'/settings',
+ 'url' => 'settings',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'settings')?'active':''),
'accesskey' => 'o',
),
if(get_features()) {
$tabs[] = array(
'label' => t('Additional features'),
- 'url' => $a->get_baseurl(true).'/settings/features',
+ 'url' => 'settings/features',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'features') ? 'active' : ''),
'accesskey' => 't',
);
$tabs[] = array(
'label' => t('Display'),
- 'url' => $a->get_baseurl(true).'/settings/display',
+ 'url' => 'settings/display',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
'accesskey' => 'i',
);
$tabs[] = array(
'label' => t('Social Networks'),
- 'url' => $a->get_baseurl(true).'/settings/connectors',
+ 'url' => 'settings/connectors',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
'accesskey' => 'w',
);
$tabs[] = array(
'label' => t('Plugins'),
- 'url' => $a->get_baseurl(true).'/settings/addon',
+ 'url' => 'settings/addon',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
'accesskey' => 'l',
);
$tabs[] = array(
'label' => t('Delegations'),
- 'url' => $a->get_baseurl(true).'/delegate',
+ 'url' => 'delegate',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'delegate')?'active':''),
'accesskey' => 'd',
);
$tabs[] = array(
'label' => t('Connected apps'),
- 'url' => $a->get_baseurl(true) . '/settings/oauth',
+ 'url' => 'settings/oauth',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
'accesskey' => 'b',
);
$tabs[] = array(
'label' => t('Export personal data'),
- 'url' => $a->get_baseurl(true) . '/uexport',
+ 'url' => 'uexport',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'uexport')?'active':''),
'accesskey' => 'e',
);
$tabs[] = array(
'label' => t('Remove account'),
- 'url' => $a->get_baseurl(true) . '/removeme',
+ 'url' => 'removeme',
'selected' => (($a->argc == 1) && ($a->argv[0] === 'removeme')?'active':''),
'accesskey' => 'r',
);
'$class' => 'settings-widget',
'$items' => $tabs,
));
+
}
-}
-if(! function_exists('settings_post')) {
+
function settings_post(&$a) {
if(! local_user())
if(x($_POST, 'general-submit')) {
set_pconfig(local_user(), 'system', 'no_intelligent_shortening', intval($_POST['no_intelligent_shortening']));
set_pconfig(local_user(), 'system', 'ostatus_autofriend', intval($_POST['snautofollow']));
+ 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')) {
return;
}
- if(($a->argc > 1) && ($a->argv[1] === 'features')) {
+ if (($a->argc > 1) && ($a->argv[1] === 'features')) {
check_form_security_token_redirectOnErr('/settings/features', 'settings_features');
foreach($_POST as $k => $v) {
if(strpos($k,'feature_') === 0) {
return;
}
- if(($a->argc > 1) && ($a->argv[1] === 'display')) {
-
+ 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']);
- $mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : '');
- $nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0);
- $first_day_of_week = ((x($_POST,'first_day_of_week')) ? intval($_POST['first_day_of_week']) : 0);
- $noinfo = ((x($_POST,'noinfo')) ? intval($_POST['noinfo']) : 0);
- $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);
+ $theme = x($_POST, 'theme') ? notags(trim($_POST['theme'])) : $a->user['theme'];
+ $mobile_theme = x($_POST, 'mobile_theme') ? notags(trim($_POST['mobile_theme'])) : '';
+ $nosmile = x($_POST, 'nosmile') ? intval($_POST['nosmile']) : 0;
+ $first_day_of_week = x($_POST, 'first_day_of_week') ? intval($_POST['first_day_of_week']) : 0;
+ $noinfo = x($_POST, 'noinfo') ? intval($_POST['noinfo']) : 0;
+ $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;
+ $bandwidth_saver = x($_POST, 'bandwidth_saver') ? intval($_POST['bandwidth_saver']) : 0;
+ $browser_update = x($_POST, 'browser_update') ? intval($_POST['browser_update']) : 0;
if ($browser_update != -1) {
- $browser_update = $browser_update * 1000;
+ $browser_update = $browser_update * 1000;
if ($browser_update < 10000)
$browser_update = 10000;
}
- $itemspage_network = ((x($_POST,'itemspage_network')) ? intval($_POST['itemspage_network']) : 40);
- if($itemspage_network > 100)
+ $itemspage_network = x($_POST,'itemspage_network') ? intval($_POST['itemspage_network']) : 40;
+ 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)
+ }
+ $itemspage_mobile_network = x($_POST,'itemspage_mobile_network') ? intval($_POST['itemspage_mobile_network']) : 20;
+ if ($itemspage_mobile_network > 100) {
$itemspage_mobile_network = 100;
-
+ }
if($mobile_theme !== '') {
set_pconfig(local_user(),'system','mobile_theme',$mobile_theme);
}
- set_pconfig(local_user(),'system','update_interval', $browser_update);
- set_pconfig(local_user(),'system','itemspage_network', $itemspage_network);
- set_pconfig(local_user(),'system','itemspage_mobile_network', $itemspage_mobile_network);
- set_pconfig(local_user(),'system','no_smilies',$nosmile);
- set_pconfig(local_user(),'system','first_day_of_week',$first_day_of_week);
- 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);
-
-
- if ($theme == $a->user['theme']){
+ set_pconfig(local_user(), 'system', 'update_interval' , $browser_update);
+ set_pconfig(local_user(), 'system', 'itemspage_network' , $itemspage_network);
+ set_pconfig(local_user(), 'system', 'itemspage_mobile_network', $itemspage_mobile_network);
+ set_pconfig(local_user(), 'system', 'no_smilies' , $nosmile);
+ set_pconfig(local_user(), 'system', 'first_day_of_week' , $first_day_of_week);
+ 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){
+ if (($themeconfigfile = get_theme_config_file($theme)) != null) {
require_once($themeconfigfile);
theme_post($a);
}
);
call_hooks('display_settings_post', $_POST);
- goaway($a->get_baseurl(true) . '/settings/display' );
+ goaway('settings/display' );
return; // NOTREACHED
}
check_form_security_token_redirectOnErr('/settings', 'settings');
if (x($_POST,'resend_relocate')) {
- proc_run('php', 'include/notifier.php', 'relocate', local_user());
+ proc_run(PRIORITY_HIGH, 'include/notifier.php', 'relocate', local_user());
info(t("Relocate message has been send to your contacts"));
- goaway($a->get_baseurl(true) . '/settings');
+ goaway('settings');
}
call_hooks('settings_post', $_POST);
$publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
$net_publish = (((x($_POST,'profile_in_netdirectory')) && (intval($_POST['profile_in_netdirectory']) == 1)) ? 1: 0);
$old_visibility = (((x($_POST,'visibility')) && (intval($_POST['visibility']) == 1)) ? 1 : 0);
+ $account_type = (((x($_POST,'account-type')) && (intval($_POST['account-type']))) ? intval($_POST['account-type']) : 0);
$page_flags = (((x($_POST,'page-flags')) && (intval($_POST['page-flags']))) ? intval($_POST['page-flags']) : 0);
$blockwall = (((x($_POST,'blockwall')) && (intval($_POST['blockwall']) == 1)) ? 0: 1); // this setting is inverted!
$blocktags = (((x($_POST,'blocktags')) && (intval($_POST['blocktags']) == 1)) ? 0: 1); // this setting is inverted!
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)))
+ $page_flags = PAGE_NORMAL;
+ elseif (($account_type == ACCOUNT_TYPE_ORGANISATION) AND !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)))
+ $page_flags = PAGE_SOAPBOX;
+ elseif (($account_type == ACCOUNT_TYPE_COMMUNITY) AND !in_array($page_flags, array(PAGE_COMMUNITY, PAGE_PRVGROUP)))
+ $page_flags = PAGE_COMMUNITY;
+
$email_changed = false;
$err = '';
$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',
- `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s',
+ `notify-flags` = %d, `page-flags` = %d, `account-type` = %d, `default-location` = '%s',
`allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s',
`def_gid` = %d, `blockwall` = %d, `hidewall` = %d, `blocktags` = %d,
`unkmail` = %d, `cntunkmail` = %d, `language` = '%s'
dbesc($str_group_deny),
intval($notify),
intval($page_flags),
+ intval($account_type),
dbesc($defloc),
intval($allow_location),
intval($maxreq),
if($name_change) {
- q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `uid` = %d AND `self` = 1",
+ q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `uid` = %d AND `self`",
dbesc($username),
dbesc(datetime_convert()),
intval(local_user())
// Update global directory in background
$url = $_SESSION['my_url'];
if($url && strlen(get_config('system','directory')))
- proc_run('php',"include/directory.php","$url");
-
+ proc_run(PRIORITY_LOW, "include/directory.php", $url);
}
-
require_once('include/profile_update.php');
profile_change();
+ // Update the global contact for the user
+ update_gcontact_for_user(local_user());
+
//$_SESSION['theme'] = $theme;
if($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) {
}
- goaway($a->get_baseurl(true) . '/settings' );
+ goaway('settings');
return; // NOTREACHED
}
-}
-if(! function_exists('settings_content')) {
+
function settings_content(&$a) {
$o = '';
$settings_connectors .= '<span class="field_help">'.t('If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user.').'</span>';
$settings_connectors .= '</div>';
+ $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"));
+
if ($legacy_contact != "")
$a->page['htmlhead'] = '<meta http-equiv="refresh" content="0; URL='.$a->get_baseurl().'/ostatus_subscribe?url='.urlencode($legacy_contact).'">';
$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
+ $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){
+ if (($themeconfigfile = get_theme_config_file($theme_selected)) != null) {
require_once($themeconfigfile);
$theme_config = theme_content($a);
}
'$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.'),
+ '$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'),
+ '$d_cset' => t('Content Settings'),
'stitle' => t('Theme settings'),
'$theme_config' => $theme_config,
));
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))
+ $a->user['account-type'] = ACCOUNT_TYPE_COMMUNITY;
+ $pageset_tpl = get_markup_template('settings_pagetypes.tpl');
- $pageset_tpl = get_markup_template('pagetypes.tpl');
$pagetype = replace_macros($pageset_tpl, array(
- '$user' => t("User Types"),
- '$community' => t("Community Types"),
- '$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL,
+ '$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,
+ '$type_news' => ACCOUNT_TYPE_NEWS,
+ '$type_community' => ACCOUNT_TYPE_COMMUNITY,
+
+ '$account_person' => array('account-type', t('Personal Page'), ACCOUNT_TYPE_PERSON,
+ t('This account is a regular personal profile'),
+ ($a->user['account-type'] == ACCOUNT_TYPE_PERSON)),
+
+ '$account_organisation' => array('account-type', t('Organisation Page'), ACCOUNT_TYPE_ORGANISATION,
+ t('This account is a profile for an organisation'),
+ ($a->user['account-type'] == ACCOUNT_TYPE_ORGANISATION)),
+
+ '$account_news' => array('account-type', t('News Page'), ACCOUNT_TYPE_NEWS,
+ t('This account is a news account/reflector'),
+ ($a->user['account-type'] == ACCOUNT_TYPE_NEWS)),
+
+ '$account_community' => array('account-type', t('Community Forum'), ACCOUNT_TYPE_COMMUNITY,
+ t('This account is a community forum where people can discuss with each other'),
+ ($a->user['account-type'] == ACCOUNT_TYPE_COMMUNITY)),
+
+ '$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL,
t('This account is a normal personal profile'),
($a->user['page-flags'] == PAGE_NORMAL)),
t('Automatically approve all connection/friend requests as read-only fans'),
($a->user['page-flags'] == PAGE_SOAPBOX)),
- '$page_community' => array('page-flags', t('Community Forum/Celebrity Account'), PAGE_COMMUNITY,
- t('Automatically approve all connection/friend requests as read-write fans'),
+ '$page_community' => array('page-flags', t('Public Forum'), PAGE_COMMUNITY,
+ t('Automatically approve all contact requests'),
($a->user['page-flags'] == PAGE_COMMUNITY)),
'$page_freelove' => array('page-flags', t('Automatic Friend Page'), PAGE_FREELOVE,
info( t('Profile is <strong>not published</strong>.') . EOL );
- //$subdir = ((strlen($a->get_path())) ? '<br />' . t('or') . ' ' . $a->get_baseurl(true) . '/profile/' . $nickname : '');
+ //$subdir = ((strlen($a->get_path())) ? '<br />' . t('or') . ' ' . 'profile/' . $nickname : '');
$tpl_addr = get_markup_template("settings_nick_set.tpl");
$public_post_link = '&public=1';
/* Installed langs */
- $lang_choices = get_avaiable_languages();
+ $lang_choices = get_available_languages();
$o .= replace_macros($stpl, array(
'$ptitle' => t('Account Settings'),
'$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''),
'$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''),
- '$desktop_notifications' => array('desktop_notifications', t('Activate desktop notifications') , false, t('Show desktop popup on new notifications')),
+ '$desktop_notifications' => array('desktop_notifications', t('Activate desktop notifications') , false, t('Show desktop popup on new notifications')),
'$email_textonly' => array('email_textonly', t('Text-only notification emails'),
get_pconfig(local_user(),'system','email_textonly'),
$o .= '</form>' . "\r\n";
return $o;
-}
+
}