2010-07-01 19:48:07 -04:00
< ? php
function settings_init ( & $a ) {
2010-09-08 23:14:17 -04:00
if ( local_user ()) {
profile_load ( $a , $a -> user [ 'nickname' ]);
2010-07-01 19:48:07 -04:00
}
2011-03-22 06:07:46 -04:00
2011-06-02 01:06:53 -04:00
$a -> page [ 'htmlhead' ] .= " <script> var ispublic = ' " . t ( 'everybody' ) . " '; " ;
$a -> page [ 'htmlhead' ] .= <<< EOT
$ ( document ) . ready ( function () {
$ ( '#contact_allow, #contact_deny, #group_allow, #group_deny' ) . change ( function () {
var selstr ;
$ ( '#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected' ) . each ( function () {
selstr = $ ( this ) . text ();
$ ( '#jot-perms-icon' ) . removeClass ( 'unlock' ) . addClass ( 'lock' );
$ ( '#jot-public' ) . hide ();
});
if ( selstr == null ) {
$ ( '#jot-perms-icon' ) . removeClass ( 'lock' ) . addClass ( 'unlock' );
$ ( '#jot-public' ) . show ();
}
}) . trigger ( 'change' );
});
</ script >
EOT ;
2010-07-01 19:48:07 -04:00
}
function settings_post ( & $a ) {
2010-07-20 01:52:31 -04:00
if ( ! local_user ()) {
2010-08-08 02:54:22 -04:00
notice ( t ( 'Permission denied.' ) . EOL );
2010-07-01 19:48:07 -04:00
return ;
}
2010-12-22 23:23:41 -05:00
2010-10-18 17:34:59 -04:00
if ( count ( $a -> user ) && x ( $a -> user , 'uid' ) && $a -> user [ 'uid' ] != local_user ()) {
2010-08-08 02:54:22 -04:00
notice ( t ( 'Permission denied.' ) . EOL );
2010-07-01 19:48:07 -04:00
return ;
}
2011-01-05 16:10:47 -05:00
if (( $a -> argc > 1 ) && ( $a -> argv [ 1 ] == 'addon' )) {
call_hooks ( 'plugin_settings_post' , $_POST );
return ;
}
call_hooks ( 'settings_post' , $_POST );
2010-08-20 01:18:06 -04:00
if (( x ( $_POST , 'npassword' )) || ( x ( $_POST , 'confirm' ))) {
2010-07-01 19:48:07 -04:00
2010-10-09 19:19:52 -04:00
$newpass = $_POST [ 'npassword' ];
$confirm = $_POST [ 'confirm' ];
2010-07-01 19:48:07 -04:00
$err = false ;
if ( $newpass != $confirm ) {
2010-08-08 02:54:22 -04:00
notice ( t ( 'Passwords do not match. Password unchanged.' ) . EOL );
2010-07-01 19:48:07 -04:00
$err = true ;
}
if (( ! x ( $newpass )) || ( ! x ( $confirm ))) {
2010-08-08 02:54:22 -04:00
notice ( t ( 'Empty passwords are not allowed. Password unchanged.' ) . EOL );
2010-07-01 19:48:07 -04:00
$err = true ;
}
if ( ! $err ) {
$password = hash ( 'whirlpool' , $newpass );
$r = q ( " UPDATE `user` SET `password` = '%s' WHERE `uid` = %d LIMIT 1 " ,
dbesc ( $password ),
2010-10-18 17:34:59 -04:00
intval ( local_user ())
2010-09-08 23:52:43 -04:00
);
2010-07-01 19:48:07 -04:00
if ( $r )
2011-05-23 05:39:57 -04:00
info ( t ( 'Password changed.' ) . EOL );
2010-07-01 19:48:07 -04:00
else
2010-08-08 02:54:22 -04:00
notice ( t ( 'Password update failed. Please try again.' ) . EOL );
2010-07-01 19:48:07 -04:00
}
}
2010-11-17 18:41:18 -05:00
$theme = (( x ( $_POST , 'theme' )) ? notags ( trim ( $_POST [ 'theme' ])) : '' );
$username = (( x ( $_POST , 'username' )) ? notags ( trim ( $_POST [ 'username' ])) : '' );
$email = (( x ( $_POST , 'email' )) ? notags ( trim ( $_POST [ 'email' ])) : '' );
$timezone = (( x ( $_POST , 'timezone' )) ? notags ( trim ( $_POST [ 'timezone' ])) : '' );
$defloc = (( x ( $_POST , 'defloc' )) ? notags ( trim ( $_POST [ 'defloc' ])) : '' );
$openid = (( x ( $_POST , 'openid_url' )) ? notags ( trim ( $_POST [ 'openid_url' ])) : '' );
2010-12-20 03:27:00 -05:00
$maxreq = (( x ( $_POST , 'maxreq' )) ? intval ( $_POST [ 'maxreq' ]) : 0 );
2011-03-15 20:31:49 -04:00
$expire = (( x ( $_POST , 'expire' )) ? intval ( $_POST [ 'expire' ]) : 0 );
2010-11-17 18:41:18 -05:00
$allow_location = ((( x ( $_POST , 'allow_location' )) && ( intval ( $_POST [ 'allow_location' ]) == 1 )) ? 1 : 0 );
$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 );
$page_flags = ((( x ( $_POST , 'page-flags' )) && ( intval ( $_POST [ 'page-flags' ]))) ? intval ( $_POST [ 'page-flags' ]) : 0 );
2011-03-20 20:54:50 -04:00
$blockwall = ((( x ( $_POST , 'blockwall' )) && ( intval ( $_POST [ 'blockwall' ]) == 1 )) ? 0 : 1 ); // this setting is inverted!
2010-08-20 01:04:18 -04:00
2011-06-19 19:47:03 -04:00
$hide_friends = (( $_POST [ 'hide-friends' ] == 1 ) ? 1 : 0 );
$hidewall = (( $_POST [ 'hidewall' ] == 1 ) ? 1 : 0 );
2011-04-18 02:27:11 -04:00
$mail_server = (( x ( $_POST , 'mail_server' )) ? $_POST [ 'mail_server' ] : '' );
$mail_port = (( x ( $_POST , 'mail_port' )) ? $_POST [ 'mail_port' ] : '' );
$mail_ssl = (( x ( $_POST , 'mail_ssl' )) ? strtolower ( trim ( $_POST [ 'mail_ssl' ])) : '' );
$mail_user = (( x ( $_POST , 'mail_user' )) ? $_POST [ 'mail_user' ] : '' );
$mail_pass = (( x ( $_POST , 'mail_pass' )) ? trim ( $_POST [ 'mail_pass' ]) : '' );
$mail_replyto = (( x ( $_POST , 'mail_replyto' )) ? $_POST [ 'mail_replyto' ] : '' );
$mail_pubmail = (( x ( $_POST , 'mail_pubmail' )) ? $_POST [ 'mail_pubmail' ] : '' );
2011-04-18 23:20:04 -04:00
$mail_disabled = (( function_exists ( 'imap_open' ) && ( ! get_config ( 'system' , 'imap_disabled' ))) ? 0 : 1 );
if ( ! $mail_disabled ) {
$r = q ( " SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1 " ,
2011-04-18 02:27:11 -04:00
intval ( local_user ())
);
2011-04-18 23:20:04 -04:00
if ( ! count ( $r )) {
q ( " INSERT INTO `mailacct` (`uid`) VALUES (%d) " ,
2011-04-18 02:27:11 -04:00
intval ( local_user ())
2011-04-18 23:20:04 -04:00
);
}
if ( strlen ( $mail_pass )) {
$pass = '' ;
2011-04-21 03:29:48 -04:00
openssl_public_encrypt ( $mail_pass , $pass , $a -> user [ 'pubkey' ]);
2011-04-18 23:20:04 -04:00
q ( " UPDATE `mailacct` SET `pass` = '%s' WHERE `uid` = %d LIMIT 1 " ,
2011-04-21 03:43:37 -04:00
dbesc ( bin2hex ( $pass )),
2011-04-18 23:20:04 -04:00
intval ( local_user ())
);
}
$r = q ( " UPDATE `mailacct` SET `server` = '%s', `port` = %d, `ssltype` = '%s', `user` = '%s',
`mailbox` = 'INBOX' , `reply_to` = '%s' , `pubmail` = % d WHERE `uid` = % d LIMIT 1 " ,
dbesc ( $mail_server ),
intval ( $mail_port ),
dbesc ( $mail_ssl ),
dbesc ( $mail_user ),
dbesc ( $mail_replyto ),
intval ( $mail_pubmail ),
intval ( local_user ())
2011-04-18 02:27:11 -04:00
);
2011-05-30 00:20:50 -04:00
$r = q ( " SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1 " ,
intval ( local_user ())
);
if ( count ( $r )) {
$eacct = $r [ 0 ];
require_once ( 'include/email.php' );
$mb = construct_mailbox_name ( $eacct );
if ( strlen ( $eacct [ 'server' ])) {
$dcrpass = '' ;
openssl_private_decrypt ( hex2bin ( $eacct [ 'pass' ]), $dcrpass , $a -> user [ 'prvkey' ]);
$mbox = email_connect ( $mb , $mail_user , $dcrpass );
unset ( $dcrpass );
if ( ! $mbox )
notice ( t ( 'Failed to connect with email account using the settings provided.' ) . EOL );
}
}
2011-04-18 02:27:11 -04:00
}
2010-08-14 10:55:18 -04:00
$notify = 0 ;
2010-11-17 18:41:18 -05:00
if ( x ( $_POST , 'notify1' ))
2010-08-14 10:55:18 -04:00
$notify += intval ( $_POST [ 'notify1' ]);
2010-11-17 18:41:18 -05:00
if ( x ( $_POST , 'notify2' ))
2010-08-14 10:55:18 -04:00
$notify += intval ( $_POST [ 'notify2' ]);
2010-11-17 18:41:18 -05:00
if ( x ( $_POST , 'notify3' ))
2010-08-14 10:55:18 -04:00
$notify += intval ( $_POST [ 'notify3' ]);
2010-11-17 18:41:18 -05:00
if ( x ( $_POST , 'notify4' ))
2010-08-14 10:55:18 -04:00
$notify += intval ( $_POST [ 'notify4' ]);
2010-11-17 18:41:18 -05:00
if ( x ( $_POST , 'notify5' ))
2010-08-14 10:55:18 -04:00
$notify += intval ( $_POST [ 'notify5' ]);
2010-07-01 19:48:07 -04:00
$email_changed = false ;
2010-09-08 23:14:17 -04:00
2010-07-01 19:48:07 -04:00
$err = '' ;
2011-01-24 21:18:47 -05:00
$name_change = false ;
2010-07-01 19:48:07 -04:00
if ( $username != $a -> user [ 'username' ]) {
2011-01-24 21:18:47 -05:00
$name_change = true ;
if ( strlen ( $username ) > 40 )
$err .= t ( ' Please use a shorter name.' );
if ( strlen ( $username ) < 3 )
$err .= t ( ' Name too short.' );
2010-07-01 19:48:07 -04:00
}
2010-10-16 23:38:27 -04:00
2010-07-01 19:48:07 -04:00
if ( $email != $a -> user [ 'email' ]) {
$email_changed = true ;
2010-11-14 03:32:31 -05:00
if ( ! valid_email ( $email ))
$err .= t ( ' Not valid email.' );
2011-01-05 01:17:58 -05:00
if (( x ( $a -> config , 'admin_email' )) && ( strcasecmp ( $email , $a -> config [ 'admin_email' ]) == 0 )) {
$err .= t ( ' Cannot change to that email.' );
$email = $a -> user [ 'email' ];
}
2010-07-01 19:48:07 -04:00
}
2010-10-16 23:38:27 -04:00
if ( strlen ( $err )) {
notice ( $err . EOL );
return ;
}
2010-07-01 19:48:07 -04:00
if ( $timezone != $a -> user [ 'timezone' ]) {
if ( strlen ( $timezone ))
date_default_timezone_set ( $timezone );
}
2010-08-08 02:54:22 -04:00
2010-09-08 23:14:17 -04:00
$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' ]);
2010-08-08 02:54:22 -04:00
2010-12-23 17:40:32 -05:00
$openidserver = $a -> user [ 'openidserver' ];
2010-12-23 17:54:34 -05:00
// If openid has changed or if there's an openid but no openidserver, try and discover it.
if ( $openid != $a -> user [ 'openid' ] || ( strlen ( $openid ) && ( ! strlen ( $openidserver )))) {
2011-01-03 00:25:38 -05:00
$tmp_str = $openid ;
if ( strlen ( $tmp_str ) && validate_url ( $tmp_str )) {
2011-01-03 00:20:17 -05:00
logger ( 'updating openidserver' );
require_once ( 'library/openid.php' );
$open_id_obj = new LightOpenID ;
$open_id_obj -> identity = $openid ;
$openidserver = $open_id_obj -> discover ( $open_id_obj -> identity );
}
else
$openidserver = '' ;
2010-12-23 15:52:51 -05:00
}
2011-03-20 20:54:50 -04:00
$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', `allow_location` = %d, `theme` = '%s', `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `blockwall` = %d WHERE `uid` = %d LIMIT 1 " ,
2010-07-01 19:48:07 -04:00
dbesc ( $username ),
dbesc ( $email ),
2010-11-17 18:41:18 -05:00
dbesc ( $openid ),
2010-07-01 19:48:07 -04:00
dbesc ( $timezone ),
2010-08-08 02:54:22 -04:00
dbesc ( $str_contact_allow ),
dbesc ( $str_group_allow ),
dbesc ( $str_contact_deny ),
dbesc ( $str_group_deny ),
2010-08-14 10:55:18 -04:00
intval ( $notify ),
2010-10-18 03:43:49 -04:00
intval ( $page_flags ),
2010-08-21 19:31:46 -04:00
dbesc ( $defloc ),
2010-10-19 23:52:05 -04:00
intval ( $allow_location ),
2010-08-16 08:23:26 -04:00
dbesc ( $theme ),
2010-12-20 03:27:00 -05:00
intval ( $maxreq ),
2011-03-15 20:31:49 -04:00
intval ( $expire ),
2010-12-23 17:40:32 -05:00
dbesc ( $openidserver ),
2011-03-20 20:54:50 -04:00
intval ( $blockwall ),
2010-10-18 17:34:59 -04:00
intval ( local_user ())
2010-08-08 02:54:22 -04:00
);
if ( $r )
2011-05-23 05:39:57 -04:00
info ( t ( 'Settings updated.' ) . EOL );
2010-08-20 01:04:18 -04:00
$r = q ( " UPDATE `profile`
2011-06-19 19:47:03 -04:00
SET `publish` = % d ,
`net-publish` = % d ,
`hide-friends` = % d ,
`hidewall` = % d
2010-08-20 01:04:18 -04:00
WHERE `is-default` = 1 AND `uid` = % d LIMIT 1 " ,
intval ( $publish ),
intval ( $net_publish ),
2011-06-19 19:47:03 -04:00
intval ( $hide_friends ),
intval ( $hidewall ),
2010-10-18 17:34:59 -04:00
intval ( local_user ())
2010-08-20 01:04:18 -04:00
);
2011-01-24 21:18:47 -05:00
if ( $name_change ) {
q ( " UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `uid` = %d AND `self` = 1 LIMIT 1 " ,
dbesc ( $username ),
dbesc ( datetime_convert ()),
intval ( local_user ())
);
}
2010-08-20 01:04:18 -04:00
if ( $old_visibility != $net_publish ) {
// Update global directory in background
$url = $_SESSION [ 'my_url' ];
if ( $url && strlen ( get_config ( 'system' , 'directory_submit_url' )))
2011-02-23 18:16:12 -05:00
proc_run ( 'php' , " include/directory.php " , " $url " );
2010-08-20 01:04:18 -04:00
}
2010-08-16 08:23:26 -04:00
$_SESSION [ 'theme' ] = $theme ;
2010-07-01 19:48:07 -04:00
if ( $email_changed && $a -> config [ 'register_policy' ] == REGISTER_VERIFY ) {
// FIXME - set to un-verified, blocked and redirect to logout
}
2010-07-06 00:39:55 -04:00
2010-08-16 08:23:26 -04:00
goaway ( $a -> get_baseurl () . '/settings' );
2010-09-08 23:14:17 -04:00
return ; // NOTREACHED
2010-07-01 19:48:07 -04:00
}
if ( ! function_exists ( 'settings_content' )) {
function settings_content ( & $a ) {
2010-10-16 23:38:27 -04:00
2010-10-31 19:38:22 -04:00
$o = '' ;
2010-09-19 00:11:18 -04:00
$o .= '<script> $(document).ready(function() { $(\'#nav-settings-link\').addClass(\'nav-selected\'); });</script>' ;
2010-07-01 19:48:07 -04:00
2010-07-30 09:09:20 -04:00
if ( ! local_user ()) {
notice ( t ( 'Permission denied.' ) . EOL );
2010-07-01 19:48:07 -04:00
return ;
}
2010-12-25 02:44:17 -05:00
if (( $a -> argc > 1 ) && ( $a -> argv [ 1 ] === 'addon' )) {
$o .= '<h1>' . t ( 'Plugin Settings' ) . '</h1>' ;
$o .= '<div id="account-settings-link"><a href="settings">' . t ( 'Account Settings' ) . '</a></div>' ;
$o .= '<form action="settings/addon" method="post" >' ;
$r = q ( " SELECT * FROM `hook` WHERE `hook` = 'plugin_settings' " );
if ( ! count ( $r ))
2010-12-25 04:24:51 -05:00
notice ( t ( 'No Plugin settings configured' ) . EOL );
2010-12-25 02:44:17 -05:00
call_hooks ( 'plugin_settings' , $o );
$o .= '</form>' ;
return $o ;
}
2010-11-16 00:02:59 -05:00
require_once ( 'include/acl_selectors.php' );
2010-07-01 19:48:07 -04:00
2010-08-20 01:04:18 -04:00
$p = q ( " SELECT * FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1 " ,
2010-11-17 18:41:18 -05:00
intval ( local_user ())
2010-08-20 01:04:18 -04:00
);
if ( count ( $p ))
$profile = $p [ 0 ];
2010-07-01 19:48:07 -04:00
$username = $a -> user [ 'username' ];
$email = $a -> user [ 'email' ];
$nickname = $a -> user [ 'nickname' ];
$timezone = $a -> user [ 'timezone' ];
2010-08-14 10:55:18 -04:00
$notify = $a -> user [ 'notify-flags' ];
2010-08-21 19:31:46 -04:00
$defloc = $a -> user [ 'default-location' ];
2010-11-17 18:41:18 -05:00
$openid = $a -> user [ 'openid' ];
2010-12-20 03:27:00 -05:00
$maxreq = $a -> user [ 'maxreq' ];
2011-03-15 20:31:49 -04:00
$expire = (( intval ( $a -> user [ 'expire' ])) ? $a -> user [ 'expire' ] : '' );
2011-03-20 20:54:50 -04:00
$blockwall = $a -> user [ 'blockwall' ];
2010-07-01 19:48:07 -04:00
2010-08-16 08:23:26 -04:00
if ( ! strlen ( $a -> user [ 'timezone' ]))
$timezone = date_default_timezone_get ();
2010-07-20 01:52:31 -04:00
2011-04-18 02:27:11 -04:00
2011-04-18 23:20:04 -04:00
$mail_disabled = (( function_exists ( 'imap_open' ) && ( ! get_config ( 'system' , 'imap_disabled' ))) ? 0 : 1 );
if ( ! $mail_disabled ) {
$r = q ( " SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1 " ,
local_user ()
);
}
else {
$r = null ;
$imap_disabled = (( $mail_disabled ) ? ' disabled="disabled" ' : '' );
}
2011-04-18 02:27:11 -04:00
2011-04-18 19:03:07 -04:00
$mail_server = (( count ( $r )) ? $r [ 0 ][ 'server' ] : '' );
$mail_port = (( count ( $r ) && intval ( $r [ 0 ][ 'port' ])) ? intval ( $r [ 0 ][ 'port' ]) : '' );
$mail_ssl = (( count ( $r )) ? $r [ 0 ][ 'ssltype' ] : '' );
$mail_user = (( count ( $r )) ? $r [ 0 ][ 'user' ] : '' );
2011-04-18 02:27:11 -04:00
$mail_replyto = (( count ( $r )) ? $r [ 0 ][ 'reply_to' ] : '' );
$mail_pubmail = (( count ( $r )) ? $r [ 0 ][ 'pubmail' ] : 0 );
2011-05-30 00:20:50 -04:00
$mail_chk = (( count ( $r )) ? $r [ 0 ][ 'last_check' ] : '0000-00-00 00:00:00' );
2011-04-18 02:27:11 -04:00
2011-05-11 07:37:13 -04:00
$pageset_tpl = get_markup_template ( 'pagetypes.tpl' );
2010-10-18 03:43:49 -04:00
$pagetype = replace_macros ( $pageset_tpl , array (
2010-10-18 19:38:48 -04:00
'$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 \" " : " " ),
2010-10-18 03:43:49 -04:00
'$page_normal' => PAGE_NORMAL ,
'$page_soapbox' => PAGE_SOAPBOX ,
'$page_community' => PAGE_COMMUNITY ,
2011-04-07 01:42:08 -04:00
'$page_freelove' => PAGE_FREELOVE ,
'$n_l' => t ( 'Normal Account' ),
'$n_d' => t ( 'This account is a normal personal profile' ),
'$s_l' => t ( 'Soapbox Account' ),
'$s_d' => t ( 'Automatically approve all connection/friend requests as read-only fans' ),
'$c_l' => t ( 'Community/Celebrity Account' ),
'$c_d' => t ( 'Automatically approve all connection/friend requests as read-write fans' ),
'$f_l' => t ( 'Automatic Friend Account' ),
'$f_d' => t ( 'Automatically approve all connection/friend requests as friends' )
2010-10-18 03:43:49 -04:00
));
2010-11-28 23:58:23 -05:00
$noid = get_config ( 'system' , 'no_openid' );
if ( $noid ) {
$oidhtml = '' ;
}
else {
$oidhtml = '<label id="settings-openid-label" for="settings-openid" >' . t ( 'OpenID: ' ) . '</label><input type="text" id="settings-openid" class="openid" name="openid_url" value="$openid" />' . t ( " \x28 Optional \x29 Allow this OpenID to login to this account. " );
}
2011-01-03 01:09:54 -05:00
if ( get_config ( 'system' , 'publish_all' )) {
$profile_in_dir = '<input type="hidden" name="profile_in_directory" value="1" />' ;
}
else {
2011-05-11 07:37:13 -04:00
$opt_tpl = get_markup_template ( " profile-in-directory.tpl " );
2011-01-03 01:09:54 -05:00
$profile_in_dir = replace_macros ( $opt_tpl , array (
2011-06-19 19:47:03 -04:00
'$desc' => t ( 'Publish your default profile in your local site directory?' ),
2011-04-07 21:00:35 -04:00
'$yes_str' => t ( 'Yes' ),
'$no_str' => t ( 'No' ),
2011-01-03 01:09:54 -05:00
'$yes_selected' => (( $profile [ 'publish' ]) ? " checked= \" checked \" " : " " ),
'$no_selected' => (( $profile [ 'publish' ] == 0 ) ? " checked= \" checked \" " : " " )
));
}
2010-08-20 01:04:18 -04:00
if ( strlen ( get_config ( 'system' , 'directory_submit_url' ))) {
2011-05-11 07:37:13 -04:00
$opt_tpl = get_markup_template ( " profile-in-netdir.tpl " );
2010-08-20 01:04:18 -04:00
$profile_in_net_dir = replace_macros ( $opt_tpl , array (
2011-06-19 19:47:03 -04:00
'$desc' => t ( 'Publish your default profile in the global social directory?' ),
2011-04-07 21:00:35 -04:00
'$yes_str' => t ( 'Yes' ),
'$no_str' => t ( 'No' ),
2010-09-08 23:14:17 -04:00
'$yes_selected' => (( $profile [ 'net-publish' ]) ? " checked= \" checked \" " : " " ),
'$no_selected' => (( $profile [ 'net-publish' ] == 0 ) ? " checked= \" checked \" " : " " )
2010-08-20 01:04:18 -04:00
));
}
else
$profile_in_net_dir = '' ;
2011-06-19 19:47:03 -04:00
$opt_tpl = get_markup_template ( " profile-hide-friends.tpl " );
$hide_friends = replace_macros ( $opt_tpl , array (
'$desc' => t ( 'Hide your contact/friend list from viewers of your default profile?' ),
'$yes_str' => t ( 'Yes' ),
'$no_str' => t ( 'No' ),
'$yes_selected' => (( $profile [ 'hide-friends' ]) ? " checked= \" checked \" " : " " ),
'$no_selected' => (( $profile [ 'hide-friends' ] == 0 ) ? " checked= \" checked \" " : " " )
));
$opt_tpl = get_markup_template ( " profile-hide-wall.tpl " );
$hide_wall = replace_macros ( $opt_tpl , array (
'$desc' => t ( 'Hide profile details and all your messages from unknown viewers?' ),
'$yes_str' => t ( 'Yes' ),
'$no_str' => t ( 'No' ),
'$yes_selected' => (( $profile [ 'hidewall' ]) ? " checked= \" checked \" " : " " ),
'$no_selected' => (( $profile [ 'hidewall' ] == 0 ) ? " checked= \" checked \" " : " " )
));
2010-10-19 23:52:05 -04:00
$loc_checked = (( $a -> user [ 'allow_location' ] == 1 ) ? " checked= \" checked \" " : " " );
2010-09-30 08:10:25 -04:00
$invisible = ((( ! $profile [ 'publish' ]) && ( ! $profile [ 'net-publish' ]))
? true : false );
if ( $invisible )
2011-05-23 05:39:57 -04:00
info ( t ( 'Profile is <strong>not published</strong>.' ) . EOL );
2010-09-30 08:10:25 -04:00
2010-07-20 01:52:31 -04:00
2010-08-16 08:23:26 -04:00
$theme_selector = '<select name="theme" id="theme-select" >' ;
$files = glob ( 'view/theme/*' );
2011-01-04 00:55:21 -05:00
$default_theme = get_config ( 'system' , 'theme' );
if ( ! $default_theme )
$default_theme = 'default' ;
2010-08-16 08:23:26 -04:00
if ( $files ) {
foreach ( $files as $file ) {
$f = basename ( $file );
2011-01-04 00:55:21 -05:00
$selected = (( $f == $_SESSION [ 'theme' ]) || ( $f === $default_theme && ( ! x ( $_SESSION , 'theme' )))
2010-08-16 08:23:26 -04:00
? ' selected="selected" ' : '' );
2011-06-05 21:05:25 -04:00
$theme_name = (( file_exists ( $file . '/experimental' )) ? sprintf ( " %s - \x28 Experimental \x29 " , $f ) : $f );
2011-06-06 08:55:54 -04:00
$theme_selector .= '<option value="' . $f . '"' . $selected . '>' . $theme_name . '</option>' ;
2010-08-16 08:23:26 -04:00
}
}
2011-04-14 23:37:42 -04:00
2010-08-16 08:23:26 -04:00
$theme_selector .= '</select>' ;
2011-04-08 02:10:43 -04:00
$subdir = (( strlen ( $a -> get_path ())) ? '<br />' . t ( 'or' ) . ' ' . $a -> get_baseurl () . '/profile/' . $nickname : '' );
2010-07-01 19:48:07 -04:00
2011-05-11 07:37:13 -04:00
$tpl_addr = get_markup_template ( " settings_nick_set.tpl " );
2011-04-08 02:10:43 -04:00
$prof_addr = replace_macros ( $tpl_addr , array (
2011-04-14 23:37:42 -04:00
'$desc' => t ( 'Your Identity Address is' ),
2010-07-01 19:48:07 -04:00
'$nickname' => $nickname ,
2011-04-08 02:10:43 -04:00
'$subdir' => $subdir ,
'$basepath' => $a -> get_hostname ()
));
2010-07-01 19:48:07 -04:00
2011-05-11 07:37:13 -04:00
$stpl = get_markup_template ( 'settings.tpl' );
2010-07-01 19:48:07 -04:00
2010-10-18 03:43:49 -04:00
$celeb = ((( $a -> user [ 'page-flags' ] == PAGE_SOAPBOX ) || ( $a -> user [ 'page-flags' ] == PAGE_COMMUNITY )) ? true : false );
2011-03-22 06:07:46 -04:00
$uexport = '<div id="uexport-link"><a href="uexport" >' . t ( 'Export Personal Data' ) . '</a></div>' ;
2010-09-19 00:11:18 -04:00
$o .= replace_macros ( $stpl , array (
2011-04-08 02:10:43 -04:00
'$ptitle' => t ( 'Account Settings' ),
'$lbl_plug' => t ( 'Plugin Settings' ),
'$lbl_basic' => t ( 'Basic Settings' ),
'$lbl_fn' => t ( 'Full Name:' ),
'$lbl_email' => t ( 'Email Address:' ),
'$lbl_tz' => t ( 'Your Timezone:' ),
'$lbl_loc1' => t ( 'Default Post Location:' ),
'$lbl_loc2' => t ( 'Use Browser Location:' ),
'$lbl_theme' => t ( 'Display Theme:' ),
'$submit' => t ( 'Submit' ),
'$lbl_prv' => t ( 'Security and Privacy Settings' ),
'$lbl_maxreq' => t ( 'Maximum Friend Requests/Day:' ),
'$lbl_maxrdesc' => t ( " \x28 to prevent spam abuse \x29 " ),
'$lbl_rempost' => t ( 'Allow friends to post to your profile page:' ),
'$lbl_exp1' => t ( " Automatically expire \x28 delete \x29 posts older than " ),
'$lbl_exp2' => t ( 'days' ),
'$lbl_not1' => t ( 'Notification Settings' ),
'$lbl_not2' => t ( 'Send a notification email when:' ),
'$lbl_not3' => t ( 'You receive an introduction' ),
'$lbl_not4' => t ( 'Your introductions are confirmed' ),
'$lbl_not5' => t ( 'Someone writes on your profile wall' ),
'$lbl_not6' => t ( 'Someone writes a followup comment' ),
'$lbl_not7' => t ( 'You receive a private message' ),
'$lbl_pass1' => t ( 'Password Settings' ),
'$lbl_pass2' => t ( 'Leave password fields blank unless changing' ),
'$lbl_pass3' => t ( 'New Password:' ),
'$lbl_pass4' => t ( 'Confirm:' ),
'$lbl_advn' => t ( 'Advanced Page Settings' ),
2010-07-01 19:48:07 -04:00
'$baseurl' => $a -> get_baseurl (),
2011-06-19 19:47:03 -04:00
'$hide_friends' => $hide_friends ,
'$hide_wall' => $hide_wall ,
2010-11-28 23:58:23 -05:00
'$oidhtml' => $oidhtml ,
2011-03-22 06:07:46 -04:00
'$uexport' => $uexport ,
2010-11-17 18:41:18 -05:00
'$uid' => local_user (),
2010-07-01 19:48:07 -04:00
'$username' => $username ,
2010-11-17 18:41:18 -05:00
'$openid' => $openid ,
2010-07-01 19:48:07 -04:00
'$email' => $email ,
2011-04-08 02:10:43 -04:00
'$nickname_block' => $prof_addr ,
2010-07-01 19:48:07 -04:00
'$timezone' => $timezone ,
2010-07-30 09:09:20 -04:00
'$zoneselect' => select_timezone ( $timezone ),
2010-08-21 19:31:46 -04:00
'$defloc' => $defloc ,
2010-10-19 23:52:05 -04:00
'$loc_checked' => $loc_checked ,
2010-08-20 01:04:18 -04:00
'$profile_in_dir' => $profile_in_dir ,
'$profile_in_net_dir' => $profile_in_net_dir ,
2010-08-08 02:54:22 -04:00
'$permissions' => t ( 'Default Post Permissions' ),
2011-04-13 20:11:24 -04:00
'$permdesc' => t ( " \x28 click to open/close \x29 " ),
2010-08-20 01:04:18 -04:00
'$visibility' => $profile [ 'net-publish' ],
2010-10-18 03:43:49 -04:00
'$aclselect' => populate_acl ( $a -> user , $celeb ),
2010-08-14 10:55:18 -04:00
'$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" ' : '' ),
2010-08-16 08:23:26 -04:00
'$sel_notify5' => (( $notify & NOTIFY_MAIL ) ? ' checked="checked" ' : '' ),
2010-12-20 03:27:00 -05:00
'$maxreq' => $maxreq ,
2011-03-15 20:31:49 -04:00
'$expire' => $expire ,
2011-03-20 20:54:50 -04:00
'$blockw_checked' => (( $blockwall ) ? '' : ' checked="checked" ' ),
2010-10-18 03:43:49 -04:00
'$theme' => $theme_selector ,
2011-04-18 02:27:11 -04:00
'$pagetype' => $pagetype ,
'$lbl_imap0' => t ( 'Email/Mailbox Setup' ),
'$imap_desc' => t ( " If you wish to communicate with email contacts using this service \x28 optional \x29 , please specify how to connect to your mailbox. " ),
'$lbl_imap1' => t ( 'IMAP server name:' ),
'$imap_server' => $mail_server ,
'$lbl_imap2' => t ( 'IMAP port:' ),
'$imap_port' => $mail_port ,
'$lbl_imap3' => t ( " Security \x28 TLS or SSL \x29 : " ),
'$imap_ssl' => $mail_ssl ,
'$lbl_imap4' => t ( 'Email login name:' ),
'$imap_user' => $mail_user ,
'$lbl_imap5' => t ( 'Email password:' ),
'$lbl_imap6' => t ( " Reply-to address \x28 Optional \x29 : " ),
'$imap_replyto' => $mail_replyto ,
'$lbl_imap7' => t ( 'Send public posts to all email contacts:' ),
2011-05-30 00:20:50 -04:00
'$lbl_imap8' => t ( 'Last successful email check:' ),
'$lbl_imap9' => (( $mail_chk === '0000-00-00 00:00:00' ) ? t ( 'never' ) : datetime_convert ( 'UTC' , date_default_timezone_get (), $mail_chk , t ( 'g A l F d Y' ))),
2011-04-18 02:27:11 -04:00
'$pubmail_checked' => (( $mail_pubmail ) ? ' checked="checked" ' : '' ),
2011-05-23 05:39:57 -04:00
'$mail_disabled' => (( $mail_disabled ) ? '<div class="info-message">' . t ( 'Email access is disabled on this site.' ) . '</div>' : '' ),
2011-04-18 23:20:04 -04:00
'$imap_disabled' => $imap_disabled
2010-07-30 09:09:20 -04:00
));
2010-07-01 19:48:07 -04:00
2010-12-23 17:40:32 -05:00
call_hooks ( 'settings_form' , $o );
$o .= '</form>' . " \r \n " ;
2010-12-22 23:23:41 -05:00
2010-07-01 19:48:07 -04:00
return $o ;
2010-12-22 23:23:41 -05:00
}}