]> git.mxchange.org Git - friendica.git/blobdiff - mod/settings.php
Diaspora: Fix class name case + add self
[friendica.git] / mod / settings.php
index 0c3b23a44b7801729411f0470ec17976a8e2507b..663acd69f0267c974e5bb26776ea65a66261ca1e 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+require_once('include/group.php');
+require_once('include/socgraph.php');
 
 function get_theme_config_file($theme){
        $a = get_app();
@@ -277,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) {
@@ -288,49 +290,52 @@ 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);
+               $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;
+               $nowarn_insecure   = x($_POST, 'nowarn_insecure')   ? intval($_POST['nowarn_insecure'])    : 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', 'nowarn_insecure'         , $nowarn_insecure);
+               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);
                        }
@@ -350,7 +355,7 @@ function settings_post(&$a) {
        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('settings');
        }
@@ -418,6 +423,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!
@@ -451,6 +457,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 = '';
@@ -551,7 +567,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'
@@ -566,6 +582,7 @@ function settings_post(&$a) {
                        dbesc($str_group_deny),
                        intval($notify),
                        intval($page_flags),
+                       intval($account_type),
                        dbesc($defloc),
                        intval($allow_location),
                        intval($maxreq),
@@ -601,7 +618,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())
@@ -612,14 +629,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) {
 
@@ -628,7 +646,7 @@ function settings_post(&$a) {
 
        }
 
-       goaway('settings' );
+       goaway('settings');
        return; // NOTREACHED
 }
 
@@ -935,6 +953,8 @@ function settings_content(&$a) {
                $theme_selected = (!x($_SESSION,'theme')? $default_theme : $_SESSION['theme']);
                $mobile_theme_selected = (!x($_SESSION,'mobile-theme')? $default_mobile_theme : $_SESSION['mobile-theme']);
 
+               $nowarn_insecure = intval(get_pconfig(local_user(), 'system', 'nowarn_insecure'));
+
                $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
@@ -960,8 +980,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);
                }
@@ -976,6 +999,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),
+                       '$nowarn_insecure' => array('nowarn_insecure',  t('Suppress warning of insecure networks'), $nowarn_insecure, t("Should the system suppress the warning that the current group contains members of networks that can't receive non public postings.")),
                        '$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')),
@@ -985,7 +1009,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, t('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,
                ));
@@ -1059,13 +1087,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)),
 
@@ -1073,8 +1129,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,
@@ -1200,7 +1256,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'),
@@ -1278,7 +1334,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'),
@@ -1301,4 +1357,3 @@ function settings_content(&$a) {
        return $o;
 
 }
-