605 lines
27 KiB
PHP
605 lines
27 KiB
PHP
<?php
|
|
|
|
namespace Zotlabs\Module\Settings;
|
|
|
|
require_once('include/selectors.php');
|
|
|
|
|
|
class Channel {
|
|
|
|
|
|
function post() {
|
|
|
|
$channel = \App::get_channel();
|
|
|
|
check_form_security_token_redirectOnErr('/settings', 'settings');
|
|
|
|
call_hooks('settings_post', $_POST);
|
|
|
|
$set_perms = '';
|
|
|
|
$role = ((x($_POST,'permissions_role')) ? notags(trim($_POST['permissions_role'])) : '');
|
|
$oldrole = get_pconfig(local_channel(),'system','permissions_role');
|
|
|
|
|
|
if(($role != $oldrole) || ($role === 'custom')) {
|
|
|
|
if($role === 'custom') {
|
|
$hide_presence = (((x($_POST,'hide_presence')) && (intval($_POST['hide_presence']) == 1)) ? 1: 0);
|
|
$publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
|
|
$def_group = ((x($_POST,'group-selection')) ? notags(trim($_POST['group-selection'])) : '');
|
|
$r = q("update channel set channel_default_group = '%s' where channel_id = %d",
|
|
dbesc($def_group),
|
|
intval(local_channel())
|
|
);
|
|
|
|
$global_perms = \Zotlabs\Access\Permissions::Perms();
|
|
|
|
foreach($global_perms as $k => $v) {
|
|
\Zotlabs\Access\PermissionLimits::Set(local_channel(),$k,intval($_POST[$k]));
|
|
}
|
|
$acl = new \Zotlabs\Access\AccessList($channel);
|
|
$acl->set_from_array($_POST);
|
|
$x = $acl->get();
|
|
|
|
$r = q("update channel set channel_allow_cid = '%s', channel_allow_gid = '%s',
|
|
channel_deny_cid = '%s', channel_deny_gid = '%s' where channel_id = %d",
|
|
dbesc($x['allow_cid']),
|
|
dbesc($x['allow_gid']),
|
|
dbesc($x['deny_cid']),
|
|
dbesc($x['deny_gid']),
|
|
intval(local_channel())
|
|
);
|
|
}
|
|
else {
|
|
$role_permissions = \Zotlabs\Access\PermissionRoles::role_perms($_POST['permissions_role']);
|
|
if(! $role_permissions) {
|
|
notice('Permissions category could not be found.');
|
|
return;
|
|
}
|
|
$hide_presence = 1 - (intval($role_permissions['online']));
|
|
if($role_permissions['default_collection']) {
|
|
$r = q("select hash from groups where uid = %d and gname = '%s' limit 1",
|
|
intval(local_channel()),
|
|
dbesc( t('Friends') )
|
|
);
|
|
if(! $r) {
|
|
require_once('include/group.php');
|
|
group_add(local_channel(), t('Friends'));
|
|
group_add_member(local_channel(),t('Friends'),$channel['channel_hash']);
|
|
$r = q("select hash from groups where uid = %d and gname = '%s' limit 1",
|
|
intval(local_channel()),
|
|
dbesc( t('Friends') )
|
|
);
|
|
}
|
|
if($r) {
|
|
q("update channel set channel_default_group = '%s', channel_allow_gid = '%s', channel_allow_cid = '', channel_deny_gid = '', channel_deny_cid = '' where channel_id = %d",
|
|
dbesc($r[0]['hash']),
|
|
dbesc('<' . $r[0]['hash'] . '>'),
|
|
intval(local_channel())
|
|
);
|
|
}
|
|
else {
|
|
notice( sprintf('Default privacy group \'%s\' not found. Please create and re-submit permission change.', t('Friends')) . EOL);
|
|
return;
|
|
}
|
|
}
|
|
// no default collection
|
|
else {
|
|
q("update channel set channel_default_group = '', channel_allow_gid = '', channel_allow_cid = '', channel_deny_gid = '',
|
|
channel_deny_cid = '' where channel_id = %d",
|
|
intval(local_channel())
|
|
);
|
|
}
|
|
|
|
if($role_permissions['perms_connect']) {
|
|
$x = \Zotlabs\Access\Permissions::FilledPerms($role_permissions['perms_connect']);
|
|
foreach($x as $k => $v) {
|
|
set_abconfig(local_channel(),$channel['channel_hash'],'my_perms',$k, $v);
|
|
if($role_permissions['perms_auto']) {
|
|
set_pconfig(local_channel(),'autoperms',$k,$v);
|
|
}
|
|
else {
|
|
del_pconfig(local_channel(),'autoperms',$k);
|
|
}
|
|
}
|
|
}
|
|
|
|
if($role_permissions['limits']) {
|
|
foreach($role_permissions['limits'] as $k => $v) {
|
|
\Zotlabs\Access\PermissionLimits::Set(local_channel(),$k,$v);
|
|
}
|
|
}
|
|
if(array_key_exists('directory_publish',$role_permissions)) {
|
|
$publish = intval($role_permissions['directory_publish']);
|
|
}
|
|
}
|
|
|
|
set_pconfig(local_channel(),'system','hide_online_status',$hide_presence);
|
|
set_pconfig(local_channel(),'system','permissions_role',$role);
|
|
}
|
|
|
|
$username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : '');
|
|
$timezone = ((x($_POST,'timezone_select')) ? notags(trim($_POST['timezone_select'])) : '');
|
|
$defloc = ((x($_POST,'defloc')) ? notags(trim($_POST['defloc'])) : '');
|
|
$openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : '');
|
|
$maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0);
|
|
$expire = ((x($_POST,'expire')) ? intval($_POST['expire']) : 0);
|
|
$evdays = ((x($_POST,'evdays')) ? intval($_POST['evdays']) : 3);
|
|
$photo_path = ((x($_POST,'photo_path')) ? escape_tags(trim($_POST['photo_path'])) : '');
|
|
$attach_path = ((x($_POST,'attach_path')) ? escape_tags(trim($_POST['attach_path'])) : '');
|
|
|
|
$channel_menu = ((x($_POST['channel_menu'])) ? htmlspecialchars_decode(trim($_POST['channel_menu']),ENT_QUOTES) : '');
|
|
|
|
$expire_items = ((x($_POST,'expire_items')) ? intval($_POST['expire_items']) : 0);
|
|
$expire_starred = ((x($_POST,'expire_starred')) ? intval($_POST['expire_starred']) : 0);
|
|
$expire_photos = ((x($_POST,'expire_photos'))? intval($_POST['expire_photos']) : 0);
|
|
$expire_network_only = ((x($_POST,'expire_network_only'))? intval($_POST['expire_network_only']) : 0);
|
|
|
|
$allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
|
|
|
|
$blocktags = (((x($_POST,'blocktags')) && (intval($_POST['blocktags']) == 1)) ? 0: 1); // this setting is inverted!
|
|
$unkmail = (((x($_POST,'unkmail')) && (intval($_POST['unkmail']) == 1)) ? 1: 0);
|
|
$cntunkmail = ((x($_POST,'cntunkmail')) ? intval($_POST['cntunkmail']) : 0);
|
|
$suggestme = ((x($_POST,'suggestme')) ? intval($_POST['suggestme']) : 0);
|
|
|
|
$post_newfriend = (($_POST['post_newfriend'] == 1) ? 1: 0);
|
|
$post_joingroup = (($_POST['post_joingroup'] == 1) ? 1: 0);
|
|
$post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0);
|
|
$adult = (($_POST['adult'] == 1) ? 1 : 0);
|
|
$defpermcat = ((x($_POST,'defpermcat')) ? notags(trim($_POST['defpermcat'])) : 'default');
|
|
|
|
$cal_first_day = (((x($_POST,'first_day')) && (intval($_POST['first_day']) == 1)) ? 1: 0);
|
|
$mailhost = ((array_key_exists('mailhost',$_POST)) ? notags(trim($_POST['mailhost'])) : '');
|
|
$profile_assign = ((x($_POST,'profile_assign')) ? notags(trim($_POST['profile_assign'])) : '');
|
|
|
|
|
|
$pageflags = $channel['channel_pageflags'];
|
|
$existing_adult = (($pageflags & PAGE_ADULT) ? 1 : 0);
|
|
if($adult != $existing_adult)
|
|
$pageflags = ($pageflags ^ PAGE_ADULT);
|
|
|
|
|
|
$notify = 0;
|
|
|
|
if(x($_POST,'notify1'))
|
|
$notify += intval($_POST['notify1']);
|
|
if(x($_POST,'notify2'))
|
|
$notify += intval($_POST['notify2']);
|
|
if(x($_POST,'notify3'))
|
|
$notify += intval($_POST['notify3']);
|
|
if(x($_POST,'notify4'))
|
|
$notify += intval($_POST['notify4']);
|
|
if(x($_POST,'notify5'))
|
|
$notify += intval($_POST['notify5']);
|
|
if(x($_POST,'notify6'))
|
|
$notify += intval($_POST['notify6']);
|
|
if(x($_POST,'notify7'))
|
|
$notify += intval($_POST['notify7']);
|
|
if(x($_POST,'notify8'))
|
|
$notify += intval($_POST['notify8']);
|
|
|
|
|
|
$vnotify = 0;
|
|
|
|
if(x($_POST,'vnotify1'))
|
|
$vnotify += intval($_POST['vnotify1']);
|
|
if(x($_POST,'vnotify2'))
|
|
$vnotify += intval($_POST['vnotify2']);
|
|
if(x($_POST,'vnotify3'))
|
|
$vnotify += intval($_POST['vnotify3']);
|
|
if(x($_POST,'vnotify4'))
|
|
$vnotify += intval($_POST['vnotify4']);
|
|
if(x($_POST,'vnotify5'))
|
|
$vnotify += intval($_POST['vnotify5']);
|
|
if(x($_POST,'vnotify6'))
|
|
$vnotify += intval($_POST['vnotify6']);
|
|
if(x($_POST,'vnotify7'))
|
|
$vnotify += intval($_POST['vnotify7']);
|
|
if(x($_POST,'vnotify8'))
|
|
$vnotify += intval($_POST['vnotify8']);
|
|
if(x($_POST,'vnotify9'))
|
|
$vnotify += intval($_POST['vnotify9']);
|
|
if(x($_POST,'vnotify10'))
|
|
$vnotify += intval($_POST['vnotify10']);
|
|
if(x($_POST,'vnotify11'))
|
|
$vnotify += intval($_POST['vnotify11']);
|
|
if(x($_POST,'vnotify12'))
|
|
$vnotify += intval($_POST['vnotify12']);
|
|
if(x($_POST,'vnotify13'))
|
|
$vnotify += intval($_POST['vnotify13']);
|
|
|
|
$always_show_in_notices = x($_POST,'always_show_in_notices') ? 1 : 0;
|
|
|
|
$err = '';
|
|
|
|
$name_change = false;
|
|
|
|
if($username != $channel['channel_name']) {
|
|
$name_change = true;
|
|
require_once('include/channel.php');
|
|
$err = validate_channelname($username);
|
|
if($err) {
|
|
notice($err);
|
|
return;
|
|
}
|
|
}
|
|
|
|
if($timezone != $channel['channel_timezone']) {
|
|
if(strlen($timezone))
|
|
date_default_timezone_set($timezone);
|
|
}
|
|
|
|
set_pconfig(local_channel(),'system','use_browser_location',$allow_location);
|
|
set_pconfig(local_channel(),'system','suggestme', $suggestme);
|
|
set_pconfig(local_channel(),'system','post_newfriend', $post_newfriend);
|
|
set_pconfig(local_channel(),'system','post_joingroup', $post_joingroup);
|
|
set_pconfig(local_channel(),'system','post_profilechange', $post_profilechange);
|
|
set_pconfig(local_channel(),'system','blocktags',$blocktags);
|
|
set_pconfig(local_channel(),'system','channel_menu',$channel_menu);
|
|
set_pconfig(local_channel(),'system','vnotify',$vnotify);
|
|
set_pconfig(local_channel(),'system','always_show_in_notices',$always_show_in_notices);
|
|
set_pconfig(local_channel(),'system','evdays',$evdays);
|
|
set_pconfig(local_channel(),'system','photo_path',$photo_path);
|
|
set_pconfig(local_channel(),'system','attach_path',$attach_path);
|
|
set_pconfig(local_channel(),'system','cal_first_day',$cal_first_day);
|
|
set_pconfig(local_channel(),'system','default_permcat',$defpermcat);
|
|
set_pconfig(local_channel(),'system','email_notify_host',$mailhost);
|
|
set_pconfig(local_channel(),'system','profile_assign',$profile_assign);
|
|
|
|
$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 $set_perms where channel_id = %d",
|
|
dbesc($username),
|
|
intval($pageflags),
|
|
dbesc($timezone),
|
|
dbesc($defloc),
|
|
intval($notify),
|
|
intval($unkmail),
|
|
intval($maxreq),
|
|
intval($expire),
|
|
intval(local_channel())
|
|
);
|
|
if($r)
|
|
info( t('Settings updated.') . EOL);
|
|
|
|
if(! is_null($publish)) {
|
|
$r = q("UPDATE profile SET publish = %d WHERE is_default = 1 AND uid = %d",
|
|
intval($publish),
|
|
intval(local_channel())
|
|
);
|
|
}
|
|
|
|
if($name_change) {
|
|
$r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s' where xchan_hash = '%s'",
|
|
dbesc($username),
|
|
dbesc(datetime_convert()),
|
|
dbesc($channel['channel_hash'])
|
|
);
|
|
$r = q("update profile set fullname = '%s' where uid = %d and is_default = 1",
|
|
dbesc($username),
|
|
intval($channel['channel_id'])
|
|
);
|
|
}
|
|
|
|
\Zotlabs\Daemon\Master::Summon(array('Directory',local_channel()));
|
|
|
|
build_sync_packet();
|
|
|
|
|
|
if($email_changed && \App::$config['system']['register_policy'] == REGISTER_VERIFY) {
|
|
|
|
// FIXME - set to un-verified, blocked and redirect to logout
|
|
// Q: Why? Are we verifying people or email addresses?
|
|
// A: the policy is to verify email addresses
|
|
}
|
|
|
|
goaway(z_root() . '/settings' );
|
|
return; // NOTREACHED
|
|
}
|
|
|
|
function get() {
|
|
|
|
require_once('include/acl_selectors.php');
|
|
require_once('include/permissions.php');
|
|
|
|
|
|
$yes_no = array(t('No'),t('Yes'));
|
|
|
|
|
|
$p = q("SELECT * FROM profile WHERE is_default = 1 AND uid = %d LIMIT 1",
|
|
intval(local_channel())
|
|
);
|
|
if(count($p))
|
|
$profile = $p[0];
|
|
|
|
load_pconfig(local_channel(),'expire');
|
|
|
|
$channel = \App::get_channel();
|
|
|
|
$global_perms = \Zotlabs\Access\Permissions::Perms();
|
|
|
|
$permiss = array();
|
|
|
|
$perm_opts = array(
|
|
array( t('Nobody except yourself'), 0),
|
|
array( t('Only those you specifically allow'), PERMS_SPECIFIC),
|
|
array( t('Approved connections'), PERMS_CONTACTS),
|
|
array( t('Any connections'), PERMS_PENDING),
|
|
array( t('Anybody on this website'), PERMS_SITE),
|
|
array( t('Anybody in this network'), PERMS_NETWORK),
|
|
array( t('Anybody authenticated'), PERMS_AUTHED),
|
|
array( t('Anybody on the internet'), PERMS_PUBLIC)
|
|
);
|
|
|
|
$limits = \Zotlabs\Access\PermissionLimits::Get(local_channel());
|
|
$anon_comments = get_config('system','anonymous_comments',true);
|
|
|
|
foreach($global_perms as $k => $perm) {
|
|
$options = array();
|
|
$can_be_public = ((strstr($k,'view') || ($k === 'post_comments' && $anon_comments)) ? true : false);
|
|
foreach($perm_opts as $opt) {
|
|
if($opt[1] == PERMS_PUBLIC && (! $can_be_public))
|
|
continue;
|
|
$options[$opt[1]] = $opt[0];
|
|
}
|
|
$permiss[] = array($k,$perm,$limits[$k],'',$options);
|
|
}
|
|
|
|
// logger('permiss: ' . print_r($permiss,true));
|
|
|
|
$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'];
|
|
$expire = $channel['channel_expire_days'];
|
|
$adult_flag = intval($channel['channel_pageflags'] & PAGE_ADULT);
|
|
$sys_expire = get_config('system','default_expire_days');
|
|
|
|
// $unkmail = \App::$user['unkmail'];
|
|
// $cntunkmail = \App::$user['cntunkmail'];
|
|
|
|
$hide_presence = intval(get_pconfig(local_channel(), 'system','hide_online_status'));
|
|
|
|
|
|
$expire_items = get_pconfig(local_channel(), 'expire','items');
|
|
$expire_items = (($expire_items===false)? '1' : $expire_items); // default if not set: 1
|
|
|
|
$expire_notes = get_pconfig(local_channel(), 'expire','notes');
|
|
$expire_notes = (($expire_notes===false)? '1' : $expire_notes); // default if not set: 1
|
|
|
|
$expire_starred = get_pconfig(local_channel(), 'expire','starred');
|
|
$expire_starred = (($expire_starred===false)? '1' : $expire_starred); // default if not set: 1
|
|
|
|
$expire_photos = get_pconfig(local_channel(), 'expire','photos');
|
|
$expire_photos = (($expire_photos===false)? '0' : $expire_photos); // default if not set: 0
|
|
|
|
$expire_network_only = get_pconfig(local_channel(), 'expire','network_only');
|
|
$expire_network_only = (($expire_network_only===false)? '0' : $expire_network_only); // default if not set: 0
|
|
|
|
|
|
$suggestme = get_pconfig(local_channel(), 'system','suggestme');
|
|
$suggestme = (($suggestme===false)? '0': $suggestme); // default if not set: 0
|
|
|
|
$post_newfriend = get_pconfig(local_channel(), 'system','post_newfriend');
|
|
$post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // default if not set: 0
|
|
|
|
$post_joingroup = get_pconfig(local_channel(), 'system','post_joingroup');
|
|
$post_joingroup = (($post_joingroup===false)? '0': $post_joingroup); // default if not set: 0
|
|
|
|
$post_profilechange = get_pconfig(local_channel(), 'system','post_profilechange');
|
|
$post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
|
|
|
|
$blocktags = get_pconfig(local_channel(),'system','blocktags');
|
|
$blocktags = (($blocktags===false) ? '0' : $blocktags);
|
|
|
|
$timezone = date_default_timezone_get();
|
|
|
|
$opt_tpl = get_markup_template("field_checkbox.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(
|
|
'$field' => array('profile_in_directory', t('Publish your default profile in the network directory'), $profile['publish'], '', $yes_no),
|
|
));
|
|
}
|
|
|
|
$suggestme = replace_macros($opt_tpl,array(
|
|
'$field' => array('suggestme', t('Allow us to suggest you as a potential friend to new members?'), $suggestme, '', $yes_no),
|
|
|
|
));
|
|
|
|
$subdir = ((strlen(\App::get_path())) ? '<br />' . t('or') . ' ' . z_root() . '/channel/' . $nickname : '');
|
|
|
|
$tpl_addr = get_markup_template("settings_nick_set.tpl");
|
|
|
|
$prof_addr = replace_macros($tpl_addr,array(
|
|
'$desc' => t('Your channel address is'),
|
|
'$nickname' => $nickname,
|
|
'$subdir' => $subdir,
|
|
'$davdesc' => t('Your files/photos are accessible via WebDAV at'),
|
|
'$davpath' => ((get_account_techlevel() > 3) ? z_root() . '/dav/' . $nickname : ''),
|
|
'$basepath' => \App::get_hostname()
|
|
));
|
|
|
|
|
|
|
|
$pcat = new \Zotlabs\Lib\Permcat(local_channel());
|
|
$pcatlist = $pcat->listing();
|
|
$permcats = [];
|
|
if($pcatlist) {
|
|
foreach($pcatlist as $pc) {
|
|
$permcats[$pc['name']] = $pc['localname'];
|
|
}
|
|
}
|
|
|
|
$default_permcat = get_pconfig(local_channel(),'system','default_permcat','default');
|
|
|
|
|
|
$stpl = get_markup_template('settings.tpl');
|
|
|
|
$acl = new \Zotlabs\Access\AccessList($channel);
|
|
$perm_defaults = $acl->get();
|
|
|
|
require_once('include/group.php');
|
|
$group_select = mini_group_select(local_channel(),$channel['channel_default_group']);
|
|
|
|
require_once('include/menu.php');
|
|
$m1 = menu_list(local_channel());
|
|
$menu = false;
|
|
if($m1) {
|
|
$menu = array();
|
|
$current = get_pconfig(local_channel(),'system','channel_menu');
|
|
$menu[] = array('name' => '', 'selected' => ((! $current) ? true : false));
|
|
foreach($m1 as $m) {
|
|
$menu[] = array('name' => htmlspecialchars($m['menu_name'],ENT_COMPAT,'UTF-8'), 'selected' => (($m['menu_name'] === $current) ? ' selected="selected" ' : false));
|
|
}
|
|
}
|
|
|
|
$evdays = get_pconfig(local_channel(),'system','evdays');
|
|
if(! $evdays)
|
|
$evdays = 3;
|
|
|
|
$permissions_role = get_pconfig(local_channel(),'system','permissions_role');
|
|
if(! $permissions_role)
|
|
$permissions_role = 'custom';
|
|
|
|
$permissions_set = (($permissions_role != 'custom') ? true : false);
|
|
|
|
$perm_roles = \Zotlabs\Access\PermissionRoles::roles();
|
|
if((get_account_techlevel() < 4) && $permissions_role !== 'custom')
|
|
unset($perm_roles[t('Other')]);
|
|
|
|
$vnotify = get_pconfig(local_channel(),'system','vnotify');
|
|
$always_show_in_notices = get_pconfig(local_channel(),'system','always_show_in_notices');
|
|
if($vnotify === false)
|
|
$vnotify = (-1);
|
|
|
|
$plugin = [ 'basic' => '', 'security' => '', 'notify' => '', 'misc' => '' ];
|
|
call_hooks('channel_settings',$plugin);
|
|
|
|
$disable_discover_tab = get_config('system','disable_discover_tab') || get_config('system','disable_discover_tab') === false;
|
|
|
|
$o .= replace_macros($stpl,array(
|
|
'$ptitle' => t('Channel Settings'),
|
|
|
|
'$submit' => t('Submit'),
|
|
'$baseurl' => z_root(),
|
|
'$uid' => local_channel(),
|
|
'$form_security_token' => get_form_security_token("settings"),
|
|
'$nickname_block' => $prof_addr,
|
|
'$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:'), $timezone, '', get_timezones()),
|
|
'$defloc' => array('defloc', t('Default Post Location:'), $defloc, t('Geographical location to display on your posts')),
|
|
'$allowloc' => array('allow_location', t('Use Browser Location:'), ((get_pconfig(local_channel(),'system','use_browser_location')) ? 1 : ''), '', $yes_no),
|
|
|
|
'$adult' => array('adult', t('Adult Content'), $adult_flag, t('This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)'), $yes_no),
|
|
|
|
'$h_prv' => t('Security and Privacy Settings'),
|
|
'$permissions_set' => $permissions_set,
|
|
'$perms_set_msg' => t('Your permissions are already configured. Click to view/adjust'),
|
|
|
|
'$hide_presence' => array('hide_presence', t('Hide my online presence'),$hide_presence, t('Prevents displaying in your profile that you are online'), $yes_no),
|
|
|
|
'$lbl_pmacro' => t('Simple Privacy Settings:'),
|
|
'$pmacro3' => t('Very Public - <em>extremely permissive (should be used with caution)</em>'),
|
|
'$pmacro2' => t('Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>'),
|
|
'$pmacro1' => t('Private - <em>default private, never open or public</em>'),
|
|
'$pmacro0' => t('Blocked - <em>default blocked to/from everybody</em>'),
|
|
'$permiss_arr' => $permiss,
|
|
'$blocktags' => array('blocktags',t('Allow others to tag your posts'), 1-$blocktags, t('Often used by the community to retro-actively flag inappropriate content'), $yes_no),
|
|
|
|
'$lbl_p2macro' => t('Channel Permission Limits'),
|
|
|
|
'$expire' => array('expire',t('Expire other channel content after this many days'),$expire, t('0 or blank to use the website limit.') . ' ' . ((intval($sys_expire)) ? sprintf( t('This website expires after %d days.'),intval($sys_expire)) : t('This website does not expire imported content.')) . ' ' . t('The website limit takes precedence if lower than your limit.')),
|
|
'$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), intval($channel['channel_max_friend_req']) , t('May reduce spam activity')),
|
|
'$permissions' => t('Default Privacy Group'),
|
|
'$permdesc' => t("\x28click to open/close\x29"),
|
|
'$aclselect' => populate_acl($perm_defaults, false, \Zotlabs\Lib\PermissionDescription::fromDescription(t('Use my default audience setting for the type of object published'))),
|
|
'$profseltxt' => t('Profile to assign new connections'),
|
|
'$profselect' => ((feature_enabled(local_channel(),'multi_profiles')) ? contact_profile_assign(get_pconfig(local_channel(),'system','profile_assign','')) : ''),
|
|
|
|
'$allow_cid' => acl2json($perm_defaults['allow_cid']),
|
|
'$allow_gid' => acl2json($perm_defaults['allow_gid']),
|
|
'$deny_cid' => acl2json($perm_defaults['deny_cid']),
|
|
'$deny_gid' => acl2json($perm_defaults['deny_gid']),
|
|
'$suggestme' => $suggestme,
|
|
'$group_select' => $group_select,
|
|
'$role' => array('permissions_role' , t('Channel permissions category:'), $permissions_role, '', $perm_roles),
|
|
'$defpermcat' => [ 'defpermcat', t('Default Permissions Group'), $default_permcat, '', $permcats ],
|
|
'$permcat_enable' => feature_enabled(local_channel(),'permcats'),
|
|
'$profile_in_dir' => $profile_in_dir,
|
|
'$hide_friends' => $hide_friends,
|
|
'$hide_wall' => $hide_wall,
|
|
'$unkmail' => $unkmail,
|
|
'$cntunkmail' => array('cntunkmail', t('Maximum private messages per day from unknown people:'), intval($channel['channel_max_anon_mail']) ,t("Useful to reduce spamming")),
|
|
|
|
|
|
'$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, '', $yes_no),
|
|
'$post_joingroup' => array('post_joingroup', t('joining a forum/community'), $post_joingroup, '', $yes_no),
|
|
'$post_profilechange' => array('post_profilechange', t('making an <em>interesting</em> profile change'), $post_profilechange, '', $yes_no),
|
|
'$lbl_not' => t('Send a notification email when:'),
|
|
'$notify1' => array('notify1', t('You receive a connection request'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, '', $yes_no),
|
|
'$notify2' => array('notify2', t('Your connections are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, '', $yes_no),
|
|
'$notify3' => array('notify3', t('Someone writes on your profile wall'), ($notify & NOTIFY_WALL), NOTIFY_WALL, '', $yes_no),
|
|
'$notify4' => array('notify4', t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, '', $yes_no),
|
|
'$notify5' => array('notify5', t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, '', $yes_no),
|
|
'$notify6' => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, '', $yes_no),
|
|
'$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, '', $yes_no),
|
|
'$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, '', $yes_no),
|
|
|
|
'$notify9' => array('notify9', t('Someone likes your post/comment'), ($notify & NOTIFY_LIKE), NOTIFY_LIKE, '', $yes_no),
|
|
|
|
|
|
'$lbl_vnot' => t('Show visual notifications including:'),
|
|
|
|
'$vnotify1' => array('vnotify1', t('Unseen grid activity'), ($vnotify & VNOTIFY_NETWORK), VNOTIFY_NETWORK, '', $yes_no),
|
|
'$vnotify2' => array('vnotify2', t('Unseen channel activity'), ($vnotify & VNOTIFY_CHANNEL), VNOTIFY_CHANNEL, '', $yes_no),
|
|
'$vnotify3' => array('vnotify3', t('Unseen private messages'), ($vnotify & VNOTIFY_MAIL), VNOTIFY_MAIL, t('Recommended'), $yes_no),
|
|
'$vnotify4' => array('vnotify4', t('Upcoming events'), ($vnotify & VNOTIFY_EVENT), VNOTIFY_EVENT, '', $yes_no),
|
|
'$vnotify5' => array('vnotify5', t('Events today'), ($vnotify & VNOTIFY_EVENTTODAY), VNOTIFY_EVENTTODAY, '', $yes_no),
|
|
'$vnotify6' => array('vnotify6', t('Upcoming birthdays'), ($vnotify & VNOTIFY_BIRTHDAY), VNOTIFY_BIRTHDAY, t('Not available in all themes'), $yes_no),
|
|
'$vnotify7' => array('vnotify7', t('System (personal) notifications'), ($vnotify & VNOTIFY_SYSTEM), VNOTIFY_SYSTEM, '', $yes_no),
|
|
'$vnotify8' => array('vnotify8', t('System info messages'), ($vnotify & VNOTIFY_INFO), VNOTIFY_INFO, t('Recommended'), $yes_no),
|
|
'$vnotify9' => array('vnotify9', t('System critical alerts'), ($vnotify & VNOTIFY_ALERT), VNOTIFY_ALERT, t('Recommended'), $yes_no),
|
|
'$vnotify10' => array('vnotify10', t('New connections'), ($vnotify & VNOTIFY_INTRO), VNOTIFY_INTRO, t('Recommended'), $yes_no),
|
|
'$vnotify11' => array('vnotify11', t('System Registrations'), ($vnotify & VNOTIFY_REGISTER), VNOTIFY_REGISTER, '', $yes_no),
|
|
'$vnotify12' => array('vnotify12', t('Unseen shared files'), ($vnotify & VNOTIFY_FILES), VNOTIFY_FILES, '', $yes_no),
|
|
'$vnotify13' => (($disable_discover_tab) ? array() : array('vnotify13', t('Unseen public activity'), ($vnotify & VNOTIFY_PUBS), VNOTIFY_PUBS, '', $yes_no)),
|
|
'$mailhost' => [ 'mailhost', t('Email notification hub (hostname)'), get_pconfig(local_channel(),'system','email_notify_host',\App::get_hostname()), sprintf( t('If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s'),\App::get_hostname()) ],
|
|
'$always_show_in_notices' => array('always_show_in_notices', t('Also show new wall posts, private messages and connections under Notices'), $always_show_in_notices, 1, '', $yes_no),
|
|
|
|
'$evdays' => array('evdays', t('Notify me of events this many days in advance'), $evdays, t('Must be greater than 0')),
|
|
'$basic_addon' => $plugin['basic'],
|
|
'$sec_addon' => $plugin['security'],
|
|
'$notify_addon' => $plugin['notify'],
|
|
'$misc_addon' => $plugin['misc'],
|
|
|
|
'$h_advn' => t('Advanced Account/Page Type Settings'),
|
|
'$h_descadvn' => t('Change the behaviour of this account for special situations'),
|
|
'$pagetype' => $pagetype,
|
|
'$lbl_misc' => t('Miscellaneous Settings'),
|
|
'$photo_path' => array('photo_path', t('Default photo upload folder'), get_pconfig(local_channel(),'system','photo_path'), t('%Y - current year, %m - current month')),
|
|
'$attach_path' => array('attach_path', t('Default file upload folder'), get_pconfig(local_channel(),'system','attach_path'), t('%Y - current year, %m - current month')),
|
|
'$menus' => $menu,
|
|
'$menu_desc' => t('Personal menu to display in your channel pages'),
|
|
'$removeme' => t('Remove Channel'),
|
|
'$removechannel' => t('Remove this channel.'),
|
|
'$firefoxshare' => t('Firefox Share $Projectname provider'),
|
|
'$cal_first_day' => array('first_day', t('Start calendar week on Monday'), ((get_pconfig(local_channel(),'system','cal_first_day')) ? 1 : ''), '', $yes_no),
|
|
));
|
|
|
|
call_hooks('settings_form',$o);
|
|
|
|
//$o .= '</form>' . "\r\n";
|
|
|
|
return $o;
|
|
}
|
|
}
|