]> git.mxchange.org Git - friendica.git/blobdiff - mod/settings.php
better intro text
[friendica.git] / mod / settings.php
index 10336e7716e5781c911c5fda404d4ef66b6bfe40..f9cc429df21b3600583cf73ec61853ad15ac7e07 100644 (file)
@@ -24,9 +24,9 @@ function settings_post(&$a) {
                notice( t('Permission denied.') . EOL);
                return;
        }
-       if((x($_POST,'password')) || (x($_POST,'confirm'))) {
+       if((x($_POST,'npassword')) || (x($_POST,'confirm'))) {
 
-               $newpass = trim($_POST['password']);
+               $newpass = trim($_POST['npassword']);
                $confirm = trim($_POST['confirm']);
 
                $err = false;
@@ -52,9 +52,15 @@ function settings_post(&$a) {
                }
        }
 
+       $theme = notags(trim($_POST['theme']));
        $username = notags(trim($_POST['username']));
        $email = notags(trim($_POST['email']));
        $timezone = notags(trim($_POST['timezone']));
+       $defloc = notags(trim($_POST['defloc']));
+
+       $publish = (($_POST['profile_in_directory'] == 1) ? 1: 0);
+       $net_publish = (($_POST['profile_in_netdirectory'] == 1) ? 1: 0);
+       $old_visibility = ((intval($_POST['visibility']) == 1) ? 1 : 0);
 
        $notify = 0;
 
@@ -131,9 +137,7 @@ function settings_post(&$a) {
                $str_contact_deny = implode('',$contact_deny);
        }
 
-
-
-       $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `timezone` = '%s',  `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d  WHERE `uid` = %d LIMIT 1",
+       $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `timezone` = '%s',  `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `default-location` = '%s', `theme` = '%s'  WHERE `uid` = %d LIMIT 1",
                        dbesc($username),
                        dbesc($email),
                        dbesc($timezone),
@@ -142,24 +146,38 @@ function settings_post(&$a) {
                        dbesc($str_contact_deny),
                        dbesc($str_group_deny),
                        intval($notify),
+                       dbesc($defloc),
+                       dbesc($theme),
                        intval($_SESSION['uid'])
        );
        if($r)
                notice( t('Settings updated.') . EOL);
 
+       $r = q("UPDATE `profile` 
+               SET `publish` = %d, `net-publish` = %d
+               WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
+               intval($publish),
+               intval($net_publish),
+               intval($_SESSION['uid'])
+       );
+
+       if($old_visibility != $net_publish) {
+               // Update global directory in background
+               $php_path = ((strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
+               $url = $_SESSION['my_url'];
+               if($url && strlen(get_config('system','directory_submit_url')))
+                       proc_close(proc_open("\"$php_path\" \"include/directory.php\" \"$url\" &",
+                               array(),$foo));
+       }
+
+       $_SESSION['theme'] = $theme;
        if($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) {
 
                // FIXME - set to un-verified, blocked and redirect to logout
 
        }
 
-
-       // Refresh the content display with new data
-
-       $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
-               intval($_SESSION['uid']));
-       if(count($r))
-               $a->user = $r[0];
+       goaway($a->get_baseurl() . '/settings' );
 }
                
 
@@ -173,11 +191,42 @@ function settings_content(&$a) {
 
        require_once('view/acl_selectors.php');
 
+       $p = q("SELECT * FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
+               intval($_SESSION['uid'])
+       );
+       if(count($p))
+               $profile = $p[0];
+
        $username = $a->user['username'];
        $email    = $a->user['email'];
        $nickname = $a->user['nickname'];
        $timezone = $a->user['timezone'];
        $notify   = $a->user['notify-flags'];
+       $defloc   = $a->user['default-location'];
+
+       if(! strlen($a->user['timezone']))
+               $timezone = date_default_timezone_get();
+
+
+       $opt_tpl = file_get_contents("view/profile-in-directory.tpl");
+       $profile_in_dir = replace_macros($opt_tpl,array(
+               '$yes_selected' => (($profile['publish']) ? " checked=\"checked\" " : ""),
+               '$no_selected' => (($profile['publish'] == 0) ? " checked=\"checked\" " : "")
+       ));
+
+       if(strlen(get_config('system','directory_submit_url'))) {
+               $opt_tpl = file_get_contents("view/profile-in-netdir.tpl");
+
+               $profile_in_net_dir = replace_macros($opt_tpl,array(
+                       '$yes_selected' => (($profile['net-publish']) ? " checked=\"checked\" " : ""),
+                       '$no_selected' => (($profile['net-publish'] == 0) ? " checked=\"checked\" " : "")
+               ));
+       }
+       else
+               $profile_in_net_dir = '';
+
+
+
 
 
        $nickname_block = file_get_contents("view/settings_nick_set.tpl");
@@ -193,6 +242,18 @@ function settings_content(&$a) {
                ));
        }
 
+       $theme_selector = '<select name="theme" id="theme-select" >';
+       $files = glob('view/theme/*');
+       if($files) {
+               foreach($files as $file) {
+                       $f = basename($file);
+                       $selected = (($f == $_SESSION['theme']) || ($f == 'default' && (! x($_SESSION,'theme')))
+                               ? ' selected="selected" ' : '' );
+                       $theme_selector .= '<option val="' . basename($file) . '"' . $selected . '>' . basename($file) . '</option>';
+               }
+       }
+       $theme_selector .= '</select>';
+
 
        $nickname_block = replace_macros($nickname_block,array(
                '$nickname' => $nickname,
@@ -211,13 +272,18 @@ function settings_content(&$a) {
                '$nickname_block' => $nickname_block,
                '$timezone' => $timezone,
                '$zoneselect' => select_timezone($timezone),
+               '$defloc' => $defloc,
+               '$profile_in_dir' => $profile_in_dir,
+               '$profile_in_net_dir' => $profile_in_net_dir,
                '$permissions' => t('Default Post Permissions'),
+               '$visibility' => $profile['net-publish'],
                '$aclselect' => populate_acl($a->user),
                '$sel_notify1' => (($notify & NOTIFY_INTRO)   ? ' checked="checked" ' : ''),
                '$sel_notify2' => (($notify & NOTIFY_CONFIRM) ? ' checked="checked" ' : ''),
                '$sel_notify3' => (($notify & NOTIFY_WALL)    ? ' checked="checked" ' : ''),
                '$sel_notify4' => (($notify & NOTIFY_COMMENT) ? ' checked="checked" ' : ''),
-               '$sel_notify5' => (($notify & NOTIFY_MAIL)    ? ' checked="checked" ' : '')
+               '$sel_notify5' => (($notify & NOTIFY_MAIL)    ? ' checked="checked" ' : ''),
+               '$theme' => $theme_selector
        ));
 
        return $o;