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 ;
}
2011-10-11 21:24:37 -04:00
if (( $a -> argc > 1 ) && ( $a -> argv [ 1 ] == 'connectors' )) {
if ( x ( $_POST [ 'imap-submit' ])) {
$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' ] : '' );
$mail_disabled = (( function_exists ( 'imap_open' ) && ( ! get_config ( 'system' , 'imap_disabled' ))) ? 0 : 1 );
if ( get_config ( 'system' , 'dfrn_only' ))
$mail_disabled = 1 ;
if ( ! $mail_disabled ) {
$failed = false ;
$r = q ( " SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1 " ,
intval ( local_user ())
);
if ( ! count ( $r )) {
q ( " INSERT INTO `mailacct` (`uid`) VALUES (%d) " ,
intval ( local_user ())
);
}
if ( strlen ( $mail_pass )) {
$pass = '' ;
openssl_public_encrypt ( $mail_pass , $pass , $a -> user [ 'pubkey' ]);
q ( " UPDATE `mailacct` SET `pass` = '%s' WHERE `uid` = %d LIMIT 1 " ,
dbesc ( bin2hex ( $pass )),
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 ())
);
$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 ) {
$failed = true ;
notice ( t ( 'Failed to connect with email account using the settings provided.' ) . EOL );
}
}
}
if ( ! $failed )
info ( t ( 'Email settings updated.' ) . EOL );
}
}
call_hooks ( 'connector_settings_post' , $_POST );
return ;
}
2011-01-05 16:10:47 -05:00
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 );
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-07-06 02:23:43 -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, `hidewall` = %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 ),
2011-07-06 02:23:43 -04:00
intval ( $hidewall ),
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 ,
2011-07-06 19:47:55 -04:00
`hide-friends` = % 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 ),
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 " );
2011-10-19 18:08:16 -04:00
2010-08-20 01:04:18 -04:00
}
2011-10-20 08:43:33 -04:00
require_once ( 'include/profile_update.php' );
profile_change ();
2011-10-19 18:08:16 -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 = '' ;
2011-08-17 12:36:24 -04:00
nav_set_selected ( 'settings' );
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 ;
}
2011-07-06 06:10:00 -04:00
2011-10-10 09:28:34 -04:00
$tabs = array (
array (
'label' => t ( 'Account settings' ),
'url' => $a -> get_baseurl () . '/settings' ,
'sel' => (( $a -> argc == 1 ) ? 'active' : '' ),
),
2011-10-11 21:24:37 -04:00
array (
'label' => t ( 'Connector settings' ),
'url' => $a -> get_baseurl () . '/settings/connectors' ,
'sel' => (( $a -> argc > 1 ) && ( $a -> argv [ 1 ] === 'connectors' ) ? 'active' : '' ),
),
2011-10-10 09:28:34 -04:00
array (
'label' => t ( 'Plugin settings' ),
'url' => $a -> get_baseurl () . '/settings/addon' ,
'sel' => (( $a -> argc > 1 ) && ( $a -> argv [ 1 ] === 'addon' ) ? 'active' : '' ),
2011-10-11 21:24:37 -04:00
),
array (
'label' => t ( 'Export personal data' ),
'url' => $a -> get_baseurl () . '/uexport' ,
'sel' => ''
2011-10-10 09:28:34 -04:00
)
);
$tabtpl = get_markup_template ( " common_tabs.tpl " );
2011-07-06 06:10:00 -04:00
$tabs = replace_macros ( $tabtpl , array (
2011-10-10 09:28:34 -04:00
'$tabs' => $tabs ,
2011-07-06 06:10:00 -04:00
));
2010-07-01 19:48:07 -04:00
2010-12-25 02:44:17 -05:00
if (( $a -> argc > 1 ) && ( $a -> argv [ 1 ] === 'addon' )) {
2011-07-06 06:10:00 -04:00
$settings_addons = " " ;
2010-12-25 02:44:17 -05:00
$r = q ( " SELECT * FROM `hook` WHERE `hook` = 'plugin_settings' " );
if ( ! count ( $r ))
2011-07-06 06:10:00 -04:00
$settings_addons = t ( 'No Plugin settings configured' );
2010-12-25 02:44:17 -05:00
2011-07-06 06:10:00 -04:00
call_hooks ( 'plugin_settings' , $settings_addons );
$tpl = get_markup_template ( " settings_addons.tpl " );
$o .= replace_macros ( $tpl , array (
'$title' => t ( 'Plugin Settings' ),
'$tabs' => $tabs ,
'$settings_addons' => $settings_addons
));
2010-12-25 02:44:17 -05:00
return $o ;
}
2010-07-01 19:48:07 -04:00
2011-10-11 21:24:37 -04:00
if (( $a -> argc > 1 ) && ( $a -> argv [ 1 ] === 'connectors' )) {
2010-08-20 01:04:18 -04:00
2011-10-11 21:24:37 -04:00
$settings_connectors = " " ;
call_hooks ( 'connector_settings' , $settings_connectors );
2010-07-20 01:52:31 -04:00
2011-10-11 21:24:37 -04:00
$diasp_enabled = sprintf ( t ( 'Built-in support for %s connectivity is %s' ), t ( 'Diaspora' ), (( get_config ( 'system' , 'diaspora_enabled' )) ? t ( 'enabled' ) : t ( 'disabled' )));
$ostat_enabled = sprintf ( t ( 'Built-in support for %s connectivity is %s' ), t ( 'StatusNet' ), (( get_config ( 'system' , 'ostatus_disabled' )) ? t ( 'disabled' ) : t ( 'enabled' )));
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 );
2011-07-06 23:27:18 -04:00
if ( get_config ( 'system' , 'dfrn_only' ))
$mail_disabled = 1 ;
2011-04-18 23:20:04 -04:00
if ( ! $mail_disabled ) {
$r = q ( " SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1 " ,
local_user ()
);
}
else {
$r = null ;
}
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-10-11 21:24:37 -04:00
$tpl = get_markup_template ( " settings_connectors.tpl " );
$o .= replace_macros ( $tpl , array (
'$title' => t ( 'Connector Settings' ),
'$tabs' => $tabs ,
'$diasp_enabled' => $diasp_enabled ,
'$ostat_enabled' => $ostat_enabled ,
'$h_imap' => 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. " ),
'$imap_lastcheck' => array ( 'imap_lastcheck' , t ( 'Last successful email check:' ), $mail_chk , '' ),
'$mail_disabled' => (( $mail_disabled ) ? t ( 'Email access is disabled on this site.' ) : '' ),
'$mail_server' => array ( 'mail_server' , t ( 'IMAP server name:' ), $mail_server , '' ),
'$mail_port' => array ( 'mail_port' , t ( 'IMAP port:' ), $mail_port , '' ),
'$mail_ssl' => array ( 'mail_ssl' , t ( 'Security:' ), strtoupper ( $mail_ssl ), '' , array ( '' => t ( 'None' ), 'TSL' => 'TSL' , 'SSL' => 'SSL' )),
'$mail_user' => array ( 'mail_user' , t ( 'Email login name:' ), $mail_user , '' ),
'$mail_pass' => array ( 'mail_pass' , t ( 'Email password:' ), '' , '' ),
'$mail_replyto' => array ( 'mail_replyto' , t ( 'Reply-to address:' ), '' , 'Optional' ),
'$mail_pubmail' => array ( 'mail_pubmail' , t ( 'Send public posts to all email contacts:' ), $mail_pubmail , '' ),
'$submit' => t ( 'Submit' ),
'$settings_connectors' => $settings_connectors
));
return $o ;
}
require_once ( 'include/acl_selectors.php' );
$p = q ( " SELECT * FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1 " ,
intval ( local_user ())
);
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' ];
$openid = $a -> user [ 'openid' ];
$maxreq = $a -> user [ 'maxreq' ];
$expire = (( intval ( $a -> user [ 'expire' ])) ? $a -> user [ 'expire' ] : '' );
$blockwall = $a -> user [ 'blockwall' ];
if ( ! strlen ( $a -> user [ 'timezone' ]))
$timezone = date_default_timezone_get ();
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 (
2011-07-06 19:47:55 -04:00
'$page_normal' => array ( 'page-flags' , t ( 'Normal Account' ), PAGE_NORMAL ,
2011-07-06 06:10:00 -04:00
t ( 'This account is a normal personal profile' ),
( $a -> user [ 'page-flags' ] == PAGE_NORMAL )),
2011-07-06 19:47:55 -04:00
'$page_soapbox' => array ( 'page-flags' , t ( 'Soapbox Account' ), PAGE_SOAPBOX ,
2011-07-06 06:10:00 -04:00
t ( 'Automatically approve all connection/friend requests as read-only fans' ),
2011-07-06 19:47:55 -04:00
( $a -> user [ 'page-flags' ] == PAGE_SOAPBOX )),
2011-07-06 06:10:00 -04:00
2011-07-06 19:47:55 -04:00
'$page_community' => array ( 'page-flags' , t ( 'Community/Celebrity Account' ), PAGE_COMMUNITY ,
2011-07-06 06:10:00 -04:00
t ( 'Automatically approve all connection/friend requests as read-write fans' ),
( $a -> user [ 'page-flags' ] == PAGE_COMMUNITY )),
2011-07-06 19:47:55 -04:00
'$page_freelove' => array ( 'page-flags' , t ( 'Automatic Friend Account' ), PAGE_FREELOVE ,
2011-07-06 06:10:00 -04:00
t ( 'Automatically approve all connection/friend requests as friends' ),
( $a -> user [ 'page-flags' ] == PAGE_FREELOVE )),
2010-10-18 03:43:49 -04:00
));
2010-11-28 23:58:23 -05:00
$noid = get_config ( 'system' , 'no_openid' );
if ( $noid ) {
2011-07-06 06:10:00 -04:00
$openid_field = false ;
2010-11-28 23:58:23 -05:00
}
else {
2011-07-06 06:10:00 -04:00
$openid_field = array ( 'openid_url' , t ( 'OpenID:' ), $openid , t ( " \x28 Optional \x29 Allow this OpenID to login to this account. " ));
2010-11-28 23:58:23 -05:00
}
2011-07-06 06:10:00 -04:00
$opt_tpl = get_markup_template ( " field_yesno.tpl " );
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 {
$profile_in_dir = replace_macros ( $opt_tpl , array (
2011-07-06 06:10:00 -04:00
'$field' => array ( 'profile_in_directory' , t ( 'Publish your default profile in your local site directory?' ), $profile [ 'publish' ], '' , array ( t ( 'No' ), t ( 'Yes' ))),
2011-01-03 01:09:54 -05:00
));
}
2010-08-20 01:04:18 -04:00
if ( strlen ( get_config ( 'system' , 'directory_submit_url' ))) {
$profile_in_net_dir = replace_macros ( $opt_tpl , array (
2011-07-06 06:10:00 -04:00
'$field' => array ( 'profile_in_netdirectory' , t ( 'Publish your default profile in the global social directory?' ), $profile [ 'net-publish' ], '' , array ( t ( 'No' ), t ( 'Yes' ))),
2010-08-20 01:04:18 -04:00
));
}
else
$profile_in_net_dir = '' ;
2011-06-19 19:47:03 -04:00
$hide_friends = replace_macros ( $opt_tpl , array (
2011-07-06 06:10:00 -04:00
'$field' => array ( 'hide-friends' , t ( 'Hide your contact/friend list from viewers of your default profile?' ), $profile [ 'hide-friends' ], '' , array ( t ( 'No' ), t ( 'Yes' ))),
2011-06-19 19:47:03 -04:00
));
$hide_wall = replace_macros ( $opt_tpl , array (
2011-07-06 06:10:00 -04:00
'$field' => array ( 'hidewall' , t ( 'Hide profile details and all your messages from unknown viewers?' ), $a -> user [ 'hidewall' ], '' , array ( t ( 'No' ), t ( 'Yes' ))),
2011-06-19 19:47:03 -04:00
));
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
2011-01-04 00:55:21 -05:00
$default_theme = get_config ( 'system' , 'theme' );
if ( ! $default_theme )
$default_theme = 'default' ;
2011-07-06 06:10:00 -04:00
$themes = array ();
$files = glob ( 'view/theme/*' );
2010-08-16 08:23:26 -04:00
if ( $files ) {
foreach ( $files as $file ) {
$f = basename ( $file );
2011-06-05 21:05:25 -04:00
$theme_name = (( file_exists ( $file . '/experimental' )) ? sprintf ( " %s - \x28 Experimental \x29 " , $f ) : $f );
2011-07-06 06:10:00 -04:00
$themes [ $f ] = $theme_name ;
2010-08-16 08:23:26 -04:00
}
}
2011-07-06 06:10:00 -04:00
$theme_selected = ( ! x ( $_SESSION , 'theme' ) ? $default_theme : $_SESSION [ 'theme' ]);
2011-04-14 23:37:42 -04:00
2010-08-16 08:23:26 -04:00
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-07-06 06:10:00 -04:00
2011-03-22 06:07:46 -04:00
2010-09-19 00:11:18 -04:00
$o .= replace_macros ( $stpl , array (
2011-07-06 06:10:00 -04:00
'$tabs' => $tabs ,
'$ptitle' => t ( 'Account Settings' ),
'$submit' => t ( 'Submit' ),
2010-07-01 19:48:07 -04:00
'$baseurl' => $a -> get_baseurl (),
2010-11-17 18:41:18 -05:00
'$uid' => local_user (),
2011-07-06 06:10:00 -04:00
2011-04-08 02:10:43 -04:00
'$nickname_block' => $prof_addr ,
2011-07-06 06:10:00 -04:00
'$h_pass' => t ( 'Password Settings' ),
'$password1' => array ( 'npassword' , t ( 'New Password:' ), '' , '' ),
'$password2' => array ( 'confirm' , t ( 'Confirm:' ), '' , t ( 'Leave password fields blank unless changing' )),
2011-07-13 02:14:38 -04:00
'$oid_enable' => ( ! get_config ( 'system' , 'no_openid' )),
2011-07-06 06:10:00 -04:00
'$openid' => $openid_field ,
'$h_basic' => t ( 'Basic Settings' ),
'$username' => array ( 'username' , t ( 'Full Name:' ), $username , '' ),
'$email' => array ( 'email' , t ( 'Email Address:' ), $email , '' ),
'$timezone' => array ( 'timezone_select' , t ( 'Your Timezone:' ), select_timezone ( $timezone ), '' ),
'$defloc' => array ( 'defloc' , t ( 'Default Post Location:' ), $defloc , '' ),
'$allowloc' => array ( 'allow_location' , t ( 'Use Browser Location:' ), ( $a -> user [ 'allow_location' ] == 1 ), '' ),
'$theme' => array ( 'theme' , t ( 'Display Theme:' ), $theme_selected , '' , $themes ),
'$h_prv' => t ( 'Security and Privacy Settings' ),
'$maxreq' => array ( 'maxreq' , t ( 'Maximum Friend Requests/Day:' ), $maxreq , t ( " \x28 to prevent spam abuse \x29 " )),
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 ),
2011-07-06 06:10:00 -04:00
'$blockwall' => array ( 'blockwall' , t ( 'Allow friends to post to your profile page:' ), ! $blockwall , '' ),
'$expire' => array ( 'expire' , t ( " Automatically expire posts after days: " ), $expire , t ( 'If empty, posts will not expire. Expired posts will be deleted' )),
'$profile_in_dir' => $profile_in_dir ,
'$profile_in_net_dir' => $profile_in_net_dir ,
'$hide_friends' => $hide_friends ,
'$hide_wall' => $hide_wall ,
'$h_not' => t ( 'Notification Settings' ),
'$lbl_not' => t ( 'Send a notification email when:' ),
2011-07-12 08:09:07 -04:00
'$notify1' => array ( 'notify1' , t ( 'You receive an introduction' ), ( $notify & NOTIFY_INTRO ), NOTIFY_INTRO , '' ),
'$notify2' => array ( 'notify2' , t ( 'Your introductions are confirmed' ), ( $notify & NOTIFY_CONFIRM ), NOTIFY_CONFIRM , '' ),
'$notify3' => array ( 'notify3' , t ( 'Someone writes on your profile wall' ), ( $notify & NOTIFY_WALL ), NOTIFY_WALL , '' ),
'$notify4' => array ( 'notify4' , t ( 'Someone writes a followup comment' ), ( $notify & NOTIFY_COMMENT ), NOTIFY_COMMENT , '' ),
'$notify5' => array ( 'notify5' , t ( 'You receive a private message' ), ( $notify & NOTIFY_MAIL ), NOTIFY_MAIL , '' ),
2011-07-06 06:10:00 -04:00
'$h_advn' => t ( 'Advanced Page Settings' ),
'$pagetype' => $pagetype ,
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
}}