diff --git a/mod/profiles.php b/mod/profiles.php index 853aac6de8..3cf2aca80a 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -72,10 +72,7 @@ function profiles_post(&$a) { $romance = escape_tags(trim($_POST['romance'])); $work = escape_tags(trim($_POST['work'])); $education = escape_tags(trim($_POST['education'])); - if(x($_POST,'profile_in_directory')) - $publish = (($_POST['profile_in_directory'] == 1) ? 1: 0); - if(x($_POST,'profile_in_netdirectory')) - $net_publish = (($_POST['profile_in_netdirectory'] == 1) ? 1: 0); + $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0); $r = q("UPDATE `profile` @@ -102,7 +99,8 @@ function profiles_post(&$a) { `film` = '%s', `romance` = '%s', `work` = '%s', - `education` = '%s' + `education` = '%s', + `hide-friends` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1", dbesc($profile_name), dbesc($name), @@ -128,6 +126,7 @@ function profiles_post(&$a) { dbesc($romance), dbesc($work), dbesc($education), + intval($hide_friends), intval($a->argv[1]), intval($_SESSION['uid']) ); @@ -136,23 +135,13 @@ function profiles_post(&$a) { notice( t('Profile updated.') . EOL); - if($is_default) { - $r = q("UPDATE `profile` - SET `publish` = %d, `net-publish` = %d - WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval($publish), - intval($net_publish), - intval($a->argv[1]), - intval($_SESSION['uid']) - - ); - } if($namechanged && $is_default) { $r = q("UPDATE `contact` SET `name-date` = '%s' WHERE `self` = 1 AND `uid` = %d LIMIT 1", dbesc(datetime_convert()), intval($_SESSION['uid']) ); } + if($is_default) { // Update global directory in background $php_path = ((strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php'); @@ -253,6 +242,7 @@ function profiles_content(&$a) { unset($r1[0]['id']); $r1[0]['is-default'] = 0; $r1[0]['publish'] = 0; + $r1[0]['net-publish'] = 0; $r1[0]['profile-name'] = dbesc($name); dbesc_array($r1[0]); @@ -291,23 +281,6 @@ function profiles_content(&$a) { require_once('view/profile_selectors.php'); $tpl = file_get_contents('view/profed_head.tpl'); - $opt_tpl = file_get_contents("view/profile-in-directory.tpl"); - $profile_in_dir = replace_macros($opt_tpl,array( - '$yes_selected' => (($r[0]['publish']) ? " checked=\"checked\" " : ""), - '$no_selected' => (($r[0]['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' => (($r[0]['net-publish']) ? " checked=\"checked\" " : ""), - '$no_selected' => (($r[0]['net-publish'] == 0) ? " checked=\"checked\" " : "") - )); - } - else - $profile_in_net_dir = ''; - $opt_tpl = file_get_contents("view/profile-hide-friends.tpl"); $hide_friends = replace_macros($opt_tpl,array( @@ -355,9 +328,7 @@ function profiles_content(&$a) { '$romance' => $r[0]['romance'], '$work' => $r[0]['work'], '$education' => $r[0]['education'], - '$contact' => $r[0]['contact'], - '$profile_in_dir' => (($is_default) ? $profile_in_dir : ''), - '$profile_in_net_dir' => (($is_default) ? $profile_in_net_dir : '') + '$contact' => $r[0]['contact'] )); return $o; diff --git a/mod/settings.php b/mod/settings.php index 0d65bf9ba8..0cac6e0de7 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -57,6 +57,10 @@ function settings_post(&$a) { $email = notags(trim($_POST['email'])); $timezone = notags(trim($_POST['timezone'])); + $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; if($_POST['notify1']) @@ -146,6 +150,24 @@ function settings_post(&$a) { ); 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) { @@ -167,6 +189,12 @@ 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']; @@ -176,6 +204,28 @@ function settings_content(&$a) { 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"); @@ -219,7 +269,10 @@ function settings_content(&$a) { '$nickname_block' => $nickname_block, '$timezone' => $timezone, '$zoneselect' => select_timezone($timezone), + '$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" ' : ''), diff --git a/view/profile-in-netdir.tpl b/view/profile-in-netdir.tpl index d5a320a3f9..be111aa67f 100644 --- a/view/profile-in-netdir.tpl +++ b/view/profile-in-netdir.tpl @@ -1,5 +1,5 @@
-Publish this profile in global social directory? +Publish your default profile in global social directory?