]> git.mxchange.org Git - friendica.git/blobdiff - mod/settings.php
modified: view/theme/smoothly/theme.php
[friendica.git] / mod / settings.php
index 721468437e5e2019333195f73ee98e65822fc6b4..fd2bb9e570d70f04f2460177cccc5a20375a6338 100644 (file)
@@ -15,32 +15,13 @@ function get_theme_config_file($theme){
 }
 
 function settings_init(&$a) {
-       // These lines provide the javascript needed by the acl selector
-
-       $a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "';" ;
-
-       $a->page['htmlhead'] .= <<< EOT
-
-       $(document).ready(function() {
 
-               $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
-                       var selstr;
-                       $('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
-                               selstr = $(this).text();
-                               $('#jot-perms-icon').removeClass('unlock').addClass('lock');
-                               $('#jot-public').hide();
-                       });
-                       if(selstr == null) { 
-                               $('#jot-perms-icon').removeClass('lock').addClass('unlock');
-                               $('#jot-public').show();
-                       }
-
-               }).trigger('change');
-
-       });
+       // These lines provide the javascript needed by the acl selector
 
-       </script>
-EOT;
+       $tpl = get_markup_template("settings-head.tpl");
+       $a->page['htmlhead'] .= replace_macros($tpl,array(
+               '$ispublic' => t('everybody')
+       ));
 
 
 
@@ -75,12 +56,18 @@ EOT;
                        'label' => t('Export personal data'),
                        'url' => $a->get_baseurl(true) . '/uexport',
                        'selected' => ''
+               ),
+               array(
+                       'label' => t('Remove account'),
+                       'url' => $a->get_baseurl(true) . '/removeme',
+                       'selected' => ''
                )
        );
        
        $tabtpl = get_markup_template("generic_links_widget.tpl");
        $a->page['aside'] = replace_macros($tabtpl, array(
                '$title' => t('Settings'),
+               '$class' => 'settings-widget',
                '$items' => $tabs,
        ));
 
@@ -249,17 +236,22 @@ function settings_post(&$a) {
                check_form_security_token_redirectOnErr('/settings/display', 'settings_display');
 
                $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme']))  : $a->user['theme']);
+               $mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme']))  : '');
                $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)
-                       $browser_update = 40000;
+                       $browser_update = 10000;
 
                $itemspage_network   = ((x($_POST,'itemspage_network')) ? intval($_POST['itemspage_network']) : 40);
                if($itemspage_network > 100)
-                                       $itemspage_network = 40;
+                       $itemspage_network = 100;
 
 
+               if($mobile_theme !== '') {
+                       set_pconfig(local_user(),'system','mobile_theme',$mobile_theme);
+               }
+
                set_pconfig(local_user(),'system','update_interval', $browser_update);
                set_pconfig(local_user(),'system','itemspage_network', $itemspage_network);
                set_pconfig(local_user(),'system','no_smilies',$nosmile);
@@ -325,14 +317,14 @@ function settings_post(&$a) {
        $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);
+       $def_gid          = ((x($_POST,'group-selection')) ? intval($_POST['group-selection']) : 0);
 
 
        $expire_items     = ((x($_POST,'expire_items')) ? intval($_POST['expire_items'])         : 0);
        $expire_notes     = ((x($_POST,'expire_notes')) ? intval($_POST['expire_notes'])         : 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);
        $publish          = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
@@ -347,9 +339,9 @@ function settings_post(&$a) {
        $hide_friends     = (($_POST['hide-friends'] == 1) ? 1: 0);
        $hidewall         = (($_POST['hidewall'] == 1) ? 1: 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);
 
-
        $notify = 0;
 
        if(x($_POST,'notify1'))
@@ -366,6 +358,8 @@ function settings_post(&$a) {
                $notify += intval($_POST['notify6']);
        if(x($_POST,'notify7'))
                $notify += intval($_POST['notify7']);
+       if(x($_POST,'notify8'))
+               $notify += intval($_POST['notify8']);
 
        $email_changed = false;
 
@@ -428,13 +422,28 @@ function settings_post(&$a) {
        set_pconfig(local_user(),'expire','notes', $expire_notes);
        set_pconfig(local_user(),'expire','starred', $expire_starred);
        set_pconfig(local_user(),'expire','photos', $expire_photos);
+       set_pconfig(local_user(),'expire','network_only', $expire_network_only);
 
        set_pconfig(local_user(),'system','suggestme', $suggestme);
        set_pconfig(local_user(),'system','post_newfriend', $post_newfriend);
+       set_pconfig(local_user(),'system','post_joingroup', $post_joingroup);
        set_pconfig(local_user(),'system','post_profilechange', $post_profilechange);
 
 
-       $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s',  `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `blockwall` = %d, `hidewall` = %d, `blocktags` = %d, `unkmail` = %d, `cntunkmail` = %d  WHERE `uid` = %d LIMIT 1",
+       if($page_flags == PAGE_PRVGROUP) {
+               $hidewall = 1;
+               if((! $str_contact_allow) && (! $str_group_allow) && (! $str_contact_deny) && (! $str_group_deny)) {
+                       if($def_gid) {
+                               info( t('Private forum has no privacy permissions. Using default privacy group.'). EOL);
+                               $str_group_allow = '<' . $def_gid . '>';
+                       }
+                       else {
+                               notice( t('Private forum has no privacy permissions and no default privacy group.') . EOL);
+                       } 
+               }
+       }
+
+       $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s',  `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `def_gid` = %d, `blockwall` = %d, `hidewall` = %d, `blocktags` = %d, `unkmail` = %d, `cntunkmail` = %d  WHERE `uid` = %d LIMIT 1",
                        dbesc($username),
                        dbesc($email),
                        dbesc($openid),
@@ -450,6 +459,7 @@ function settings_post(&$a) {
                        intval($maxreq),
                        intval($expire),
                        dbesc($openidserver),
+                       intval($def_gid),
                        intval($blockwall),
                        intval($hidewall),
                        intval($blocktags),
@@ -492,10 +502,11 @@ function settings_post(&$a) {
        require_once('include/profile_update.php');
        profile_change();
 
-       $_SESSION['theme'] = $theme;
+       //$_SESSION['theme'] = $theme;
        if($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) {
 
                // FIXME - set to un-verified, blocked and redirect to logout
+               // Why? Are we verifying people or email addresses?
 
        }
 
@@ -654,6 +665,14 @@ function settings_content(&$a) {
 
 
                $tpl = get_markup_template("settings_connectors.tpl");
+
+               if(! service_class_allows(local_user(),'email_connect')) {
+                       $mail_disabled_message = upgrade_bool_message();
+               }
+               else {
+                       $mail_disabled_message = (($mail_disabled) ? t('Email access is disabled on this site.') : '');
+               }
+       
                $o .= replace_macros($tpl, array(
                        '$form_security_token' => get_form_security_token("settings_connectors"),
                        
@@ -665,7 +684,7 @@ function settings_content(&$a) {
                        '$h_imap' => t('Email/Mailbox Setup'),
                        '$imap_desc' => t("If you wish to communicate with email contacts using this service \x28optional\x29, please specify how to connect to your mailbox."),
                        '$imap_lastcheck' => array('imap_lastcheck', t('Last successful email check:'), $mail_chk,''),
-                       '$mail_disabled' => (($mail_disabled) ? t('Email access is disabled on this site.') : ''),
+                       '$mail_disabled' => $mail_disabled_message,
                        '$mail_server'  => array('mail_server',  t('IMAP server name:'), $mail_server, ''),
                        '$mail_port'    => array('mail_port',    t('IMAP port:'), $mail_port, ''),
                        '$mail_ssl'             => array('mail_ssl',     t('Security:'), strtoupper($mail_ssl), '', array( 'notls'=>t('None'), 'TLS'=>'TLS', 'SSL'=>'SSL')),
@@ -691,30 +710,41 @@ function settings_content(&$a) {
                $default_theme = get_config('system','theme');
                if(! $default_theme)
                        $default_theme = 'default';
+               $default_mobile_theme = get_config('system','mobile-theme');
+               if(! $mobile_default_theme)
+                       $mobile_default_theme = 'none';
 
                $allowed_themes_str = get_config('system','allowed_themes');
                $allowed_themes_raw = explode(',',$allowed_themes_str);
                $allowed_themes = array();
                if(count($allowed_themes_raw))
-                       foreach($allowed_themes_raw as $x)
-                               if(strlen(trim($x)))
+                       foreach($allowed_themes_raw as $x) 
+                               if(strlen(trim($x)) && is_dir("view/theme/$x"))
                                        $allowed_themes[] = trim($x);
 
                
                $themes = array();
+               $mobile_themes = array("---" => t('No special theme for mobile devices'));
                $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');
+                               $is_mobile = file_exists('view/theme/' . $th . '/mobile');
                                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 - \x28Experimental\x29", $f) : $f);
-                                       $themes[$f]=$theme_name;
+                                       if($is_mobile) {
+                                               $mobile_themes[$f]=$theme_name;
+                                       }
+                                       else {
+                                               $themes[$f]=$theme_name;
+                                       }
                                }
                        }
                }
                $theme_selected = (!x($_SESSION,'theme')? $default_theme : $_SESSION['theme']);
+               $mobile_theme_selected = (!x($_SESSION,'mobile-theme')? $default_mobile_theme : $_SESSION['mobile-theme']);
                
                $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
@@ -740,14 +770,20 @@ function settings_content(&$a) {
                        '$baseurl' => $a->get_baseurl(true),
                        '$uid' => local_user(),
                
-                       '$theme'        => array('theme', t('Display Theme:'), $theme_selected, '', $themes),
+                       '$theme'        => array('theme', t('Display Theme:'), $theme_selected, '', $themes, true),
+                       '$mobile_theme' => array('mobile_theme', t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, false),
                        '$ajaxint'   => array('browser_update',  t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')),
-                       '$itemspage_network'   => array('itemspage_network',  t("Number of items to display on the network page:"), $itemspage_network, t('Maximum of 100 items')),
+                       '$itemspage_network'   => array('itemspage_network',  t("Number of items to display per page:"), $itemspage_network, t('Maximum of 100 items')),
                        '$nosmile'      => array('nosmile', t("Don't show emoticons"), $nosmile, ''),
                        
                        '$theme_config' => $theme_config,
                ));
                
+               $tpl = get_markup_template("settings_display_end.tpl");
+               $a->page['end'] .= replace_macros($tpl, array(
+                       '$theme'        => array('theme', t('Display Theme:'), $theme_selected, '', $themes)
+               ));
+
                return $o;
        }
        
@@ -790,6 +826,9 @@ function settings_content(&$a) {
        $expire_photos = get_pconfig(local_user(), 'expire','photos');
        $expire_photos = (($expire_photos===false)? '0' : $expire_photos); // default if not set: 0
 
+       $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
+
 
        $suggestme = get_pconfig(local_user(), 'system','suggestme');
        $suggestme = (($suggestme===false)? '0': $suggestme); // default if not set: 0
@@ -797,6 +836,9 @@ function settings_content(&$a) {
        $post_newfriend = get_pconfig(local_user(), 'system','post_newfriend');
        $post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // default if not set: 0
 
+       $post_joingroup = get_pconfig(local_user(), 'system','post_joingroup');
+       $post_joingroup = (($post_joingroup===false)? '0': $post_joingroup); // default if not set: 0
+
        $post_profilechange = get_pconfig(local_user(), 'system','post_profilechange');
        $post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
 
@@ -808,21 +850,27 @@ function settings_content(&$a) {
 
        $pageset_tpl = get_markup_template('pagetypes.tpl');
        $pagetype = replace_macros($pageset_tpl,array(
-               '$page_normal'  => array('page-flags', t('Normal Account'), PAGE_NORMAL, 
+               '$page_normal'  => array('page-flags', t('Normal Account Page'), PAGE_NORMAL, 
                                                                        t('This account is a normal personal profile'), 
                                                                        ($a->user['page-flags'] == PAGE_NORMAL)),
                                                                
-               '$page_soapbox'         => array('page-flags', t('Soapbox Account'), PAGE_SOAPBOX, 
+               '$page_soapbox'         => array('page-flags', t('Soapbox Page'), PAGE_SOAPBOX, 
                                                                        t('Automatically approve all connection/friend requests as read-only fans'), 
                                                                        ($a->user['page-flags'] == PAGE_SOAPBOX)),
                                                                        
-               '$page_community'       => array('page-flags', t('Community/Celebrity Account'), PAGE_COMMUNITY, 
+               '$page_community'       => array('page-flags', t('Community Forum/Celebrity Account'), PAGE_COMMUNITY, 
                                                                        t('Automatically approve all connection/friend requests as read-write fans'), 
                                                                        ($a->user['page-flags'] == PAGE_COMMUNITY)),
                                                                        
-               '$page_freelove'        => array('page-flags', t('Automatic Friend Account'), PAGE_FREELOVE, 
+               '$page_freelove'        => array('page-flags', t('Automatic Friend Page'), PAGE_FREELOVE, 
                                                                        t('Automatically approve all connection/friend requests as friends'), 
                                                                        ($a->user['page-flags'] == PAGE_FREELOVE)),
+
+               '$page_prvgroup'        => array('page-flags', t('Private Forum [Experimental]'), PAGE_PRVGROUP, 
+                                                                       t('Private forum - approved members only'), 
+                                                                       ($a->user['page-flags'] == PAGE_PRVGROUP)),
+
+
        ));
 
        $noid = get_config('system','no_openid');
@@ -886,18 +934,12 @@ function settings_content(&$a) {
 
        ));
 
-
-
-
        $invisible = (((! $profile['publish']) && (! $profile['net-publish']))
                ? true : false);
 
        if($invisible)
                info( t('Profile is <strong>not published</strong>.') . EOL );
 
-       
-
-
 
        $subdir = ((strlen($a->get_path())) ? '<br />' . t('or') . ' ' . $a->get_baseurl(true) . '/profile/' . $nickname : '');
 
@@ -922,8 +964,12 @@ function settings_content(&$a) {
                'notes' => array('expire_notes',  t("Expire personal notes:"), $expire_notes, '', array(t('No'),t('Yes'))),
                'starred' => array('expire_starred',  t("Expire starred posts:"), $expire_starred, '', array(t('No'),t('Yes'))),
                'photos' => array('expire_photos',  t("Expire photos:"), $expire_photos, '', array(t('No'),t('Yes'))),          
+               'network_only' => array('expire_network_only',  t("Only expire posts by others:"), $expire_network_only, '', array(t('No'),t('Yes'))),          
        );
 
+       require_once('include/group.php');
+       $group_select = mini_group_select(local_user(),$a->user['def_gid']);
+
        $o .= replace_macros($stpl,array(
                '$ptitle'       => t('Account Settings'),
 
@@ -931,7 +977,6 @@ function settings_content(&$a) {
                '$baseurl' => $a->get_baseurl(true),
                '$uid' => local_user(),
                '$form_security_token' => get_form_security_token("settings"),
-               
                '$nickname_block' => $prof_addr,
                
                '$h_pass'       => t('Password Settings'),
@@ -958,6 +1003,10 @@ function settings_content(&$a) {
                '$suggestme' => $suggestme,
                '$blockwall'=> $blockwall, // array('blockwall', t('Allow friends to post to your profile page:'), !$blockwall, ''),
                '$blocktags'=> $blocktags, // array('blocktags', t('Allow friends to tag your posts:'), !$blocktags, ''),
+
+               '$group_select' => $group_select,
+
+
                '$expire'       => $expire_arr,
 
                '$profile_in_dir' => $profile_in_dir,
@@ -971,6 +1020,7 @@ function settings_content(&$a) {
                '$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, ''),
@@ -980,22 +1030,13 @@ function settings_content(&$a) {
                '$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, ''),           
                
                
-               '$h_advn' => t('Advanced Page Settings'),
+               '$h_advn' => t('Advanced Account/Page Type Settings'),
+               '$h_descadvn' => t('Change the behaviour of this account for special situations'),
                '$pagetype' => $pagetype,
                
-
-               
-               
-
-               
-
-
-
-
-               
-
        ));
 
        call_hooks('settings_form',$o);