]> git.mxchange.org Git - friendica.git/blobdiff - mod/settings.php
Merge branch 'master' into develop
[friendica.git] / mod / settings.php
index 77a5755855bc3e2e6b24b33dc7a1f3c76f0021f4..e2d3f4d367bf94ebdea47c62c85d3df3fb5d8f22 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();
@@ -39,61 +41,71 @@ function settings_init(&$a) {
        $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',
                ),
-               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')) {
 
@@ -289,9 +302,11 @@ 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);
-               $browser_update   = $browser_update * 1000;
-               if($browser_update < 10000)
-                       $browser_update = 10000;
+               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)
@@ -330,16 +345,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);
@@ -588,7 +603,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 +614,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 +631,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 +760,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 +801,11 @@ function settings_content(&$a) {
                $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).'">';
 
@@ -921,7 +939,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
@@ -960,7 +979,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, ''),
@@ -970,6 +989,9 @@ function settings_content(&$a) {
                        '$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.'),
 
+                       '$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,
                ));
@@ -1140,7 +1162,7 @@ function settings_content(&$a) {
                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");
 
@@ -1262,7 +1284,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 +1306,5 @@ function settings_content(&$a) {
 
        return $o;
 
-}}
+}