2016-09-07 03:10:56 +00:00
< ? php
2022-02-16 04:08:28 +00:00
namespace Code\Module\Settings ;
2016-09-07 03:10:56 +00:00
2019-07-12 05:54:35 +00:00
use App ;
2022-02-16 04:08:28 +00:00
use Code\Lib\Apps ;
use Code\Lib\Libsync ;
use Code\Lib\AccessList ;
use Code\Lib as Zlib ;
use Code\Access\Permissions ;
use Code\Access\PermissionRoles ;
use Code\Access\PermissionLimits ;
use Code\Lib\PermissionDescription ;
use Code\Access\AccessControl ;
use Code\Daemon\Run ;
use Code\Lib\Permcat ;
2022-09-16 10:57:04 +00:00
use Code\Lib\PConfig ;
2022-02-16 04:08:28 +00:00
use Code\Lib\Libacl ;
use Code\Lib\Features ;
use Code\Lib\Menu ;
use Code\Extend\Hook ;
use Code\Render\Theme ;
2022-02-12 20:43:29 +00:00
2022-08-09 21:39:09 +00:00
2021-12-02 23:02:31 +00:00
class Channel
{
public function post ()
{
$channel = App :: get_channel ();
check_form_security_token_redirectOnErr ( '/settings' , 'settings' );
2022-02-12 08:50:48 +00:00
Hook :: call ( 'settings_post' , $_POST );
2021-12-02 23:02:31 +00:00
$set_perms = '' ;
2022-08-09 21:39:09 +00:00
2021-12-02 23:02:31 +00:00
$role = (( x ( $_POST , 'permissions_role' )) ? notags ( trim ( $_POST [ 'permissions_role' ])) : '' );
$oldrole = get_pconfig ( local_channel (), 'system' , 'permissions_role' );
$forbidden_roles = [ 'collection' , 'collection_restricted' ];
if ( in_array ( $role , $forbidden_roles ) || in_array ( $oldrole , $forbidden_roles )) {
$role = $oldrole ;
}
if (( $role != $oldrole ) || ( $role === 'custom' )) {
if ( $role === 'custom' ) {
$hide_presence = ((( x ( $_POST , 'hide_presence' )) && ( intval ( $_POST [ 'hide_presence' ]) == 1 )) ? 1 : 0 );
$def_group = (( x ( $_POST , 'group-selection' )) ? notags ( trim ( $_POST [ 'group-selection' ])) : '' );
2021-12-03 03:01:39 +00:00
$r = q (
" update channel set channel_default_group = '%s' where channel_id = %d " ,
2021-12-02 23:02:31 +00:00
dbesc ( $def_group ),
intval ( local_channel ())
);
$global_perms = Permissions :: Perms ();
foreach ( $global_perms as $k => $v ) {
PermissionLimits :: Set ( local_channel (), $k , intval ( $_POST [ $k ]));
}
$acl = new AccessControl ( $channel );
$acl -> set_from_array ( $_POST );
$x = $acl -> get ();
2021-12-03 03:01:39 +00:00
$r = q (
2022-08-09 21:39:09 +00:00
" update channel set channel_allow_cid = '%s', channel_allow_gid = '%s',
channel_deny_cid = '%s' , channel_deny_gid = '%s' where channel_id = % d " ,
2021-12-02 23:02:31 +00:00
dbesc ( $x [ 'allow_cid' ]),
dbesc ( $x [ 'allow_gid' ]),
dbesc ( $x [ 'deny_cid' ]),
dbesc ( $x [ 'deny_gid' ]),
intval ( local_channel ())
);
} else {
$role_permissions = 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' ]) {
2021-12-03 03:01:39 +00:00
$r = q (
" select hash from pgrp where uid = %d and gname = '%s' limit 1 " ,
2021-12-02 23:02:31 +00:00
intval ( local_channel ()),
dbesc ( t ( 'Friends' ))
);
if ( ! $r ) {
AccessList :: add ( local_channel (), t ( 'Friends' ));
AccessList :: member_add ( local_channel (), t ( 'Friends' ), $channel [ 'channel_hash' ]);
2021-12-03 03:01:39 +00:00
$r = q (
" select hash from pgrp where uid = %d and gname = '%s' limit 1 " ,
2021-12-02 23:02:31 +00:00
intval ( local_channel ()),
dbesc ( t ( 'Friends' ))
);
}
if ( $r ) {
2021-12-03 03:01:39 +00:00
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 " ,
2021-12-02 23:02:31 +00:00
dbesc ( $r [ 0 ][ 'hash' ]),
dbesc ( '<' . $r [ 0 ][ 'hash' ] . '>' ),
intval ( local_channel ())
);
} else {
notice ( sprintf ( 'Default access list \'%s\' not found. Please create and re-submit permission change.' , t ( 'Friends' )) . EOL );
return ;
}
} // no default permissions
else {
2021-12-03 03:01:39 +00:00
q (
2022-08-09 21:39:09 +00:00
" update channel set channel_default_group = '', channel_allow_gid = '', channel_allow_cid = '', channel_deny_gid = '',
2022-09-06 01:10:49 +00:00
channel_deny_cid = '' where channel_id = % d " ,
2021-12-02 23:02:31 +00:00
intval ( local_channel ())
);
}
if ( $role_permissions [ 'perms_connect' ]) {
$x = Permissions :: FilledPerms ( $role_permissions [ 'perms_connect' ]);
$str = Permissions :: serialise ( $x );
set_abconfig ( local_channel (), $channel [ 'channel_hash' ], 'system' , 'my_perms' , $str );
$autoperms = intval ( $role_permissions [ 'perms_auto' ]);
}
if ( $role_permissions [ 'limits' ]) {
foreach ( $role_permissions [ 'limits' ] as $k => $v ) {
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 );
}
// The post_comments permission is critical to privacy so we always allow you to set it, no matter what
// permission role is in place.
$post_comments = array_key_exists ( 'post_comments' , $_POST ) ? intval ( $_POST [ 'post_comments' ]) : PERMS_SPECIFIC ;
PermissionLimits :: Set ( local_channel (), 'post_comments' , $post_comments );
$post_mail = array_key_exists ( 'post_mail' , $_POST ) ? intval ( $_POST [ 'post_mail' ]) : PERMS_SPECIFIC ;
PermissionLimits :: Set ( local_channel (), 'post_mail' , $post_mail );
2022-09-06 01:10:49 +00:00
$default_view_contacts = ( $role === 'social_restricted' ) ? PERMS_SPECIFIC : PERMS_PUBLIC ;
$view_contacts = array_key_exists ( 'view_contacts' , $_POST ) ? intval ( $_POST [ 'view_contacts' ]) : $default_view_contacts ;
PermissionLimits :: Set ( local_channel (), 'view_contacts' , $view_contacts );
2021-12-02 23:02:31 +00:00
$publish = ((( x ( $_POST , 'profile_in_directory' )) && ( intval ( $_POST [ 'profile_in_directory' ]) == 1 )) ? 1 : 0 );
$username = (( x ( $_POST , 'username' )) ? escape_tags ( 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' ])) : '' );
$noindex = (( x ( $_POST , 'noindex' )) ? intval ( $_POST [ 'noindex' ]) : 0 );
$channel_menu = (( x ( $_POST [ 'channel_menu' ])) ? htmlspecialchars_decode ( trim ( $_POST [ 'channel_menu' ]), ENT_QUOTES ) : '' );
2022-06-23 10:47:35 +00:00
$unless_mention_count = (( x ( $_POST , 'unless_mention_count' )) ? intval ( $_POST [ 'unless_mention_count' ]) : 0 );
$unless_tag_count = (( x ( $_POST , 'unless_tag_count' )) ? intval ( $_POST [ 'unless_tag_count' ]) : 0 );
2022-08-09 21:39:09 +00:00
$preview_outbox = (( x ( $_POST , 'preview_outbox' )) ? intval ( $_POST [ 'preview_outbox' ]) : 0 );
2021-12-02 23:02:31 +00:00
$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!
$suggestme = (( x ( $_POST , 'suggestme' )) ? intval ( $_POST [ 'suggestme' ]) : 0 );
$hyperdrive = (( x ( $_POST , 'hyperdrive' )) ? intval ( $_POST [ 'hyperdrive' ]) : 0 );
$activitypub = (( x ( $_POST , 'activitypub' )) ? intval ( $_POST [ 'activitypub' ]) : 0 );
$tag_username = (( x ( $_POST , 'tag_username' )) ? intval ( $_POST [ 'tag_username' ]) : 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' ]) >= 0 && intval ( $_POST [ 'first_day' ]) < 7 ) ? intval ( $_POST [ 'first_day' ]) : 0 );
$mailhost = (( array_key_exists ( 'mailhost' , $_POST )) ? notags ( trim ( $_POST [ 'mailhost' ])) : '' );
$profile_assign = (( x ( $_POST , 'profile_assign' )) ? notags ( trim ( $_POST [ 'profile_assign' ])) : '' );
$permit_all_mentions = (( $_POST [ 'permit_all_mentions' ] == 1 ) ? 1 : 0 );
$close_comment_days = (( $_POST [ 'close_comments' ]) ? intval ( $_POST [ 'close_comments' ]) : 0 );
if ( $close_comment_days ) {
set_pconfig ( local_channel (), 'system' , 'close_comments' , $close_comment_days . ' days' );
} else {
set_pconfig ( local_channel (), 'system' , 'close_comments' , EMPTY_STR );
}
2022-08-09 21:39:09 +00:00
2021-12-02 23:02:31 +00:00
// allow a permission change to over-ride the autoperms setting from the form
if ( ! isset ( $autoperms )) {
$autoperms = (( x ( $_POST , 'autoperms' )) ? intval ( $_POST [ 'autoperms' ]) : 0 );
}
2022-09-16 10:57:04 +00:00
$set_location = ( isset ( $_POST [ 'set_location' ]) ? trim ( $_POST [ 'set_location' ]) : '' );
if ( $set_location ) {
$lat = false ;
$lon = false ;
$tmp = explode ( ',' , $set_location );
if ( count ( $tmp ) > 1 ) {
$lat = floatval ( trim ( $tmp [ 0 ]));
$lon = floatval ( trim ( $tmp [ 1 ]));
}
$valid = $lat || $lon ;
if ( $valid ) {
PConfig :: Set ( local_channel (), 'system' , 'set_location' , ( string ) $lat . ',' . ( string ) $lon );
}
}
2021-12-02 23:02:31 +00:00
$pageflags = $channel [ 'channel_pageflags' ];
$existing_adult = (( $pageflags & PAGE_ADULT ) ? 1 : 0 );
2021-12-03 03:01:39 +00:00
if ( $adult != $existing_adult ) {
2021-12-02 23:02:31 +00:00
$pageflags = ( $pageflags ^ PAGE_ADULT );
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$notify = 0 ;
2021-12-03 03:01:39 +00:00
if ( x ( $_POST , 'notify1' )) {
2021-12-02 23:02:31 +00:00
$notify += intval ( $_POST [ 'notify1' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'notify2' )) {
2021-12-02 23:02:31 +00:00
$notify += intval ( $_POST [ 'notify2' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'notify3' )) {
2021-12-02 23:02:31 +00:00
$notify += intval ( $_POST [ 'notify3' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'notify4' )) {
2021-12-02 23:02:31 +00:00
$notify += intval ( $_POST [ 'notify4' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'notify5' )) {
2021-12-02 23:02:31 +00:00
$notify += intval ( $_POST [ 'notify5' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'notify6' )) {
2021-12-02 23:02:31 +00:00
$notify += intval ( $_POST [ 'notify6' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'notify7' )) {
2021-12-02 23:02:31 +00:00
$notify += intval ( $_POST [ 'notify7' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'notify8' )) {
2021-12-02 23:02:31 +00:00
$notify += intval ( $_POST [ 'notify8' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'notify10' )) {
2021-12-02 23:02:31 +00:00
$notify += intval ( $_POST [ 'notify10' ]);
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$vnotify = 0 ;
2021-12-03 03:01:39 +00:00
if ( x ( $_POST , 'vnotify1' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify1' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify2' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify2' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify3' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify3' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify4' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify4' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify5' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify5' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify6' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify6' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify7' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify7' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify8' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify8' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify9' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify9' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify10' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify10' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify11' ) && is_site_admin ()) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify11' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify12' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify12' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify13' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify13' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify14' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify14' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify15' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify15' ]);
2021-12-03 03:01:39 +00:00
}
if ( x ( $_POST , 'vnotify16' )) {
2021-12-02 23:02:31 +00:00
$vnotify += intval ( $_POST [ 'vnotify16' ]);
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$always_show_in_notices = x ( $_POST , 'always_show_in_notices' ) ? 1 : 0 ;
$err = '' ;
$name_change = false ;
if ( $username != $channel [ 'channel_name' ]) {
$name_change = true ;
2022-01-25 01:26:12 +00:00
$err = Zlib\Channel :: validate_channelname ( $username );
2021-12-02 23:02:31 +00:00
if ( $err ) {
notice ( $err );
return ;
}
}
if ( $timezone != $channel [ 'channel_timezone' ]) {
2021-12-03 03:01:39 +00:00
if ( strlen ( $timezone )) {
2021-12-02 23:02:31 +00:00
date_default_timezone_set ( $timezone );
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
}
$followed_tags = $_POST [ 'followed_tags' ];
$ntags = [];
if ( $followed_tags ) {
$tags = explode ( ',' , $followed_tags );
foreach ( $tags as $t ) {
$t = trim ( $t );
if ( $t ) {
$ntags [] = $t ;
}
}
}
set_pconfig ( local_channel (), 'system' , 'followed_tags' , ( $ntags ) ? $ntags : EMPTY_STR );
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 );
2022-06-23 10:47:35 +00:00
// set_pconfig(local_channel(), 'system', 'anymention', $anymention);
2021-12-02 23:02:31 +00:00
set_pconfig ( local_channel (), 'system' , 'hyperdrive' , $hyperdrive );
set_pconfig ( local_channel (), 'system' , 'activitypub' , $activitypub );
set_pconfig ( local_channel (), 'system' , 'autoperms' , $autoperms );
set_pconfig ( local_channel (), 'system' , 'tag_username' , $tag_username );
set_pconfig ( local_channel (), 'system' , 'permit_all_mentions' , $permit_all_mentions );
2022-06-23 10:47:35 +00:00
set_pconfig ( local_channel (), 'system' , 'unless_mention_count' , $unless_mention_count );
set_pconfig ( local_channel (), 'system' , 'unless_tag_count' , $unless_tag_count );
2021-12-02 23:02:31 +00:00
set_pconfig ( local_channel (), 'system' , 'noindex' , $noindex );
2022-08-09 21:39:09 +00:00
set_pconfig ( local_channel (), 'system' , 'preview_outbox' , $preview_outbox );
2021-12-02 23:02:31 +00:00
2021-12-03 03:01:39 +00:00
$r = q (
2022-09-04 05:51:24 +00:00
" update channel set channel_name = '%s', channel_pageflags = %d, channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_friend_req = %d, channel_expire_days = %d $set_perms where channel_id = %d " ,
2021-12-02 23:02:31 +00:00
dbesc ( $username ),
intval ( $pageflags ),
dbesc ( $timezone ),
dbesc ( $defloc ),
intval ( $notify ),
intval ( $maxreq ),
intval ( $expire ),
intval ( local_channel ())
);
2021-12-03 03:01:39 +00:00
if ( $r ) {
2021-12-02 23:02:31 +00:00
info ( t ( 'Settings updated.' ) . EOL );
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
2021-12-03 03:01:39 +00:00
$r = q (
2022-09-05 03:40:28 +00:00
" UPDATE profile SET publish = %d WHERE is_default = 1 AND uid = %d " ,
2021-12-02 23:02:31 +00:00
intval ( $publish ),
intval ( local_channel ())
);
2021-12-03 03:01:39 +00:00
$r = q (
" UPDATE xchan SET xchan_hidden = %d WHERE xchan_hash = '%s' " ,
2021-12-02 23:02:31 +00:00
intval ( 1 - $publish ),
intval ( $channel [ 'channel_hash' ])
);
if ( $name_change ) {
// catch xchans for all protocols by matching the url
2021-12-03 03:01:39 +00:00
$r = q (
" update xchan set xchan_name = '%s', xchan_name_date = '%s' where xchan_url = '%s' " ,
2021-12-02 23:02:31 +00:00
dbesc ( $username ),
dbesc ( datetime_convert ()),
dbesc ( z_root () . '/channel/' . $channel [ 'channel_address' ])
);
2021-12-03 03:01:39 +00:00
$r = q (
" update profile set fullname = '%s' where uid = %d and is_default = 1 " ,
2021-12-02 23:02:31 +00:00
dbesc ( $username ),
intval ( $channel [ 'channel_id' ])
);
2022-01-25 01:26:12 +00:00
if ( Zlib\Channel :: is_system ( $channel [ 'channel_id' ])) {
2021-12-02 23:02:31 +00:00
set_config ( 'system' , 'sitename' , $username );
}
}
Run :: Summon ([ 'Directory' , local_channel ()]);
Libsync :: build_sync_packet ();
goaway ( z_root () . '/settings' );
return ; // NOTREACHED
}
public function get ()
{
require_once ( 'include/permissions.php' );
$yes_no = [ t ( 'No' ), t ( 'Yes' )];
2021-12-03 03:01:39 +00:00
$p = q (
" SELECT * FROM profile WHERE is_default = 1 AND uid = %d LIMIT 1 " ,
2021-12-02 23:02:31 +00:00
intval ( local_channel ())
);
2021-12-03 03:01:39 +00:00
if ( count ( $p )) {
2021-12-02 23:02:31 +00:00
$profile = $p [ 0 ];
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
load_pconfig ( local_channel (), 'expire' );
$channel = App :: get_channel ();
$global_perms = Permissions :: Perms ();
$permiss = [];
$perm_opts = [
[ t ( 'Restricted - from connections only' ), PERMS_SPECIFIC ],
[ t ( 'Semi-public - from anybody that can be identified' ), PERMS_AUTHED ],
[ t ( 'Public - from anybody on the internet' ), PERMS_PUBLIC ]
];
$limits = PermissionLimits :: Get ( local_channel ());
$anon_comments = get_config ( 'system' , 'anonymous_comments' );
foreach ( $global_perms as $k => $perm ) {
$options = [];
$can_be_public = (( strstr ( $k , 'view' ) || ( $k === 'post_comments' && $anon_comments )) ? true : false );
foreach ( $perm_opts as $opt ) {
2021-12-03 03:01:39 +00:00
if ( $opt [ 1 ] == PERMS_PUBLIC && ( ! $can_be_public )) {
2021-12-02 23:02:31 +00:00
continue ;
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$options [ $opt [ 1 ]] = $opt [ 0 ];
}
if ( $k === 'post_comments' ) {
$comment_perms = [ $k , $perm , $limits [ $k ], '' , $options ];
} elseif ( $k === 'post_mail' ) {
$mail_perms = [ $k , $perm , $limits [ $k ], '' , $options ];
2022-09-06 01:10:49 +00:00
} elseif ( $k === 'view_contacts' ) {
$view_contact_perms = [ $k , $perm , $limits [ $k ], '' , $options ];
2021-12-02 23:02:31 +00:00
} else {
$permiss [] = array ( $k , $perm , $limits [ $k ], '' , $options );
}
}
2021-12-03 03:01:39 +00:00
// logger('permiss: ' . print_r($permiss,true));
2021-12-02 23:02:31 +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' ];
$expire = $channel [ 'channel_expire_days' ];
$adult_flag = intval ( $channel [ 'channel_pageflags' ] & PAGE_ADULT );
$sys_expire = get_config ( 'system' , 'default_expire_days' );
$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 ();
2022-02-12 20:43:29 +00:00
$opt_tpl = Theme :: get_template ( " field_checkbox.tpl " );
2021-12-02 23:02:31 +00: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 (
'$field' => array ( 'profile_in_directory' , t ( 'Publish your 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 : '' );
$webbie = $nickname . '@' . App :: get_hostname ();
$intl_nickname = unpunify ( $nickname ) . '@' . unpunify ( App :: get_hostname ());
2022-02-12 20:43:29 +00:00
$prof_addr = replace_macros ( Theme :: get_template ( 'channel_settings_header.tpl' ), array (
2021-12-02 23:02:31 +00:00
'$desc' => t ( 'Your channel address is' ),
'$nickname' => (( $intl_nickname === $webbie ) ? $webbie : $intl_nickname . ' (' . $webbie . ')' ),
'$compat' => t ( 'Friends using compatible applications can use this address to connect with you.' ),
'$subdir' => $subdir ,
'$davdesc' => t ( 'Your files/photos are accessible as a network drive at' ),
'$davpath' => z_root () . '/dav/' . $nickname ,
'$windows' => t ( '(Windows)' ),
'$other' => t ( '(other platforms)' ),
'$or' => t ( 'or' ),
'$davspath' => 'davs://' . App :: get_hostname () . '/dav/' . $nickname ,
'$basepath' => App :: get_hostname ()
));
$pcat = new 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' );
$acl = new AccessControl ( $channel );
$perm_defaults = $acl -> get ();
$group_select = AccessList :: select ( local_channel (), $channel [ 'channel_default_group' ]);
2022-01-26 05:43:05 +00:00
$m1 = Menu :: list ( local_channel ());
2021-12-02 23:02:31 +00:00
$menu = false ;
if ( $m1 ) {
$menu = [];
$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' );
2021-12-03 03:01:39 +00:00
if ( ! $evdays ) {
2021-12-02 23:02:31 +00:00
$evdays = 3 ;
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$permissions_role = get_pconfig ( local_channel (), 'system' , 'permissions_role' );
2021-12-03 03:01:39 +00:00
if ( ! $permissions_role ) {
2021-12-02 23:02:31 +00:00
$permissions_role = 'custom' ;
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
2022-02-12 20:43:29 +00:00
$autoperms = replace_macros ( Theme :: get_template ( 'field_checkbox.tpl' ), [
2022-01-28 18:39:46 +00:00
'$field' => [ 'autoperms' , t ( 'Automatic connection approval' ), (( get_pconfig ( local_channel (), 'system' , 'autoperms' , 0 )) ? 1 : 0 ),
t ( 'If enabled, connection requests will be approved without your interaction' ), $yes_no ]
]);
2021-12-02 23:02:31 +00:00
$hyperdrive = [ 'hyperdrive' , t ( 'Friend-of-friend conversations' ), (( get_pconfig ( local_channel (), 'system' , 'hyperdrive' , true )) ? 1 : 0 ), t ( 'Import public third-party conversations in which your connections participate.' ), $yes_no ];
if ( get_config ( 'system' , 'activitypub' , ACTIVITYPUB_ENABLED )) {
$apconfig = true ;
2022-02-12 20:43:29 +00:00
$activitypub = replace_macros ( Theme :: get_template ( 'field_checkbox.tpl' ), [ '$field' => [ 'activitypub' , t ( 'Enable ActivityPub protocol' ), (( get_pconfig ( local_channel (), 'system' , 'activitypub' , ACTIVITYPUB_ENABLED )) ? 1 : 0 ), t ( 'ActivityPub is an emerging internet standard for social communications' ), $yes_no ]]);
2021-12-02 23:02:31 +00:00
} else {
$apconfig = false ;
$activitypub = '<input type="hidden" name="activitypub" value="' . intval ( ACTIVITYPUB_ENABLED ) . '" >' . EOL ;
}
$permissions_set = (( $permissions_role != 'custom' ) ? true : false );
$perm_roles = PermissionRoles :: roles ();
// Don't permit changing to a collection (@TODO unless there is a mechanism to select the channel_parent)
unset ( $perm_roles [ 'Collection' ]);
$vnotify = get_pconfig ( local_channel (), 'system' , 'vnotify' );
$always_show_in_notices = get_pconfig ( local_channel (), 'system' , 'always_show_in_notices' );
2021-12-03 03:01:39 +00:00
if ( $vnotify === false ) {
2021-12-02 23:02:31 +00:00
$vnotify = ( - 1 );
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$plugin = [ 'basic' => '' , 'security' => '' , 'notify' => '' , 'misc' => '' ];
2022-02-12 08:50:48 +00:00
Hook :: call ( 'channel_settings' , $plugin );
2021-12-02 23:02:31 +00:00
$public_stream_mode = intval ( get_config ( 'system' , 'public_stream_mode' , PUBLIC_STREAM_NONE ));
$ft = get_pconfig ( local_channel (), 'system' , 'followed_tags' , '' );
if ( $ft && is_array ( $ft )) {
$followed = implode ( ',' , $ft );
} else {
$followed = EMPTY_STR ;
}
2022-06-23 10:47:35 +00:00
$mention_count = get_pconfig ( local_channel (), 'system' , 'unless_mention_count' ,
get_config ( 'system' , 'unless_mention_count' , 20 ));
$tag_count = get_pconfig ( local_channel (), 'system' , 'unless_tag_count' ,
get_config ( 'system' , 'unless_tag_count' , 20 ));
2022-09-03 05:23:54 +00:00
$o = replace_macros ( Theme :: get_template ( 'settings.tpl' ), [
2021-12-02 23:02:31 +00:00
'$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 , '' ),
'$timezone' => array ( 'timezone_select' , t ( 'Your timezone' ), $timezone , t ( 'This is important for showing the correct time on shared events' ), get_timezones ()),
'$defloc' => array ( 'defloc' , t ( 'Default post location' ), $defloc , t ( 'Optional geographical location to display on your posts' )),
'$allowloc' => array ( 'allow_location' , t ( 'Obtain post location from your web browser or device' ), (( get_pconfig ( local_channel (), 'system' , 'use_browser_location' )) ? 1 : '' ), '' , $yes_no ),
2022-09-16 10:57:04 +00:00
'$set_location' => [ 'set_location' , t ( 'Over-ride your web browser or device and use these coordinates (latitude,longitude)' ), get_pconfig ( local_channel (), 'system' , 'set_location' )],
2021-12-02 23:02:31 +00:00
'$adult' => array ( 'adult' , t ( 'Adult content' ), $adult_flag , t ( 'Enable to indicate if this channel frequently or regularly publishes adult content. (Please also tag any adult material and/or nudity with #NSFW)' ), $yes_no ),
'$h_prv' => t ( 'Security and Privacy' ),
'$permissions_set' => $permissions_set ,
'$perms_set_msg' => t ( 'Your permissions are already configured. Click to view/adjust' ),
2022-08-09 21:39:09 +00:00
'$hide_presence' => array ( 'hide_presence' , t ( 'Hide your online presence' ), $hide_presence , t ( 'Prevents displaying in your profile that you are online' ), $yes_no ),
'$preview_outbox' => [ 'preview_outbox' , t ( 'Preview some public posts from new connections prior to connection approval' ), intval ( get_pconfig ( $channel [ 'channel_id' ], 'system' , 'preview_outbox' , false )), '' , $yes_no ],
2021-12-02 23:02:31 +00:00
'$permiss_arr' => $permiss ,
'$comment_perms' => $comment_perms ,
'$mail_perms' => $mail_perms ,
2022-09-06 01:10:49 +00:00
'$view_contact_perms' => $view_contact_perms ,
2022-06-21 20:07:49 +00:00
'$noindex' => [ 'noindex' , t ( 'Forbid indexing of your public channel content by search engines' ), get_pconfig ( $channel [ 'channel_id' ], 'system' , 'noindex' ), '' , $yes_no ],
2022-08-09 21:39:09 +00:00
'$close_comments' => [ 'close_comments' , t ( 'Disable acceptance of comments on your posts after this many days' ), (( intval ( get_pconfig ( local_channel (), 'system' , 'close_comments' ))) ? intval ( get_pconfig ( local_channel (), 'system' , 'close_comments' )) : EMPTY_STR ), t ( 'Leave unset or enter 0 to allow comments indefinitely' )],
2021-12-02 23:02:31 +00:00
'$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 conversations you have not participated in 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 provide an expiration policy.' )) . ' ' . 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 Access List' ),
'$permdesc' => t ( " (click to open/close) " ),
2022-08-09 21:39:09 +00:00
'$aclselect' => Libacl :: populate ( $perm_defaults , false , PermissionDescription :: fromDescription ( t ( 'Use your default audience setting for the type of object published' ))),
2021-12-02 23:02:31 +00:00
'$profseltxt' => t ( 'Profile to assign new connections' ),
2022-01-25 23:20:02 +00:00
'$profselect' => (( Features :: enabled ( local_channel (), 'multi_profiles' )) ? contact_profile_assign ( get_pconfig ( local_channel (), 'system' , 'profile_assign' , '' )) : '' ),
2021-12-02 23:02:31 +00:00
'$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 ,
'$can_change_role' => (( in_array ( $permissions_role , [ 'collection' , 'collection_restricted' ])) ? false : true ),
'$permissions_role' => $permissions_role ,
'$role' => array ( 'permissions_role' , t ( 'Channel type and privacy' ), $permissions_role , '' , $perm_roles , ' onchange="update_role_text(); return false;"' ),
2022-01-28 19:31:32 +00:00
'$defpermcat' => [ 'defpermcat' , t ( 'Default Permissions Role' ), $default_permcat , '' , $permcats ],
2022-01-22 10:04:36 +00:00
'$permcat_enable' => Apps :: system_app_installed ( local_channel (), 'Roles' ),
2021-12-02 23:02:31 +00:00
'$profile_in_dir' => $profile_in_dir ,
'$autoperms' => $autoperms ,
'$hyperdrive' => $hyperdrive ,
'$activitypub' => $activitypub ,
'$apconfig' => $apconfig ,
'$close' => t ( 'Close' ),
'$h_not' => t ( 'Notifications' ),
'$activity_options' => t ( 'By default post a status message when:' ),
'$post_newfriend' => array ( 'post_newfriend' , t ( 'accepting a friend request' ), $post_newfriend , '' , $yes_no ),
2022-02-12 20:43:29 +00:00
'$post_joingroup' => array ( 'post_joingroup' , t ( 'joining a group/community' ), $post_joingroup , '' , $yes_no ),
2021-12-02 23:02:31 +00:00
'$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 ),
2021-12-03 03:01:39 +00:00
// '$notify2' => array('notify2', t('Your connections are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, '', $yes_no),
2021-12-02 23:02:31 +00:00
'$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 ),
'$notify10' => array ( 'notify10' , t ( 'Someone shares a followed conversation' ), ( $notify & NOTIFY_RESHARE ), NOTIFY_RESHARE , '' , $yes_no ),
'$notify5' => array ( 'notify5' , t ( 'You receive a direct (private) message' ), ( $notify & NOTIFY_MAIL ), NOTIFY_MAIL , '' , $yes_no ),
2021-12-03 03:01:39 +00:00
// '$notify6' => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, '', $yes_no),
2021-12-02 23:02:31 +00:00
'$notify7' => array ( 'notify7' , t ( 'You are tagged in a post' ), ( $notify & NOTIFY_TAGSELF ), NOTIFY_TAGSELF , '' , $yes_no ),
2021-12-03 03:01:39 +00:00
// '$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, '', $yes_no),
2021-12-02 23:02:31 +00:00
'$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 stream 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 direct 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' => (( is_site_admin ()) ? array ( 'vnotify11' , t ( 'System Registrations' ), ( $vnotify & VNOTIFY_REGISTER ), VNOTIFY_REGISTER , '' , $yes_no ) : []),
2021-12-03 03:01:39 +00:00
// '$vnotify12' => array('vnotify12', t('Unseen shared files'), ($vnotify & VNOTIFY_FILES), VNOTIFY_FILES, '', $yes_no),
2021-12-02 23:02:31 +00:00
'$vnotify13' => (( $public_stream_mode ) ? [ 'vnotify13' , t ( 'Unseen public stream activity' ), ( $vnotify & VNOTIFY_PUBS ), VNOTIFY_PUBS , '' , $yes_no ] : []),
'$vnotify14' => array ( 'vnotify14' , t ( 'Unseen likes and dislikes' ), ( $vnotify & VNOTIFY_LIKE ), VNOTIFY_LIKE , '' , $yes_no ),
2022-02-12 20:43:29 +00:00
'$vnotify15' => array ( 'vnotify15' , t ( 'Unseen group posts' ), ( $vnotify & VNOTIFY_FORUMS ), VNOTIFY_FORUMS , '' , $yes_no ),
2021-12-02 23:02:31 +00:00
'$vnotify16' => (( is_site_admin ()) ? array ( 'vnotify16' , t ( 'Reported content' ), ( $vnotify & VNOTIFY_REPORTS ), VNOTIFY_REPORTS , '' , $yes_no ) : []),
'$desktop_notifications_info' => t ( 'Desktop notifications are unavailable because the required browser permission has not been granted' ),
'$desktop_notifications_request' => t ( 'Grant permission' ),
'$mailhost' => [ 'mailhost' , t ( 'Email notifications sent from (hostname)' ), get_pconfig ( local_channel (), 'system' , 'email_notify_host' , App :: get_hostname ()), sprintf ( t ( 'If your channel is mirrored to multiple locations, 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 ( 'Show new wall posts, private messages and connections under Notices' ), $always_show_in_notices , 1 , '' , $yes_no ),
2021-12-21 22:03:17 +00:00
'$permit_all_mentions' => [ 'permit_all_mentions' , t ( 'Accept messages from strangers which mention you' ), get_pconfig ( local_channel (), 'system' , 'permit_all_mentions' ), t ( 'This setting bypasses normal permissions' ), $yes_no ],
2021-12-02 23:02:31 +00:00
'$followed_tags' => [ 'followed_tags' , t ( 'Accept messages from strangers which include any of the following hashtags' ), $followed , t ( 'comma separated, do not include the #' )],
2022-06-23 10:47:35 +00:00
'$unless_mention_count' => [ 'unless_mention_count' , t ( 'Unless more than this many channels are mentioned' ), $mention_count , t ( '0 for unlimited' )],
'$unless_tag_count' => [ 'unless_tag_count' , t ( 'Unless more than this many hashtags are used' ), $tag_count , t ( '0 for unlimited' )],
2021-12-02 23:02:31 +00:00
'$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' ],
2022-06-20 01:07:43 +00:00
'$lbl_time' => t ( 'Date and Time' ),
2021-12-02 23:02:31 +00:00
'$miscdoc' => t ( 'This section is reserved for use by optional addons and apps to provide additional settings.' ),
'$h_advn' => t ( 'Advanced Account/Page Type Settings' ),
'$h_descadvn' => t ( 'Change the behaviour of this account for special situations' ),
'$lbl_misc' => t ( 'Miscellaneous' ),
'$photo_path' => array ( 'photo_path' , t ( 'Default photo upload folder name' ), get_pconfig ( local_channel (), 'system' , 'photo_path' ), t ( '%Y - current year, %m - current month' )),
'$attach_path' => array ( 'attach_path' , t ( 'Default file upload folder name' ), 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.' ),
'$tag_username' => [ 'tag_username' , t ( 'Mentions should display' ), intval ( get_pconfig ( local_channel (), 'system' , 'tag_username' , get_config ( 'system' , 'tag_username' , false ))), t ( 'Changes to this setting are applied to new posts/comments only. It is not retroactive.' ),
[
0 => t ( 'the channel display name [example: @Barbara Jenkins]' ),
1 => t ( 'the channel nickname [example: @barbara1976]' ),
2 => t ( 'combined [example: @Barbara Jenkins (barbara1976)]' ),
127 => t ( 'no preference, use the system default' ),
]],
'$cal_first_day' => array ( 'first_day' , t ( 'Calendar week begins on' ), intval ( get_pconfig ( local_channel (), 'system' , 'cal_first_day' )), t ( 'This varies by country/culture' ),
[ 0 => t ( 'Sunday' ),
1 => t ( 'Monday' ),
2 => t ( 'Tuesday' ),
3 => t ( 'Wednesday' ),
4 => t ( 'Thursday' ),
5 => t ( 'Friday' ),
6 => t ( 'Saturday' )
]),
]);
2022-02-12 08:50:48 +00:00
Hook :: call ( 'settings_form' , $o );
2021-12-02 23:02:31 +00:00
return $o ;
}
2016-09-07 03:10:56 +00:00
}