2013-07-25 23:00:04 +00:00
< ? php /** @file */
2010-07-01 23:48:07 +00:00
2013-07-26 00:52:55 +00:00
require_once ( 'include/zot.php' );
2013-07-17 05:48:05 +00:00
2012-03-30 13:45:02 +00:00
function get_theme_config_file ( $theme ){
2012-11-07 22:09:51 +00:00
$base_theme = get_app () -> theme_info [ 'extends' ];
2012-03-30 13:45:02 +00:00
2012-08-06 18:31:37 +00:00
if ( file_exists ( " view/theme/ $theme /php/config.php " )){
return " view/theme/ $theme /php/config.php " ;
2012-03-30 13:45:02 +00:00
}
2012-11-07 22:09:51 +00:00
if ( file_exists ( " view/theme/ $base_theme /php/config.php " )){
return " view/theme/ $base_theme /php/config.php " ;
}
2012-03-30 13:45:02 +00:00
return null ;
}
2013-07-17 05:48:05 +00:00
function settings_init ( & $a ) {
2013-12-19 10:16:14 +00:00
if ( ! local_user ())
return ;
2012-05-28 04:01:58 +00:00
2013-12-19 10:16:14 +00:00
$a -> profile_uid = local_user ();
2012-10-30 04:59:49 +00:00
// default is channel settings in the absence of other arguments
if ( argc () == 1 ) {
2013-01-24 05:15:40 +00:00
// We are setting these values - don't use the argc(), argv() functions here
2012-10-30 04:59:49 +00:00
$a -> argc = 2 ;
$a -> argv [] = 'channel' ;
}
2013-10-01 05:01:11 +00:00
2013-08-22 08:00:54 +00:00
2010-07-01 23:48:07 +00:00
}
function settings_post ( & $a ) {
2012-01-27 00:52:12 +00:00
if ( ! local_user ())
return ;
2013-11-29 22:08:37 +00:00
// logger('mod_settings: ' . print_r($_REQUEST,true));
2012-01-27 00:52:12 +00:00
if ( x ( $_SESSION , 'submanage' ) && intval ( $_SESSION [ 'submanage' ]))
2010-07-01 23:48:07 +00:00
return ;
2010-12-23 04:23:41 +00:00
2012-10-30 02:31:38 +00:00
if (( argc () > 1 ) && ( argv ( 1 ) === 'oauth' ) && x ( $_POST , 'remove' )){
2012-03-12 20:17:37 +00:00
check_form_security_token_redirectOnErr ( '/settings/oauth' , 'settings_oauth' );
2011-11-07 16:38:30 +00:00
$key = $_POST [ 'remove' ];
q ( " DELETE FROM tokens WHERE id='%s' AND uid=%d " ,
dbesc ( $key ),
local_user ());
2012-03-15 04:20:20 +00:00
goaway ( $a -> get_baseurl ( true ) . " /settings/oauth/ " );
2011-11-07 16:38:30 +00:00
return ;
}
2012-10-30 02:31:38 +00:00
if (( argc () > 2 ) && ( argv ( 1 ) === 'oauth' ) && ( argv ( 2 ) === 'edit' || ( argv ( 2 ) === 'add' )) && x ( $_POST , 'submit' )) {
2011-11-07 16:38:30 +00:00
2012-03-12 20:17:37 +00:00
check_form_security_token_redirectOnErr ( '/settings/oauth' , 'settings_oauth' );
2011-11-07 16:38:30 +00:00
$name = (( x ( $_POST , 'name' )) ? $_POST [ 'name' ] : '' );
$key = (( x ( $_POST , 'key' )) ? $_POST [ 'key' ] : '' );
$secret = (( x ( $_POST , 'secret' )) ? $_POST [ 'secret' ] : '' );
$redirect = (( x ( $_POST , 'redirect' )) ? $_POST [ 'redirect' ] : '' );
$icon = (( x ( $_POST , 'icon' )) ? $_POST [ 'icon' ] : '' );
2013-09-24 01:27:23 +00:00
$ok = true ;
if ( $name == '' ) {
$ok = false ;
notice ( t ( 'Name is required' ) . EOL );
}
if ( $key == '' || $secret == '' ) {
$ok = false ;
notice ( t ( 'Key and Secret are required' ) . EOL );
}
if ( $ok ) {
2011-11-07 16:38:30 +00:00
if ( $_POST [ 'submit' ] == t ( " Update " )){
$r = q ( " UPDATE clients SET
client_id = '%s' ,
pw = '%s' ,
name = '%s' ,
redirect_uri = '%s' ,
icon = '%s' ,
uid =% d
WHERE client_id = '%s' " ,
dbesc ( $key ),
dbesc ( $secret ),
dbesc ( $name ),
dbesc ( $redirect ),
dbesc ( $icon ),
local_user (),
dbesc ( $key ));
} else {
$r = q ( " INSERT INTO clients
( client_id , pw , name , redirect_uri , icon , uid )
VALUES ( '%s' , '%s' , '%s' , '%s' , '%s' , % d ) " ,
dbesc ( $key ),
dbesc ( $secret ),
dbesc ( $name ),
dbesc ( $redirect ),
dbesc ( $icon ),
local_user ());
}
}
2012-03-15 04:20:20 +00:00
goaway ( $a -> get_baseurl ( true ) . " /settings/oauth/ " );
2011-11-07 16:38:30 +00:00
return ;
}
2012-11-06 01:17:21 +00:00
if (( argc () > 1 ) && ( argv ( 1 ) == 'featured' )) {
check_form_security_token_redirectOnErr ( '/settings/featured' , 'settings_featured' );
2013-02-01 04:39:14 +00:00
call_hooks ( 'feature_settings_post' , $_POST );
2013-06-27 00:31:02 +00:00
build_sync_packet ();
2011-01-05 21:10:47 +00:00
return ;
}
2012-11-04 04:37:19 +00:00
if (( argc () > 1 ) && ( argv ( 1 ) === 'features' )) {
check_form_security_token_redirectOnErr ( '/settings/features' , 'settings_features' );
foreach ( $_POST as $k => $v ) {
if ( strpos ( $k , 'feature_' ) === 0 ) {
set_pconfig ( local_user (), 'feature' , substr ( $k , 8 ),(( intval ( $v )) ? 1 : 0 ));
}
}
2013-06-27 00:31:02 +00:00
build_sync_packet ();
2012-11-04 04:37:19 +00:00
return ;
}
2012-10-30 02:31:38 +00:00
if (( argc () > 1 ) && ( argv ( 1 ) == 'display' )) {
2012-03-30 13:45:02 +00:00
check_form_security_token_redirectOnErr ( '/settings/display' , 'settings_display' );
2012-11-07 22:09:51 +00:00
$theme = (( x ( $_POST , 'theme' )) ? notags ( trim ( $_POST [ 'theme' ])) : $a -> channel [ 'channel_theme' ]);
2012-09-10 04:17:06 +00:00
$mobile_theme = (( x ( $_POST , 'mobile_theme' )) ? notags ( trim ( $_POST [ 'mobile_theme' ])) : '' );
2012-03-30 13:45:02 +00:00
$nosmile = (( x ( $_POST , 'nosmile' )) ? intval ( $_POST [ 'nosmile' ]) : 0 );
$browser_update = (( x ( $_POST , 'browser_update' )) ? intval ( $_POST [ 'browser_update' ]) : 0 );
$browser_update = $browser_update * 1000 ;
if ( $browser_update < 10000 )
2012-09-10 04:17:06 +00:00
$browser_update = 10000 ;
2012-03-30 13:45:02 +00:00
2013-02-11 01:10:58 +00:00
$itemspage = (( x ( $_POST , 'itemspage' )) ? intval ( $_POST [ 'itemspage' ]) : 20 );
2012-12-17 04:20:29 +00:00
if ( $itemspage > 100 )
$itemspage = 100 ;
2012-03-30 13:45:02 +00:00
2012-09-10 04:17:06 +00:00
if ( $mobile_theme !== '' ) {
set_pconfig ( local_user (), 'system' , 'mobile_theme' , $mobile_theme );
}
2012-03-30 13:45:02 +00:00
set_pconfig ( local_user (), 'system' , 'update_interval' , $browser_update );
2012-12-17 04:20:29 +00:00
set_pconfig ( local_user (), 'system' , 'itemspage' , $itemspage );
2012-03-30 13:45:02 +00:00
set_pconfig ( local_user (), 'system' , 'no_smilies' , $nosmile );
2012-11-07 22:09:51 +00:00
if ( $theme == $a -> channel [ 'channel_theme' ]){
2012-04-04 05:01:52 +00:00
// call theme_post only if theme has not been changed
2012-03-30 13:45:02 +00:00
if ( ( $themeconfigfile = get_theme_config_file ( $theme )) != null ){
require_once ( $themeconfigfile );
theme_post ( $a );
}
}
2012-11-07 22:09:51 +00:00
$r = q ( " UPDATE channel SET channel_theme = '%s' WHERE channel_id = %d LIMIT 1 " ,
2012-03-30 13:45:02 +00:00
dbesc ( $theme ),
intval ( local_user ())
);
2012-04-04 05:01:52 +00:00
call_hooks ( 'display_settings_post' , $_POST );
2013-06-27 00:31:02 +00:00
build_sync_packet ();
2012-03-30 13:45:02 +00:00
goaway ( $a -> get_baseurl ( true ) . '/settings/display' );
return ; // NOTREACHED
}
2011-10-12 01:24:37 +00:00
2012-11-06 01:17:21 +00:00
if ( argc () > 1 && argv ( 1 ) === 'account' ) {
check_form_security_token_redirectOnErr ( '/settings/account' , 'settings_account' );
2012-03-12 20:17:37 +00:00
2012-11-06 01:17:21 +00:00
call_hooks ( 'settings_account' , $_POST );
$errs = array ();
2011-01-05 21:10:47 +00:00
2012-11-06 01:17:21 +00:00
if (( x ( $_POST , 'npassword' )) || ( x ( $_POST , 'confirm' ))) {
2010-07-01 23:48:07 +00:00
2012-11-06 01:17:21 +00:00
$newpass = $_POST [ 'npassword' ];
$confirm = $_POST [ 'confirm' ];
if ( $newpass != $confirm ) {
$errs [] = t ( 'Passwords do not match. Password unchanged.' );
}
2010-07-01 23:48:07 +00:00
2012-11-06 01:17:21 +00:00
if (( ! x ( $newpass )) || ( ! x ( $confirm ))) {
$errs [] = t ( 'Empty passwords are not allowed. Password unchanged.' );
}
if ( ! $errs ) {
$salt = random_string ( 32 );
$password_encoded = hash ( 'whirlpool' , $salt . $newpass );
$r = q ( " update account set account_salt = '%s', account_password = '%s'
where account_id = % d limit 1 " ,
dbesc ( $salt ),
dbesc ( $password_encoded ),
intval ( get_account_id ())
);
if ( $r )
info ( t ( 'Password changed.' ) . EOL );
else
$errs [] = t ( 'Password update failed. Please try again.' );
}
2010-07-01 23:48:07 +00:00
}
2012-11-06 01:17:21 +00:00
if ( $errs ) {
foreach ( $errs as $err )
notice ( $err . EOL );
$errs = array ();
2010-07-01 23:48:07 +00:00
}
2012-11-06 01:17:21 +00:00
$email = (( x ( $_POST , 'email' )) ? trim ( notags ( $_POST [ 'email' ])) : '' );
2013-11-18 22:06:34 +00:00
$account = $a -> get_account ();
2012-11-06 01:17:21 +00:00
if ( $email != $account [ 'account_email' ]) {
if ( ! valid_email ( $email ))
$errs [] = t ( 'Not valid email.' );
$adm = trim ( get_config ( 'system' , 'admin_email' ));
if (( $adm ) && ( strcasecmp ( $email , $adm ) == 0 )) {
2013-06-26 01:15:17 +00:00
$errs [] = t ( 'Protected email address. Cannot change to that email.' );
2012-11-06 01:17:21 +00:00
$email = $a -> user [ 'email' ];
}
if ( ! $errs ) {
$r = q ( " update account set account_email = '%s' where account_id = %d limit 1 " ,
dbesc ( $email ),
intval ( $account [ 'account_id' ])
);
if ( ! $r )
$errs [] = t ( 'System failure storing new email. Please try again.' );
}
2010-07-01 23:48:07 +00:00
}
2012-11-06 01:17:21 +00:00
if ( $errs ) {
foreach ( $errs as $err )
notice ( $err . EOL );
}
goaway ( $a -> get_baseurl ( true ) . '/settings/account' );
2010-07-01 23:48:07 +00:00
}
2012-11-06 01:17:21 +00:00
check_form_security_token_redirectOnErr ( '/settings' , 'settings' );
call_hooks ( 'settings_post' , $_POST );
2012-03-30 13:45:02 +00:00
2010-11-17 23:41:18 +00:00
$username = (( x ( $_POST , 'username' )) ? notags ( trim ( $_POST [ 'username' ])) : '' );
$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 08:27:00 +00:00
$maxreq = (( x ( $_POST , 'maxreq' )) ? intval ( $_POST [ 'maxreq' ]) : 0 );
2011-03-16 00:31:49 +00:00
$expire = (( x ( $_POST , 'expire' )) ? intval ( $_POST [ 'expire' ]) : 0 );
2013-11-22 01:23:14 +00:00
$def_group = (( x ( $_POST , 'group-selection' )) ? notags ( trim ( $_POST [ 'group-selection' ])) : '' );
2012-02-26 22:39:29 +00:00
2011-11-17 14:53:59 +00:00
$expire_items = (( x ( $_POST , 'expire_items' )) ? intval ( $_POST [ 'expire_items' ]) : 0 );
2011-11-22 03:01:05 +00:00
$expire_starred = (( x ( $_POST , 'expire_starred' )) ? intval ( $_POST [ 'expire_starred' ]) : 0 );
2011-11-17 14:53:59 +00:00
$expire_photos = (( x ( $_POST , 'expire_photos' )) ? intval ( $_POST [ 'expire_photos' ]) : 0 );
2012-05-29 08:14:53 +00:00
$expire_network_only = (( x ( $_POST , 'expire_network_only' )) ? intval ( $_POST [ 'expire_network_only' ]) : 0 );
2010-11-17 23:41:18 +00:00
$allow_location = ((( x ( $_POST , 'allow_location' )) && ( intval ( $_POST [ 'allow_location' ]) == 1 )) ? 1 : 0 );
2013-07-29 12:37:05 +00:00
2010-11-17 23:41:18 +00:00
$publish = ((( x ( $_POST , 'profile_in_directory' )) && ( intval ( $_POST [ 'profile_in_directory' ]) == 1 )) ? 1 : 0 );
$page_flags = ((( x ( $_POST , 'page-flags' )) && ( intval ( $_POST [ 'page-flags' ]))) ? intval ( $_POST [ 'page-flags' ]) : 0 );
2011-03-21 00:54:50 +00:00
$blockwall = ((( x ( $_POST , 'blockwall' )) && ( intval ( $_POST [ 'blockwall' ]) == 1 )) ? 0 : 1 ); // this setting is inverted!
2011-10-25 04:11:05 +00:00
$blocktags = ((( x ( $_POST , 'blocktags' )) && ( intval ( $_POST [ 'blocktags' ]) == 1 )) ? 0 : 1 ); // this setting is inverted!
2012-03-31 07:57:59 +00:00
$unkmail = ((( x ( $_POST , 'unkmail' )) && ( intval ( $_POST [ 'unkmail' ]) == 1 )) ? 1 : 0 );
$cntunkmail = (( x ( $_POST , 'cntunkmail' )) ? intval ( $_POST [ 'cntunkmail' ]) : 0 );
2011-11-28 23:11:59 +00:00
$suggestme = (( x ( $_POST , 'suggestme' )) ? intval ( $_POST [ 'suggestme' ]) : 0 );
2012-08-31 01:17:38 +00:00
$hide_friends = (( $_POST [ 'hide_friends' ] == 1 ) ? 1 : 0 );
2011-11-28 23:11:59 +00:00
$hidewall = (( $_POST [ 'hidewall' ] == 1 ) ? 1 : 0 );
2012-04-13 01:15:46 +00:00
$post_newfriend = (( $_POST [ 'post_newfriend' ] == 1 ) ? 1 : 0 );
2012-05-01 02:01:41 +00:00
$post_joingroup = (( $_POST [ 'post_joingroup' ] == 1 ) ? 1 : 0 );
2012-04-13 04:10:32 +00:00
$post_profilechange = (( $_POST [ 'post_profilechange' ] == 1 ) ? 1 : 0 );
2013-09-23 03:38:24 +00:00
$adult = (( $_POST [ 'adult' ] == 1 ) ? 1 : 0 );
2012-03-30 13:45:02 +00:00
2013-09-23 03:38:24 +00:00
$channel = $a -> get_channel ();
$pageflags = $channel [ 'channel_pageflags' ];
$existing_adult = (( $pageflags & PAGE_ADULT ) ? 1 : 0 );
if ( $adult != $existing_adult )
$pageflags = ( $pageflags ^ PAGE_ADULT );
2013-08-19 03:20:03 +00:00
2012-11-02 03:23:49 +00:00
$arr = array ();
2013-10-01 04:49:26 +00:00
$arr [ 'channel_r_stream' ] = (( $_POST [ 'view_stream' ]) ? $_POST [ 'view_stream' ] : 0 );
$arr [ 'channel_r_profile' ] = (( $_POST [ 'view_profile' ]) ? $_POST [ 'view_profile' ] : 0 );
$arr [ 'channel_r_photos' ] = (( $_POST [ 'view_photos' ]) ? $_POST [ 'view_photos' ] : 0 );
$arr [ 'channel_r_abook' ] = (( $_POST [ 'view_contacts' ]) ? $_POST [ 'view_contacts' ] : 0 );
$arr [ 'channel_w_stream' ] = (( $_POST [ 'send_stream' ]) ? $_POST [ 'send_stream' ] : 0 );
$arr [ 'channel_w_wall' ] = (( $_POST [ 'post_wall' ]) ? $_POST [ 'post_wall' ] : 0 );
$arr [ 'channel_w_tagwall' ] = (( $_POST [ 'tag_deliver' ]) ? $_POST [ 'tag_deliver' ] : 0 );
$arr [ 'channel_w_comment' ] = (( $_POST [ 'post_comments' ]) ? $_POST [ 'post_comments' ] : 0 );
$arr [ 'channel_w_mail' ] = (( $_POST [ 'post_mail' ]) ? $_POST [ 'post_mail' ] : 0 );
$arr [ 'channel_w_photos' ] = (( $_POST [ 'post_photos' ]) ? $_POST [ 'post_photos' ] : 0 );
$arr [ 'channel_w_chat' ] = (( $_POST [ 'chat' ]) ? $_POST [ 'chat' ] : 0 );
$arr [ 'channel_a_delegate' ] = (( $_POST [ 'delegate' ]) ? $_POST [ 'delegate' ] : 0 );
$arr [ 'channel_r_storage' ] = (( $_POST [ 'view_storage' ]) ? $_POST [ 'view_storage' ] : 0 );
$arr [ 'channel_w_storage' ] = (( $_POST [ 'write_storage' ]) ? $_POST [ 'write_storage' ] : 0 );
$arr [ 'channel_r_pages' ] = (( $_POST [ 'view_pages' ]) ? $_POST [ 'view_pages' ] : 0 );
$arr [ 'channel_w_pages' ] = (( $_POST [ 'write_pages' ]) ? $_POST [ 'write_pages' ] : 0 );
$arr [ 'channel_a_republish' ] = (( $_POST [ 'republish' ]) ? $_POST [ 'republish' ] : 0 );
2012-12-31 23:47:51 +00:00
$defperms = 0 ;
if ( x ( $_POST [ 'def_view_stream' ]))
$defperms += $_POST [ 'def_view_stream' ];
if ( x ( $_POST [ 'def_view_profile' ]))
$defperms += $_POST [ 'def_view_profile' ];
if ( x ( $_POST [ 'def_view_photos' ]))
$defperms += $_POST [ 'def_view_photos' ];
if ( x ( $_POST [ 'def_view_contacts' ]))
$defperms += $_POST [ 'def_view_contacts' ];
if ( x ( $_POST [ 'def_send_stream' ]))
$defperms += $_POST [ 'def_send_stream' ];
if ( x ( $_POST [ 'def_post_wall' ]))
$defperms += $_POST [ 'def_post_wall' ];
if ( x ( $_POST [ 'def_tag_deliver' ]))
$defperms += $_POST [ 'def_tag_deliver' ];
if ( x ( $_POST [ 'def_post_comments' ]))
$defperms += $_POST [ 'def_post_comments' ];
if ( x ( $_POST [ 'def_post_mail' ]))
$defperms += $_POST [ 'def_post_mail' ];
if ( x ( $_POST [ 'def_post_photos' ]))
$defperms += $_POST [ 'def_post_photos' ];
if ( x ( $_POST [ 'def_chat' ]))
$defperms += $_POST [ 'def_chat' ];
if ( x ( $_POST [ 'def_delegate' ]))
$defperms += $_POST [ 'def_delegate' ];
if ( x ( $_POST [ 'def_view_storage' ]))
$defperms += $_POST [ 'def_view_storage' ];
if ( x ( $_POST [ 'def_write_storage' ]))
$defperms += $_POST [ 'def_write_storage' ];
2013-01-30 02:01:33 +00:00
if ( x ( $_POST [ 'def_view_pages' ]))
$defperms += $_POST [ 'def_view_pages' ];
if ( x ( $_POST [ 'def_write_pages' ]))
$defperms += $_POST [ 'def_write_pages' ];
2013-10-01 04:49:26 +00:00
if ( x ( $_POST [ 'def_republish' ]))
$defperms += $_POST [ 'def_republish' ];
2012-11-02 03:23:49 +00:00
2010-08-14 14:55:18 +00:00
$notify = 0 ;
2010-11-17 23:41:18 +00:00
if ( x ( $_POST , 'notify1' ))
2010-08-14 14:55:18 +00:00
$notify += intval ( $_POST [ 'notify1' ]);
2010-11-17 23:41:18 +00:00
if ( x ( $_POST , 'notify2' ))
2010-08-14 14:55:18 +00:00
$notify += intval ( $_POST [ 'notify2' ]);
2010-11-17 23:41:18 +00:00
if ( x ( $_POST , 'notify3' ))
2010-08-14 14:55:18 +00:00
$notify += intval ( $_POST [ 'notify3' ]);
2010-11-17 23:41:18 +00:00
if ( x ( $_POST , 'notify4' ))
2010-08-14 14:55:18 +00:00
$notify += intval ( $_POST [ 'notify4' ]);
2010-11-17 23:41:18 +00:00
if ( x ( $_POST , 'notify5' ))
2010-08-14 14:55:18 +00:00
$notify += intval ( $_POST [ 'notify5' ]);
2012-01-04 01:29:07 +00:00
if ( x ( $_POST , 'notify6' ))
$notify += intval ( $_POST [ 'notify6' ]);
if ( x ( $_POST , 'notify7' ))
$notify += intval ( $_POST [ 'notify7' ]);
2012-07-20 04:09:40 +00:00
if ( x ( $_POST , 'notify8' ))
$notify += intval ( $_POST [ 'notify8' ]);
2010-08-14 14:55:18 +00:00
2010-09-09 03:14:17 +00:00
2013-02-08 02:26:38 +00:00
$channel = $a -> get_channel ();
2010-07-01 23:48:07 +00:00
$err = '' ;
2011-01-25 02:18:47 +00:00
$name_change = false ;
2013-02-08 02:26:38 +00:00
if ( $username != $channel [ 'channel_name' ]) {
2011-01-25 02:18:47 +00:00
$name_change = true ;
2013-02-08 02:53:51 +00:00
require_once ( 'include/identity.php' );
$err = validate_channelname ( $username );
if ( $err ) {
notice ( $err );
return ;
}
2010-07-01 23:48:07 +00:00
}
2010-10-17 03:38:27 +00:00
2013-02-08 02:26:38 +00:00
if ( $timezone != $channel [ 'channel_timezone' ]) {
2010-07-01 23:48:07 +00:00
if ( strlen ( $timezone ))
date_default_timezone_set ( $timezone );
}
2010-08-08 06:54:22 +00:00
2010-09-09 03:14:17 +00: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 06:54:22 +00:00
2013-02-03 00:10:27 +00:00
set_pconfig ( local_user (), 'system' , 'use_browser_location' , $allow_location );
2011-11-28 23:11:59 +00:00
set_pconfig ( local_user (), 'system' , 'suggestme' , $suggestme );
2012-04-13 01:15:46 +00:00
set_pconfig ( local_user (), 'system' , 'post_newfriend' , $post_newfriend );
2012-05-01 02:01:41 +00:00
set_pconfig ( local_user (), 'system' , 'post_joingroup' , $post_joingroup );
2012-04-13 04:10:32 +00:00
set_pconfig ( local_user (), 'system' , 'post_profilechange' , $post_profilechange );
2013-06-04 08:27:50 +00:00
set_pconfig ( local_user (), 'system' , 'blocktags' , $blocktags );
2011-11-28 23:11:59 +00:00
2013-07-29 12:37:05 +00:00
2013-11-29 22:08:37 +00:00
$r = q ( " update channel set channel_name = '%s', channel_pageflags = %d, channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d, channel_default_group = '%s', channel_r_stream = %d, channel_r_profile = %d, channel_r_photos = %d, channel_r_abook = %d, channel_w_stream = %d, channel_w_wall = %d, channel_w_tagwall = %d, channel_w_comment = %d, channel_w_mail = %d, channel_w_photos = %d, channel_w_chat = %d, channel_a_delegate = %d, channel_r_storage = %d, channel_w_storage = %d, channel_r_pages = %d, channel_w_pages = %d, channel_a_republish = %d, channel_allow_cid = '%s', channel_allow_gid = '%s', channel_deny_cid = '%s', channel_deny_gid = '%s' where channel_id = %d limit 1 " ,
2013-02-08 02:26:38 +00:00
dbesc ( $username ),
2013-09-23 03:38:24 +00:00
intval ( $pageflags ),
2013-02-03 00:10:27 +00:00
dbesc ( $timezone ),
2013-05-29 00:16:16 +00:00
dbesc ( $defloc ),
2013-03-21 08:02:10 +00:00
intval ( $notify ),
2013-02-03 00:10:27 +00:00
intval ( $unkmail ),
intval ( $maxreq ),
2013-02-01 01:02:47 +00:00
intval ( $expire ),
2013-11-22 01:23:14 +00:00
dbesc ( $def_group ),
2012-11-02 03:23:49 +00:00
intval ( $arr [ 'channel_r_stream' ]),
intval ( $arr [ 'channel_r_profile' ]),
intval ( $arr [ 'channel_r_photos' ]),
intval ( $arr [ 'channel_r_abook' ]),
intval ( $arr [ 'channel_w_stream' ]),
intval ( $arr [ 'channel_w_wall' ]),
intval ( $arr [ 'channel_w_tagwall' ]),
intval ( $arr [ 'channel_w_comment' ]),
intval ( $arr [ 'channel_w_mail' ]),
intval ( $arr [ 'channel_w_photos' ]),
intval ( $arr [ 'channel_w_chat' ]),
2012-12-19 03:10:56 +00:00
intval ( $arr [ 'channel_a_delegate' ]),
2013-01-30 02:01:33 +00:00
intval ( $arr [ 'channel_r_storage' ]),
intval ( $arr [ 'channel_w_storage' ]),
intval ( $arr [ 'channel_r_pages' ]),
intval ( $arr [ 'channel_w_pages' ]),
2013-10-01 04:49:26 +00:00
intval ( $arr [ 'channel_a_republish' ]),
2013-11-29 22:08:37 +00:00
dbesc ( $str_contact_allow ),
dbesc ( $str_group_allow ),
dbesc ( $str_contact_deny ),
dbesc ( $str_group_deny ),
2012-11-02 03:23:49 +00:00
intval ( local_user ())
);
2010-08-08 06:54:22 +00:00
if ( $r )
2011-05-23 09:39:57 +00:00
info ( t ( 'Settings updated.' ) . EOL );
2010-08-20 05:04:18 +00:00
$r = q ( " UPDATE `profile`
2011-06-19 23:47:03 +00:00
SET `publish` = % d ,
2012-08-31 01:17:38 +00:00
`hide_friends` = % d
WHERE `is_default` = 1 AND `uid` = % d LIMIT 1 " ,
2010-08-20 05:04:18 +00:00
intval ( $publish ),
2011-06-19 23:47:03 +00:00
intval ( $hide_friends ),
2010-10-18 21:34:59 +00:00
intval ( local_user ())
2010-08-20 05:04:18 +00:00
);
2013-02-08 02:26:38 +00:00
if ( $name_change ) {
$r = q ( " update xchan set xchan_name = '%s', xchan_name_date = '%s' where xchan_hash = '%s' limit 1 " ,
dbesc ( $username ),
dbesc ( datetime_convert ()),
dbesc ( $channel [ 'channel_hash' ])
);
$r = q ( " update profile set name = '%s' where uid = %d and is_default = 1 " ,
dbesc ( $username ),
intval ( $channel [ 'channel_id' ])
);
}
2012-12-19 03:10:56 +00:00
proc_run ( 'php' , 'include/directory.php' , local_user ());
2013-06-27 00:31:02 +00:00
build_sync_packet ();
2010-08-20 05:04:18 +00:00
2012-09-10 04:17:06 +00:00
//$_SESSION['theme'] = $theme;
2013-01-03 21:50:23 +00:00
if ( $email_changed && $a -> config [ 'system' ][ 'register_policy' ] == REGISTER_VERIFY ) {
2010-07-01 23:48:07 +00:00
// FIXME - set to un-verified, blocked and redirect to logout
2012-09-10 04:17:06 +00:00
// Why? Are we verifying people or email addresses?
2010-07-01 23:48:07 +00:00
}
2010-07-06 04:39:55 +00:00
2012-03-15 04:20:20 +00:00
goaway ( $a -> get_baseurl ( true ) . '/settings' );
2010-09-09 03:14:17 +00:00
return ; // NOTREACHED
2010-07-01 23:48:07 +00:00
}
if ( ! function_exists ( 'settings_content' )) {
function settings_content ( & $a ) {
2010-10-17 03:38:27 +00:00
2010-10-31 23:38:22 +00:00
$o = '' ;
2011-08-17 16:36:24 +00:00
nav_set_selected ( 'settings' );
2010-07-01 23:48:07 +00:00
2012-10-30 02:31:38 +00:00
if ( ! local_user ()) {
2012-01-27 00:52:12 +00:00
notice ( t ( 'Permission denied.' ) . EOL );
2013-11-03 06:56:29 +00:00
return login ();
2012-01-27 00:52:12 +00:00
}
2012-10-30 02:31:38 +00:00
2013-07-08 00:22:40 +00:00
$channel = $a -> get_channel ();
if ( $channel )
head_set_icon ( $channel [ 'xchan_photo_s' ]);
2012-10-30 02:31:38 +00:00
// if(x($_SESSION,'submanage') && intval($_SESSION['submanage'])) {
// notice( t('Permission denied.') . EOL );
// return;
// }
2011-07-06 10:10:00 +00:00
2012-04-12 06:38:55 +00:00
2011-07-06 10:10:00 +00:00
2012-10-30 02:31:38 +00:00
if (( argc () > 1 ) && ( argv ( 1 ) === 'oauth' )) {
2011-10-26 15:15:36 +00:00
2012-10-30 02:31:38 +00:00
if (( argc () > 2 ) && ( argv ( 2 ) === 'add' )) {
2011-11-07 16:38:30 +00:00
$tpl = get_markup_template ( " settings_oauth_edit.tpl " );
$o .= replace_macros ( $tpl , array (
2012-03-12 20:17:37 +00:00
'$form_security_token' => get_form_security_token ( " settings_oauth " ),
2011-11-07 16:38:30 +00:00
'$title' => t ( 'Add application' ),
'$submit' => t ( 'Submit' ),
'$cancel' => t ( 'Cancel' ),
2013-09-21 04:36:10 +00:00
'$name' => array ( 'name' , t ( 'Name' ), '' , t ( 'Name of application' )),
2013-09-24 01:27:23 +00:00
'$key' => array ( 'key' , t ( 'Consumer Key' ), random_string ( 16 ), t ( 'Automatically generated - change if desired. Max length 20' )),
'$secret' => array ( 'secret' , t ( 'Consumer Secret' ), random_string ( 16 ), t ( 'Automatically generated - change if desired. Max length 20' )),
2013-09-21 04:36:10 +00:00
'$redirect' => array ( 'redirect' , t ( 'Redirect' ), '' , t ( 'Redirect URI - leave blank unless your application specifically requires this' )),
'$icon' => array ( 'icon' , t ( 'Icon url' ), '' , t ( 'Optional' )),
2011-11-07 16:38:30 +00:00
));
return $o ;
}
2012-10-30 02:31:38 +00:00
if (( argc () > 3 ) && ( argv ( 2 ) === 'edit' )) {
2011-11-07 16:38:30 +00:00
$r = q ( " SELECT * FROM clients WHERE client_id='%s' AND uid=%d " ,
2012-10-30 02:31:38 +00:00
dbesc ( argv ( 3 )),
2011-11-07 16:38:30 +00:00
local_user ());
if ( ! count ( $r )){
notice ( t ( " You can't edit this application. " ));
return ;
}
$app = $r [ 0 ];
$tpl = get_markup_template ( " settings_oauth_edit.tpl " );
$o .= replace_macros ( $tpl , array (
2012-03-12 20:17:37 +00:00
'$form_security_token' => get_form_security_token ( " settings_oauth " ),
2011-11-07 16:38:30 +00:00
'$title' => t ( 'Add application' ),
'$submit' => t ( 'Update' ),
'$cancel' => t ( 'Cancel' ),
'$name' => array ( 'name' , t ( 'Name' ), $app [ 'name' ] , '' ),
'$key' => array ( 'key' , t ( 'Consumer Key' ), $app [ 'client_id' ], '' ),
'$secret' => array ( 'secret' , t ( 'Consumer Secret' ), $app [ 'pw' ], '' ),
'$redirect' => array ( 'redirect' , t ( 'Redirect' ), $app [ 'redirect_uri' ], '' ),
'$icon' => array ( 'icon' , t ( 'Icon url' ), $app [ 'icon' ], '' ),
));
return $o ;
}
2012-10-30 02:31:38 +00:00
if (( argc () > 3 ) && ( argv ( 2 ) === 'delete' )) {
2012-03-12 20:17:37 +00:00
check_form_security_token_redirectOnErr ( '/settings/oauth' , 'settings_oauth' , 't' );
2011-11-07 16:38:30 +00:00
$r = q ( " DELETE FROM clients WHERE client_id='%s' AND uid=%d " ,
2012-10-30 02:31:38 +00:00
dbesc ( argv ( 3 )),
2011-11-07 16:38:30 +00:00
local_user ());
2012-03-15 04:20:20 +00:00
goaway ( $a -> get_baseurl ( true ) . " /settings/oauth/ " );
2011-11-07 16:38:30 +00:00
return ;
}
$r = q ( " SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my
FROM clients
LEFT JOIN tokens ON clients . client_id = tokens . client_id
WHERE clients . uid IN ( % d , 0 ) " ,
local_user (),
local_user ());
2011-10-26 15:15:36 +00:00
$tpl = get_markup_template ( " settings_oauth.tpl " );
$o .= replace_macros ( $tpl , array (
2012-03-12 20:17:37 +00:00
'$form_security_token' => get_form_security_token ( " settings_oauth " ),
2012-03-15 04:20:20 +00:00
'$baseurl' => $a -> get_baseurl ( true ),
2011-10-26 15:15:36 +00:00
'$title' => t ( 'Connected Apps' ),
2011-11-07 16:38:30 +00:00
'$add' => t ( 'Add application' ),
'$edit' => t ( 'Edit' ),
'$delete' => t ( 'Delete' ),
'$consumerkey' => t ( 'Client key starts with' ),
'$noname' => t ( 'No name' ),
'$remove' => t ( 'Remove authorization' ),
'$apps' => $r ,
2011-10-26 15:15:36 +00:00
));
return $o ;
}
2013-02-01 03:28:00 +00:00
if (( argc () > 1 ) && ( argv ( 1 ) === 'featured' )) {
2011-07-06 10:10:00 +00:00
$settings_addons = " " ;
2010-12-25 07:44:17 +00:00
$r = q ( " SELECT * FROM `hook` WHERE `hook` = 'plugin_settings' " );
if ( ! count ( $r ))
2013-02-01 03:28:00 +00:00
$settings_addons = t ( 'No feature settings configured' );
2010-12-25 07:44:17 +00:00
2013-02-01 04:39:14 +00:00
call_hooks ( 'feature_settings' , $settings_addons );
2011-07-06 10:10:00 +00:00
$tpl = get_markup_template ( " settings_addons.tpl " );
$o .= replace_macros ( $tpl , array (
2013-02-01 03:28:00 +00:00
'$form_security_token' => get_form_security_token ( " settings_featured " ),
'$title' => t ( 'Feature Settings' ),
2011-07-06 10:10:00 +00:00
'$settings_addons' => $settings_addons
));
2010-12-25 07:44:17 +00:00
return $o ;
}
2010-07-01 23:48:07 +00:00
2012-11-04 04:37:19 +00:00
2012-11-06 01:17:21 +00:00
/*
* ACCOUNT SETTINGS
*/
if (( argc () > 1 ) && ( argv ( 1 ) === 'account' )) {
$account_settings = " " ;
call_hooks ( 'account_settings' , $account_settings );
$email = $a -> account [ 'account_email' ];
$tpl = get_markup_template ( " settings_account.tpl " );
$o .= replace_macros ( $tpl , array (
'$form_security_token' => get_form_security_token ( " settings_account " ),
'$title' => t ( 'Account Settings' ),
'$h_pass' => t ( 'Password Settings' ),
'$password1' => array ( 'npassword' , t ( 'New Password:' ), '' , '' ),
'$password2' => array ( 'confirm' , t ( 'Confirm:' ), '' , t ( 'Leave password fields blank unless changing' )),
'$submit' => t ( 'Submit' ),
'$email' => array ( 'email' , t ( 'Email Address:' ), $email , '' ),
'$removeme' => t ( 'Remove Account' ),
'$permanent' => t ( 'Warning: This action is permanent and cannot be reversed.' ),
'$account_settings' => $account_settings
));
return $o ;
}
2012-11-04 04:37:19 +00:00
if (( argc () > 1 ) && ( argv ( 1 ) === 'features' )) {
$arr = array ();
$features = get_features ();
2012-11-29 03:23:39 +00:00
foreach ( $features as $fname => $fdata ) {
$arr [ $fname ] = array ();
$arr [ $fname ][ 0 ] = $fdata [ 0 ];
foreach ( array_slice ( $fdata , 1 ) as $f ) {
$arr [ $fname ][ 1 ][] = array ( 'feature_' . $f [ 0 ], $f [ 1 ],(( intval ( get_pconfig ( local_user (), 'feature' , $f [ 0 ]))) ? " 1 " : '' ), $f [ 2 ], array ( t ( 'Off' ), t ( 'On' )));
}
2012-11-04 04:37:19 +00:00
}
$tpl = get_markup_template ( " settings_features.tpl " );
$o .= replace_macros ( $tpl , array (
'$form_security_token' => get_form_security_token ( " settings_features " ),
'$title' => t ( 'Additional Features' ),
'$features' => $arr ,
2012-11-29 03:23:39 +00:00
'$submit' => t ( 'Submit' ),
'$field_yesno' => 'field_yesno.tpl' ,
2012-11-04 04:37:19 +00:00
));
2013-06-18 03:16:50 +00:00
2012-11-04 04:37:19 +00:00
return $o ;
}
2012-10-30 02:31:38 +00:00
if (( argc () > 1 ) && ( argv ( 1 ) === 'connectors' )) {
2010-08-20 05:04:18 +00:00
2011-10-12 01:24:37 +00:00
$settings_connectors = " " ;
call_hooks ( 'connector_settings' , $settings_connectors );
2010-07-20 05:52:31 +00:00
2012-07-18 11:49:15 +00:00
$r = null ;
2011-04-18 06:27:11 +00:00
2012-03-30 13:45:02 +00:00
$tpl = get_markup_template ( " settings_connectors.tpl " );
2012-06-27 01:30:20 +00:00
2011-10-12 01:24:37 +00:00
$o .= replace_macros ( $tpl , array (
2012-03-12 20:17:37 +00:00
'$form_security_token' => get_form_security_token ( " settings_connectors " ),
2011-10-12 01:24:37 +00:00
'$title' => t ( 'Connector Settings' ),
2012-03-12 20:17:37 +00:00
'$submit' => t ( 'Submit' ),
2011-10-12 01:24:37 +00:00
'$settings_connectors' => $settings_connectors
));
2012-04-04 05:01:52 +00:00
call_hooks ( 'display_settings' , $o );
2011-10-12 01:24:37 +00:00
return $o ;
}
2012-03-30 13:45:02 +00:00
/*
* DISPLAY SETTINGS
*/
2012-10-30 02:31:38 +00:00
if (( argc () > 1 ) && ( argv ( 1 ) === 'display' )) {
2012-03-30 13:45:02 +00:00
$default_theme = get_config ( 'system' , 'theme' );
if ( ! $default_theme )
$default_theme = 'default' ;
2013-08-16 05:52:19 +00:00
$default_mobile_theme = get_config ( 'system' , 'mobile_theme' );
2012-09-10 04:17:06 +00:00
if ( ! $mobile_default_theme )
$mobile_default_theme = 'none' ;
2012-03-30 13:45:02 +00:00
$allowed_themes_str = get_config ( 'system' , 'allowed_themes' );
$allowed_themes_raw = explode ( ',' , $allowed_themes_str );
$allowed_themes = array ();
if ( count ( $allowed_themes_raw ))
2012-04-22 23:24:29 +00:00
foreach ( $allowed_themes_raw as $x )
if ( strlen ( trim ( $x )) && is_dir ( " view/theme/ $x " ))
2012-03-30 13:45:02 +00:00
$allowed_themes [] = trim ( $x );
$themes = array ();
2012-09-10 04:17:06 +00:00
$mobile_themes = array ( " --- " => t ( 'No special theme for mobile devices' ));
2012-03-30 13:45:02 +00:00
$files = glob ( 'view/theme/*' );
if ( $allowed_themes ) {
foreach ( $allowed_themes as $th ) {
$f = $th ;
$is_experimental = file_exists ( 'view/theme/' . $th . '/experimental' );
$unsupported = file_exists ( 'view/theme/' . $th . '/unsupported' );
2012-09-10 04:17:06 +00:00
$is_mobile = file_exists ( 'view/theme/' . $th . '/mobile' );
2012-03-30 13:45:02 +00:00
if ( ! $is_experimental or ( $is_experimental && ( get_config ( 'experimentals' , 'exp_themes' ) == 1 or get_config ( 'experimentals' , 'exp_themes' ) === false ))){
$theme_name = (( $is_experimental ) ? sprintf ( " %s - \x28 Experimental \x29 " , $f ) : $f );
2012-09-10 04:17:06 +00:00
if ( $is_mobile ) {
$mobile_themes [ $f ] = $theme_name ;
}
else {
$themes [ $f ] = $theme_name ;
}
2012-03-30 13:45:02 +00:00
}
}
}
$theme_selected = ( ! x ( $_SESSION , 'theme' ) ? $default_theme : $_SESSION [ 'theme' ]);
2013-08-16 05:52:19 +00:00
$mobile_theme_selected = ( ! x ( $_SESSION , 'mobile_theme' ) ? $default_mobile_theme : $_SESSION [ 'mobile_theme' ]);
2012-03-30 13:45:02 +00:00
$browser_update = intval ( get_pconfig ( local_user (), 'system' , 'update_interval' ));
$browser_update = (( $browser_update == 0 ) ? 40 : $browser_update / 1000 ); // default if not set: 40 seconds
2012-12-17 04:20:29 +00:00
$itemspage = intval ( get_pconfig ( local_user (), 'system' , 'itemspage' ));
2013-02-11 01:10:58 +00:00
$itemspage = (( $itemspage > 0 && $itemspage < 101 ) ? $itemspage : 20 ); // default if not set: 20 items
2012-03-30 13:45:02 +00:00
$nosmile = get_pconfig ( local_user (), 'system' , 'no_smilies' );
$nosmile = (( $nosmile === false ) ? '0' : $nosmile ); // default if not set: 0
$theme_config = " " ;
if ( ( $themeconfigfile = get_theme_config_file ( $theme_selected )) != null ){
require_once ( $themeconfigfile );
$theme_config = theme_content ( $a );
}
$tpl = get_markup_template ( " settings_display.tpl " );
$o = replace_macros ( $tpl , array (
'$ptitle' => t ( 'Display Settings' ),
'$form_security_token' => get_form_security_token ( " settings_display " ),
'$submit' => t ( 'Submit' ),
'$baseurl' => $a -> get_baseurl ( true ),
'$uid' => local_user (),
2012-09-10 04:17:06 +00:00
'$theme' => array ( 'theme' , t ( 'Display Theme:' ), $theme_selected , '' , $themes , 'preview' ),
'$mobile_theme' => array ( 'mobile_theme' , t ( 'Mobile Theme:' ), $mobile_theme_selected , '' , $mobile_themes , '' ),
2012-03-30 13:45:02 +00:00
'$ajaxint' => array ( 'browser_update' , t ( " Update browser every xx seconds " ), $browser_update , t ( 'Minimum of 10 seconds, no maximum' )),
2012-12-17 04:20:29 +00:00
'$itemspage' => array ( 'itemspage' , t ( " Maximum number of conversations to load at any time: " ), $itemspage , t ( 'Maximum of 100 items' )),
2012-03-30 13:45:02 +00:00
'$nosmile' => array ( 'nosmile' , t ( " Don't show emoticons " ), $nosmile , '' ),
'$theme_config' => $theme_config ,
));
return $o ;
}
2011-10-12 01:24:37 +00:00
2012-08-28 04:17:46 +00:00
2012-09-26 00:57:20 +00:00
2012-10-30 02:31:38 +00:00
if ( argv ( 1 ) === 'channel' ) {
require_once ( 'include/acl_selectors.php' );
2012-11-02 02:47:10 +00:00
require_once ( 'include/permissions.php' );
2012-10-30 02:31:38 +00:00
$p = q ( " SELECT * FROM `profile` WHERE `is_default` = 1 AND `uid` = %d LIMIT 1 " ,
intval ( local_user ())
);
if ( count ( $p ))
$profile = $p [ 0 ];
2012-08-28 04:17:46 +00:00
2012-10-30 02:31:38 +00:00
load_pconfig ( local_user (), 'expire' );
2012-09-26 00:57:20 +00:00
2012-10-30 02:31:38 +00:00
$channel = $a -> get_channel ();
2011-10-12 01:24:37 +00:00
2012-11-02 02:47:10 +00:00
2012-11-02 05:23:13 +00:00
$global_perms = get_perms ();
2012-11-02 02:47:10 +00:00
$permiss = array ();
2012-11-05 23:26:01 +00:00
$perm_opts = array (
2012-11-02 09:18:52 +00:00
array ( t ( 'Nobody except yourself' ), 0 ),
2012-11-02 03:23:49 +00:00
array ( t ( 'Only those you specifically allow' ), PERMS_SPECIFIC ),
2012-11-02 02:47:10 +00:00
array ( t ( 'Anybody in your address book' ), PERMS_CONTACTS ),
2012-11-02 09:18:52 +00:00
array ( t ( 'Anybody on this website' ), PERMS_SITE ),
array ( t ( 'Anybody in this network' ), PERMS_NETWORK ),
array ( t ( 'Anybody on the internet' ), PERMS_PUBLIC )
2012-11-02 02:47:10 +00:00
);
2012-11-02 09:04:07 +00:00
foreach ( $global_perms as $k => $perm ) {
2012-11-05 23:26:01 +00:00
$options = array ();
foreach ( $perm_opts as $opt ) {
if (( ! $perm [ 2 ]) && $opt [ 1 ] == PERMS_PUBLIC )
2012-11-02 03:23:49 +00:00
continue ;
2012-11-05 23:26:01 +00:00
$options [ $opt [ 1 ]] = $opt [ 0 ];
2012-11-02 02:47:10 +00:00
}
2012-11-05 23:26:01 +00:00
$permiss [] = array ( $k , $perm [ 3 ], $channel [ $perm [ 0 ]], $perm [ 4 ], $options );
2012-11-02 02:47:10 +00:00
}
2012-11-05 23:26:01 +00:00
// logger('permiss: ' . print_r($permiss,true));
2012-11-02 02:47:10 +00:00
2012-10-30 02:31:38 +00:00
$username = $channel [ 'channel_name' ];
$nickname = $channel [ 'channel_address' ];
$timezone = $channel [ 'channel_timezone' ];
$notify = $channel [ 'channel_notifyflags' ];
$defloc = $channel [ 'channel_location' ];
$maxreq = $channel [ 'channel_max_friend_req' ];
2013-02-01 01:02:47 +00:00
$expire = $channel [ 'channel_expire_days' ];
2013-09-23 03:38:24 +00:00
$adult_flag = intval ( $channel [ 'channel_pageflags' ] & PAGE_ADULT );
2012-10-30 02:31:38 +00:00
$blockwall = $a -> user [ 'blockwall' ];
$unkmail = $a -> user [ 'unkmail' ];
$cntunkmail = $a -> user [ 'cntunkmail' ];
$expire_items = get_pconfig ( local_user (), 'expire' , 'items' );
$expire_items = (( $expire_items === false ) ? '1' : $expire_items ); // default if not set: 1
2011-11-17 14:53:59 +00:00
2012-10-30 02:31:38 +00:00
$expire_notes = get_pconfig ( local_user (), 'expire' , 'notes' );
$expire_notes = (( $expire_notes === false ) ? '1' : $expire_notes ); // default if not set: 1
2011-11-22 03:01:05 +00:00
2012-10-30 02:31:38 +00:00
$expire_starred = get_pconfig ( local_user (), 'expire' , 'starred' );
$expire_starred = (( $expire_starred === false ) ? '1' : $expire_starred ); // default if not set: 1
2011-11-17 14:53:59 +00:00
2012-10-30 02:31:38 +00:00
$expire_photos = get_pconfig ( local_user (), 'expire' , 'photos' );
$expire_photos = (( $expire_photos === false ) ? '0' : $expire_photos ); // default if not set: 0
2011-11-29 03:28:33 +00:00
2012-10-30 02:31:38 +00:00
$expire_network_only = get_pconfig ( local_user (), 'expire' , 'network_only' );
$expire_network_only = (( $expire_network_only === false ) ? '0' : $expire_network_only ); // default if not set: 0
2012-05-29 08:14:53 +00:00
2011-11-29 03:28:33 +00:00
2012-10-30 02:31:38 +00:00
$suggestme = get_pconfig ( local_user (), 'system' , 'suggestme' );
$suggestme = (( $suggestme === false ) ? '0' : $suggestme ); // default if not set: 0
2011-12-12 05:03:33 +00:00
2012-10-30 02:31:38 +00:00
$post_newfriend = get_pconfig ( local_user (), 'system' , 'post_newfriend' );
$post_newfriend = (( $post_newfriend === false ) ? '0' : $post_newfriend ); // default if not set: 0
2012-03-10 02:29:39 +00:00
2012-10-30 02:31:38 +00:00
$post_joingroup = get_pconfig ( local_user (), 'system' , 'post_joingroup' );
$post_joingroup = (( $post_joingroup === false ) ? '0' : $post_joingroup ); // default if not set: 0
2012-05-01 02:01:41 +00:00
2012-10-30 02:31:38 +00:00
$post_profilechange = get_pconfig ( local_user (), 'system' , 'post_profilechange' );
$post_profilechange = (( $post_profilechange === false ) ? '0' : $post_profilechange ); // default if not set: 0
2012-04-13 04:10:32 +00:00
2013-06-04 08:27:50 +00:00
$blocktags = get_pconfig ( local_user (), 'system' , 'blocktags' );
$blocktags = (( $blocktags === false ) ? '0' : $blocktags );
2012-03-23 11:07:22 +00:00
2012-10-30 02:31:38 +00:00
$timezone = date_default_timezone_get ();
2011-10-12 01:24:37 +00:00
2012-10-30 02:31:38 +00:00
$opt_tpl = get_markup_template ( " field_yesno.tpl " );
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 (
2013-02-03 00:10:27 +00:00
'$field' => array ( 'profile_in_directory' , t ( 'Publish your default profile in the network directory' ), $profile [ 'publish' ], '' , array ( t ( 'No' ), t ( 'Yes' ))),
2012-10-30 02:31:38 +00:00
));
}
2010-08-20 05:04:18 +00:00
2012-10-30 02:31:38 +00:00
$suggestme = replace_macros ( $opt_tpl , array (
'$field' => array ( 'suggestme' , t ( 'Allow us to suggest you as a potential friend to new members?' ), $suggestme , '' , array ( t ( 'No' ), t ( 'Yes' ))),
2011-11-29 03:28:33 +00:00
2012-10-30 02:31:38 +00:00
));
2011-11-29 03:28:33 +00:00
2012-10-30 02:31:38 +00:00
$subdir = (( strlen ( $a -> get_path ())) ? '<br />' . t ( 'or' ) . ' ' . $a -> get_baseurl ( true ) . '/channel/' . $nickname : '' );
2010-07-01 23:48:07 +00:00
2012-10-30 02:31:38 +00:00
$tpl_addr = get_markup_template ( " settings_nick_set.tpl " );
2011-04-08 06:10:43 +00:00
2012-10-30 02:31:38 +00:00
$prof_addr = replace_macros ( $tpl_addr , array (
2012-12-06 09:18:30 +00:00
'$desc' => t ( 'Your channel address is' ),
2012-10-30 02:31:38 +00:00
'$nickname' => $nickname ,
'$subdir' => $subdir ,
'$basepath' => $a -> get_hostname ()
));
2010-07-01 23:48:07 +00:00
2012-10-30 02:31:38 +00:00
$stpl = get_markup_template ( 'settings.tpl' );
2010-07-01 23:48:07 +00:00
2013-08-29 23:46:22 +00:00
$celeb = false ;
2010-10-18 07:43:49 +00:00
2013-11-29 22:08:37 +00:00
$perm_defaults = array (
'allow_cid' => $channel [ 'channel_allow_cid' ],
'allow_gid' => $channel [ 'channel_allow_gid' ],
'deny_cid' => $channel [ 'channel_deny_cid' ],
'deny_gid' => $channel [ 'channel_deny_gid' ]
);
2012-11-02 02:47:10 +00:00
2012-10-30 02:31:38 +00:00
require_once ( 'include/group.php' );
2013-11-22 01:23:14 +00:00
$group_select = mini_group_select ( local_user (), $channel [ 'channel_default_group' ]);
2012-05-18 05:44:52 +00:00
2012-10-30 02:31:38 +00:00
$o .= replace_macros ( $stpl , array (
'$ptitle' => t ( 'Channel Settings' ),
2011-07-06 10:10:00 +00:00
2012-10-30 02:31:38 +00:00
'$submit' => t ( 'Submit' ),
'$baseurl' => $a -> get_baseurl ( true ),
'$uid' => local_user (),
'$form_security_token' => get_form_security_token ( " settings " ),
'$nickname_block' => $prof_addr ,
2011-07-06 10:10:00 +00:00
2012-10-30 02:31:38 +00:00
'$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 , '' ),
2013-07-29 12:37:05 +00:00
'$allowloc' => array ( 'allow_location' , t ( 'Use Browser Location:' ), (( get_pconfig ( local_user (), 'system' , 'use_browser_location' )) ? 1 : '' ), '' ),
2012-03-30 13:45:02 +00:00
2013-09-23 03:38:24 +00:00
'$adult' => array ( 'adult' , t ( 'Adult Content' ), $adult_flag , t ( 'This channel publishes adult content.' )),
2011-07-06 10:10:00 +00:00
2012-10-30 02:31:38 +00:00
'$h_prv' => t ( 'Security and Privacy Settings' ),
2011-07-06 10:10:00 +00:00
2013-05-21 03:22:26 +00:00
'$lbl_pmacro' => t ( 'Quick Privacy Settings:' ),
'$pmacro3' => t ( 'Very Public - extremely permissive' ),
'$pmacro2' => t ( 'Typical - default public, privacy when desired' ),
'$pmacro1' => t ( 'Private - default private, rarely open or public' ),
'$pmacro0' => t ( 'Blocked - default blocked to/from everybody' ),
2012-11-02 02:47:10 +00:00
'$permiss_arr' => $permiss ,
2013-02-03 00:10:27 +00:00
'$maxreq' => array ( 'maxreq' , t ( 'Maximum Friend Requests/Day:' ), intval ( $channel [ 'channel_max_friend_req' ]) , t ( 'May reduce spam activity' )),
2012-10-30 02:31:38 +00:00
'$permissions' => t ( 'Default Post Permissions' ),
'$permdesc' => t ( " \x28 click to open/close \x29 " ),
2013-11-29 22:08:37 +00:00
'$aclselect' => populate_acl ( $perm_defaults ),
2012-10-30 02:31:38 +00:00
'$suggestme' => $suggestme ,
2012-05-18 08:38:11 +00:00
2012-10-30 02:31:38 +00:00
'$group_select' => $group_select ,
2012-05-18 05:44:52 +00:00
2012-10-30 02:31:38 +00:00
'$profile_in_dir' => $profile_in_dir ,
'$hide_friends' => $hide_friends ,
'$hide_wall' => $hide_wall ,
'$unkmail' => $unkmail ,
2013-02-03 00:10:27 +00:00
'$cntunkmail' => array ( 'cntunkmail' , t ( 'Maximum private messages per day from unknown people:' ), intval ( $channel [ 'channel_max_anon_mail' ]) , t ( " Useful to reduce spamming " )),
2011-07-06 10:10:00 +00:00
2012-10-30 02:31:38 +00:00
'$h_not' => t ( 'Notification Settings' ),
'$activity_options' => t ( 'By default post a status message when:' ),
'$post_newfriend' => array ( 'post_newfriend' , t ( 'accepting a friend request' ), $post_newfriend , '' ),
'$post_joingroup' => array ( 'post_joingroup' , t ( 'joining a forum/community' ), $post_joingroup , '' ),
'$post_profilechange' => array ( 'post_profilechange' , t ( 'making an <em>interesting</em> profile change' ), $post_profilechange , '' ),
'$lbl_not' => t ( 'Send a notification email when:' ),
'$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 , '' ),
'$notify6' => array ( 'notify6' , t ( 'You receive a friend suggestion' ), ( $notify & NOTIFY_SUGGEST ), NOTIFY_SUGGEST , '' ),
'$notify7' => array ( 'notify7' , t ( 'You are tagged in a post' ), ( $notify & NOTIFY_TAGSELF ), NOTIFY_TAGSELF , '' ),
'$notify8' => array ( 'notify8' , t ( 'You are poked/prodded/etc. in a post' ), ( $notify & NOTIFY_POKE ), NOTIFY_POKE , '' ),
2011-07-06 10:10:00 +00:00
2012-10-30 02:31:38 +00:00
'$h_advn' => t ( 'Advanced Account/Page Type Settings' ),
'$h_descadvn' => t ( 'Change the behaviour of this account for special situations' ),
'$pagetype' => $pagetype ,
2011-07-06 10:10:00 +00:00
2012-10-30 02:31:38 +00:00
));
2010-12-23 22:40:32 +00:00
2012-10-30 02:31:38 +00:00
call_hooks ( 'settings_form' , $o );
2010-12-23 04:23:41 +00:00
2012-10-30 02:31:38 +00:00
$o .= '</form>' . " \r \n " ;
2010-07-01 23:48:07 +00:00
2012-10-30 02:31:38 +00:00
return $o ;
}
2010-12-23 04:23:41 +00:00
}}