]> git.mxchange.org Git - friendica.git/blobdiff - mod/settings.php
lint
[friendica.git] / mod / settings.php
index 9e7a6654edaf10df73db109231f400d690bd97ec..eab4ac52e7c7906cd5905b3d774efdec93c635d4 100644 (file)
@@ -15,14 +15,14 @@ function settings_post(&$a) {
                notice( t('Permission denied.') . EOL);
                return;
        }
-       if(count($a->user) && x($a->user,'uid') && $a->user['uid'] != get_uid()) {
+       if(count($a->user) && x($a->user,'uid') && $a->user['uid'] != local_user()) {
                notice( t('Permission denied.') . EOL);
                return;
        }
        if((x($_POST,'npassword')) || (x($_POST,'confirm'))) {
 
-               $newpass = trim($_POST['npassword']);
-               $confirm = trim($_POST['confirm']);
+               $newpass = $_POST['npassword'];
+               $confirm = $_POST['confirm'];
 
                $err = false;
                if($newpass != $confirm ) {
@@ -39,7 +39,8 @@ function settings_post(&$a) {
                        $password = hash('whirlpool',$newpass);
                        $r = q("UPDATE `user` SET `password` = '%s' WHERE `uid` = %d LIMIT 1",
                                dbesc($password),
-                               intval(get_uid());
+                               intval(local_user())
+                       );
                        if($r)
                                notice( t('Password changed.') . EOL);
                        else
@@ -53,9 +54,11 @@ function settings_post(&$a) {
        $timezone         = notags(trim($_POST['timezone']));
        $defloc           = notags(trim($_POST['defloc']));
 
+       $allow_location   = (($_POST['allow_location'] == 1) ? 1: 0);
        $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);
+       $page_flags       = ((intval($_POST['page-flags'])) ? intval($_POST['page-flags']) : 0);
 
        $notify = 0;
 
@@ -80,34 +83,29 @@ function settings_post(&$a) {
                if(strlen($username) < 3)
                        $err .= t(' Name too short.');
        }
+
        if($email != $a->user['email']) {
                $email_changed = true;
                if(!eregi('[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,6}',$email))
                        $err .= t(' Not valid email.');
-               $r = q("SELECT `uid` FROM `user`
-                       WHERE `email` = '%s' LIMIT 1",
-                       dbesc($email)
-                       );
-               if($r !== NULL && count($r))
-                       $err .= t(' This email address is already registered.');
        }
 
-        if(strlen($err)) {
-                notice($err . EOL);
-                return;
-        }
+       if(strlen($err)) {
+               notice($err . EOL);
+               return;
+       }
+
        if($timezone != $a->user['timezone']) {
                if(strlen($timezone))
                        date_default_timezone_set($timezone);
        }
 
-
        $str_group_allow   = perms2str($_POST['group_allow']);
        $str_contact_allow = perms2str($_POST['contact_allow']);
        $str_group_deny    = perms2str($_POST['group_deny']);
        $str_contact_deny  = perms2str($_POST['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, `default-location` = '%s', `theme` = '%s'  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, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s'  WHERE `uid` = %d LIMIT 1",
                        dbesc($username),
                        dbesc($email),
                        dbesc($timezone),
@@ -116,9 +114,11 @@ function settings_post(&$a) {
                        dbesc($str_contact_deny),
                        dbesc($str_group_deny),
                        intval($notify),
+                       intval($page_flags),
                        dbesc($defloc),
+                       intval($allow_location),
                        dbesc($theme),
-                       intval(get_uid())
+                       intval(local_user())
        );
        if($r)
                notice( t('Settings updated.') . EOL);
@@ -128,7 +128,7 @@ function settings_post(&$a) {
                WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
                intval($publish),
                intval($net_publish),
-               intval(get_uid())
+               intval(local_user())
        );
 
        if($old_visibility != $net_publish) {
@@ -155,6 +155,9 @@ function settings_post(&$a) {
 if(! function_exists('settings_content')) {
 function settings_content(&$a) {
 
+       $o = '';
+       $o .= '<script> $(document).ready(function() { $(\'#nav-settings-link\').addClass(\'nav-selected\'); });</script>';
+
        if(! local_user()) {
                notice( t('Permission denied.') . EOL );
                return;
@@ -178,15 +181,27 @@ function settings_content(&$a) {
        if(! strlen($a->user['timezone']))
                $timezone = date_default_timezone_get();
 
+       $pageset_tpl = load_view_file('view/pagetypes.tpl');
+       $pagetype = replace_macros($pageset_tpl,array(
+               '$normal'         => (($a->user['page-flags'] == PAGE_NORMAL)      ? " checked=\"checked\" " : ""),
+               '$soapbox'        => (($a->user['page-flags'] == PAGE_SOAPBOX)     ? " checked=\"checked\" " : ""),
+               '$community'      => (($a->user['page-flags'] == PAGE_COMMUNITY)   ? " checked=\"checked\" " : ""),
+               '$freelove'       => (($a->user['page-flags'] == PAGE_FREELOVE)    ? " checked=\"checked\" " : ""),
+               '$page_normal'    => PAGE_NORMAL,
+               '$page_soapbox'   => PAGE_SOAPBOX,
+               '$page_community' => PAGE_COMMUNITY,
+               '$page_freelove'  => PAGE_FREELOVE
+       ));
+
 
-       $opt_tpl = file_get_contents("view/profile-in-directory.tpl");
+       $opt_tpl = load_view_file("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");
+               $opt_tpl = load_view_file("view/profile-in-netdir.tpl");
 
                $profile_in_net_dir = replace_macros($opt_tpl,array(
                        '$yes_selected' => (($profile['net-publish'])      ? " checked=\"checked\" " : ""),
@@ -196,11 +211,19 @@ function settings_content(&$a) {
        else
                $profile_in_net_dir = '';
 
-       $nickname_block = file_get_contents("view/settings_nick_set.tpl");
+       $loc_checked = (($a->user['allow_location'] == 1)      ? " checked=\"checked\" " : "");
+
+       $invisible = (((! $profile['publish']) && (! $profile['net-publish']))
+               ? true : false);
+
+       if($invisible)
+               notice( t('Profile is <strong>not published</strong>.') . EOL );
+
+       $nickname_block = load_view_file("view/settings_nick_set.tpl");
        
        $nickname_subdir = '';
        if(strlen($a->get_path())) {
-               $subdir_tpl = file_get_contents('view/settings_nick_subdir.tpl');
+               $subdir_tpl = load_view_file('view/settings_nick_subdir.tpl');
                $nickname_subdir = replace_macros($subdir_tpl, array(
                        '$baseurl' => $a->get_baseurl(),
                        '$nickname' => $nickname,
@@ -213,7 +236,7 @@ function settings_content(&$a) {
        if($files) {
                foreach($files as $file) {
                        $f = basename($file);
-                       $selected = (($f == $_SESSION['theme']) || ($f == 'default' && (! x($_SESSION,'theme')))
+                       $selected = (($f == $_SESSION['theme']) || ($f === 'default' && (! x($_SESSION,'theme')))
                                ? ' selected="selected" ' : '' );
                        $theme_selector .= '<option val="' . basename($file) . '"' . $selected . '>' . basename($file) . '</option>';
                }
@@ -228,9 +251,11 @@ function settings_content(&$a) {
                '$basepath' => $a->get_hostname(),
                '$baseurl' => $a->get_baseurl()));      
 
-       $o = file_get_contents('view/settings.tpl');
+       $stpl = load_view_file('view/settings.tpl');
+
+       $celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
 
-       $o = replace_macros($o,array(
+       $o .= replace_macros($stpl,array(
                '$baseurl' => $a->get_baseurl(),
                '$uid' => $_SESSION['uid'],
                '$username' => $username,
@@ -239,17 +264,19 @@ function settings_content(&$a) {
                '$timezone' => $timezone,
                '$zoneselect' => select_timezone($timezone),
                '$defloc' => $defloc,
+               '$loc_checked' => $loc_checked,
                '$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),
+               '$aclselect' => populate_acl($a->user,$celeb),
                '$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" ' : ''),
-               '$theme' => $theme_selector
+               '$theme' => $theme_selector,
+               '$pagetype' => $pagetype
        ));
 
        return $o;