From 1ca558f011b21b0a493d294501f530e57bdd574e Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Thu, 20 Sep 2018 13:22:41 +0200 Subject: [PATCH] move connection filtering setting from network to connections, provide a link to settings in the navbar if present for a module and some code optimisation --- Zotlabs/Module/Connections.php | 21 +++++----- Zotlabs/Module/Settings/Connections.php | 51 +++++++++++++++++++++++++ Zotlabs/Module/Settings/Network.php | 14 +------ app/connections.apd | 4 +- include/features.php | 17 +++++++++ include/nav.php | 11 ++++-- view/tpl/navbar_default.tpl | 8 ++++ view/tpl/settings_addon.tpl | 13 +++++++ 8 files changed, 113 insertions(+), 26 deletions(-) create mode 100644 Zotlabs/Module/Settings/Connections.php create mode 100644 view/tpl/settings_addon.tpl diff --git a/Zotlabs/Module/Connections.php b/Zotlabs/Module/Connections.php index cecada769..0e5f1dfe2 100644 --- a/Zotlabs/Module/Connections.php +++ b/Zotlabs/Module/Connections.php @@ -1,6 +1,7 @@ (($searching) ? t('Connections search') . ": '" . $search . "'" : ""), '$submit' => t('Find'), '$edit' => t('Edit'), - '$cmd' => \App::$cmd, + '$cmd' => App::$cmd, '$contacts' => $contacts, '$paginate' => paginate($a), diff --git a/Zotlabs/Module/Settings/Connections.php b/Zotlabs/Module/Settings/Connections.php new file mode 100644 index 000000000..361d86ccb --- /dev/null +++ b/Zotlabs/Module/Settings/Connections.php @@ -0,0 +1,51 @@ + 'settings/connections', + '$form_security_token' => get_form_security_token("settings_connections"), + '$title' => t('Connections Settings'), + '$features' => process_features_get(local_channel(), $features), + '$submit' => t('Submit') + )); + + return $o; + } + + function get_features() { + $arr = [ + [ + 'connfilter', + t('Connection Filtering'), + t('Filter incoming posts from connections based on keywords/content'), + false, + get_config('feature_lock','connfilter') + ] + ]; + + return $arr; + + } + +} diff --git a/Zotlabs/Module/Settings/Network.php b/Zotlabs/Module/Settings/Network.php index 4e2e3915e..eaf11f3da 100644 --- a/Zotlabs/Module/Settings/Network.php +++ b/Zotlabs/Module/Settings/Network.php @@ -10,13 +10,7 @@ class Network { $features = self::get_features(); - foreach($features as $f) { - $k = $f[0]; - if(array_key_exists("feature_$k",$_POST)) - set_pconfig(local_channel(),'feature',$k, (string) $_POST["feature_$k"]); - else - set_pconfig(local_channel(),'feature', $k, ''); - } + process_features_post(local_channel(), $features, $_POST); build_sync_packet(); return; @@ -26,17 +20,13 @@ class Network { $features = self::get_features(); - foreach($features as $f) { - $arr[] = array('feature_' . $f[0],$f[1],((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On'))); - } - $tpl = get_markup_template("settings_module.tpl"); $o .= replace_macros($tpl, array( '$action_url' => 'settings/network', '$form_security_token' => get_form_security_token("settings_network"), '$title' => t('Activity Settings'), - '$features' => $arr, + '$features' => process_features_get(local_channel(), $features), '$submit' => t('Submit') )); diff --git a/app/connections.apd b/app/connections.apd index 631f093a8..6ab5977af 100644 --- a/app/connections.apd +++ b/app/connections.apd @@ -1,5 +1,5 @@ -version: 1 -url: $baseurl/connections +version: 1.1 +url: $baseurl/connections, $baseurl/settings/connections requires: local_channel name: Connections photo: icon:users diff --git a/include/features.php b/include/features.php index 5479be122..c3ef54945 100644 --- a/include/features.php +++ b/include/features.php @@ -44,6 +44,23 @@ function feature_level($feature,$def) { return $def; } +function process_features_get($uid, $features) { + foreach($features as $f) { + $arr[] = array('feature_' . $f[0],$f[1],((intval(feature_enabled($uid, $f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On'))); + } + return $arr; +} + +function process_features_post($uid, $features, $post_arr) { + foreach($features as $f) { + $k = $f[0]; + if(array_key_exists("feature_$k",$post_arr)) + set_pconfig($uid,'feature',$k, (string) $post_arr["feature_$k"]); + else + set_pconfig($uid,'feature', $k, ''); + } +} + function get_features($filtered = true, $level = (-1)) { $account = \App::get_account(); diff --git a/include/nav.php b/include/nav.php index f8d6f2438..5a2096e02 100644 --- a/include/nav.php +++ b/include/nav.php @@ -199,17 +199,21 @@ function nav($template = 'default') { // turned off until somebody discovers this and figures out a good location for it. $powered_by = ''; + $url = ''; + $settings_url = ''; + if(App::$profile_uid && App::$nav_sel['raw_name']) { $active_app = q("SELECT app_url FROM app WHERE app_channel = %d AND app_name = '%s' LIMIT 1", intval(App::$profile_uid), dbesc(App::$nav_sel['raw_name']) ); - + if($active_app) { if(strpos($active_app[0]['app_url'], ',')) { $urls = explode(',', $active_app[0]['app_url']); $url = trim($urls[0]); - $settings_url = trim($urls[1]); + if($is_owner) + $settings_url = trim($urls[1]); } else { $url = $active_app[0]['app_url']; @@ -296,7 +300,8 @@ function nav($template = 'default') { '$addapps' => t('Add Apps'), '$orderapps' => t('Arrange Apps'), '$sysapps_toggle' => t('Toggle System Apps'), - '$url' => (($url) ? $url : App::$cmd) + '$url' => (($url) ? $url : App::$cmd), + '$settings_url' => $settings_url )); if(x($_SESSION, 'reload_avatar') && $observer) { diff --git a/view/tpl/navbar_default.tpl b/view/tpl/navbar_default.tpl index 0eb0a964c..a11b9b5ea 100755 --- a/view/tpl/navbar_default.tpl +++ b/view/tpl/navbar_default.tpl @@ -70,7 +70,15 @@
{{$sitelocation}} {{/if}} + +{{if $settings_url}} + +{{/if}} {{/if}} {{/if}}