X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fsettings.php;h=3e851c9be8fa7e4d8199cf6a36ab038be3237e0a;hb=fca72c49960fd4c5cc22c426053822d9ee9350e5;hp=77a5755855bc3e2e6b24b33dc7a1f3c76f0021f4;hpb=d9e56e04506cdfc9abd87d84cff4f730708db51d;p=friendica.git diff --git a/mod/settings.php b/mod/settings.php index 77a5755855..3e851c9be8 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -1,5 +1,7 @@ t('Account'), - 'url' => $a->get_baseurl(true).'/settings', + 'url' => 'settings', 'selected' => (($a->argc == 1) && ($a->argv[0] === 'settings')?'active':''), 'accesskey' => 'o', ), - array( - 'label' => t('Additional features'), - 'url' => $a->get_baseurl(true).'/settings/features', - 'selected' => (($a->argc > 1) && ($a->argv[1] === 'features') ? 'active' : ''), - 'accesskey' => 't', - ), - array( - 'label' => t('Display'), - 'url' => $a->get_baseurl(true).'/settings/display', - 'selected' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''), - 'accesskey' => 'i', - ), + ); - array( - 'label' => t('Social Networks'), - 'url' => $a->get_baseurl(true).'/settings/connectors', - 'selected' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''), - 'accesskey' => 'w', - ), - array( - 'label' => t('Plugins'), - 'url' => $a->get_baseurl(true).'/settings/addon', - 'selected' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''), - 'accesskey' => 'l', - ), - array( - 'label' => t('Delegations'), - 'url' => $a->get_baseurl(true).'/delegate', - 'selected' => (($a->argc == 1) && ($a->argv[0] === 'delegate')?'active':''), - 'accesskey' => 'd', - ), - array( - 'label' => t('Connected apps'), - 'url' => $a->get_baseurl(true) . '/settings/oauth', - 'selected' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''), - 'accesskey' => 'b', - ), - array( - 'label' => t('Export personal data'), - 'url' => $a->get_baseurl(true) . '/uexport', - 'selected' => (($a->argc == 1) && ($a->argv[0] === 'uexport')?'active':''), - 'accesskey' => 'e', - ), - array( - 'label' => t('Remove account'), - 'url' => $a->get_baseurl(true) . '/removeme', - 'selected' => (($a->argc == 1) && ($a->argv[0] === 'removeme')?'active':''), - 'accesskey' => 'r', - ) + if(get_features()) { + $tabs[] = array( + 'label' => t('Additional features'), + 'url' => 'settings/features', + 'selected' => (($a->argc > 1) && ($a->argv[1] === 'features') ? 'active' : ''), + 'accesskey' => 't', + ); + } + + $tabs[] = array( + 'label' => t('Display'), + 'url' => 'settings/display', + 'selected' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''), + 'accesskey' => 'i', + ); + + $tabs[] = array( + 'label' => t('Social Networks'), + 'url' => 'settings/connectors', + 'selected' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''), + 'accesskey' => 'w', + ); + + $tabs[] = array( + 'label' => t('Plugins'), + 'url' => 'settings/addon', + 'selected' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''), + 'accesskey' => 'l', + ); + + $tabs[] = array( + 'label' => t('Delegations'), + 'url' => 'delegate', + 'selected' => (($a->argc == 1) && ($a->argv[0] === 'delegate')?'active':''), + 'accesskey' => 'd', ); + $tabs[] = array( + 'label' => t('Connected apps'), + 'url' => 'settings/oauth', + 'selected' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''), + 'accesskey' => 'b', + ); + + $tabs[] = array( + 'label' => t('Export personal data'), + 'url' => 'uexport', + 'selected' => (($a->argc == 1) && ($a->argv[0] === 'uexport')?'active':''), + 'accesskey' => 'e', + ); + + $tabs[] = array( + 'label' => t('Remove account'), + 'url' => 'removeme', + 'selected' => (($a->argc == 1) && ($a->argv[0] === 'removeme')?'active':''), + 'accesskey' => 'r', + ); + + $tabtpl = get_markup_template("generic_links_widget.tpl"); $a->page['aside'] = replace_macros($tabtpl, array( '$title' => t('Settings'), @@ -189,6 +201,7 @@ function settings_post(&$a) { 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')) { @@ -266,7 +279,7 @@ function settings_post(&$a) { 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) { @@ -277,47 +290,50 @@ function settings_post(&$a) { 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); - $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) + $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; + if ($browser_update < 10000) + $browser_update = 10000; + } + + $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); } @@ -330,16 +346,16 @@ function settings_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); @@ -405,6 +421,7 @@ function settings_post(&$a) { $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! @@ -438,6 +455,16 @@ function settings_post(&$a) { 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 = ''; @@ -538,7 +565,7 @@ function settings_post(&$a) { $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' @@ -553,6 +580,7 @@ function settings_post(&$a) { dbesc($str_group_deny), intval($notify), intval($page_flags), + intval($account_type), dbesc($defloc), intval($allow_location), intval($maxreq), @@ -588,7 +616,7 @@ function settings_post(&$a) { 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()) @@ -599,14 +627,15 @@ function settings_post(&$a) { // 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) { @@ -615,12 +644,11 @@ function settings_post(&$a) { } - goaway($a->get_baseurl(true) . '/settings' ); + goaway('settings'); return; // NOTREACHED } -if(! function_exists('settings_content')) { function settings_content(&$a) { $o = ''; @@ -745,7 +773,7 @@ function settings_content(&$a) { $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(get_pconfig(local_user(),'feature',$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'))); } } @@ -786,8 +814,11 @@ function settings_content(&$a) { $settings_connectors .= ''.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.').''; $settings_connectors .= ''; + $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'] = ''; @@ -921,7 +952,8 @@ 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')); - $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 @@ -944,8 +976,11 @@ 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 + $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); } @@ -960,7 +995,7 @@ function settings_content(&$a) { '$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, no maximum')), + '$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, ''), @@ -969,7 +1004,11 @@ function settings_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, )); @@ -1043,13 +1082,41 @@ function settings_content(&$a) { 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)), @@ -1057,8 +1124,8 @@ function settings_content(&$a) { 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, @@ -1140,7 +1207,7 @@ function settings_content(&$a) { info( t('Profile is not published.') . EOL ); - //$subdir = ((strlen($a->get_path())) ? '
' . t('or') . ' ' . $a->get_baseurl(true) . '/profile/' . $nickname : ''); + //$subdir = ((strlen($a->get_path())) ? '
' . t('or') . ' ' . 'profile/' . $nickname : ''); $tpl_addr = get_markup_template("settings_nick_set.tpl"); @@ -1184,7 +1251,7 @@ function settings_content(&$a) { $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'), @@ -1262,7 +1329,7 @@ function settings_content(&$a) { '$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'), @@ -1284,5 +1351,4 @@ function settings_content(&$a) { return $o; -}} - +}