diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/features.php | 17 | ||||
-rw-r--r-- | include/nav.php | 18 | ||||
-rwxr-xr-x | include/plugin.php | 19 |
3 files changed, 51 insertions, 3 deletions
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 9afba7945..5a2096e02 100644 --- a/include/nav.php +++ b/include/nav.php @@ -199,14 +199,25 @@ 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) { - $url = $active_app[0]['app_url']; + if(strpos($active_app[0]['app_url'], ',')) { + $urls = explode(',', $active_app[0]['app_url']); + $url = trim($urls[0]); + if($is_owner) + $settings_url = trim($urls[1]); + } + else { + $url = $active_app[0]['app_url']; + } } } @@ -289,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/include/plugin.php b/include/plugin.php index 9757be356..fdc62b3a7 100755 --- a/include/plugin.php +++ b/include/plugin.php @@ -458,6 +458,25 @@ function call_hooks($name, &$data = null) { if (isset(App::$hooks[$name])) { foreach(App::$hooks[$name] as $hook) { + + if ($name != 'permit_hook') { // avoid looping + $checkhook = [ + 'name'=>$name, + 'hook'=>$hook, + 'data'=>$data, + // Note: Since PHP uses COPY-ON-WRITE + // for variables, there is no cost to + // passing the $data structure (unless + // the permit_hook processors change the + // information it contains. + 'permit'=>true + ]; + call_hooks('permit_hook',$checkhook); + if (!$checkhook['permit']) { + continue; + } + $data = $checkhook['data']; + } $origfn = $hook[1]; if($hook[0]) @include_once($hook[0]); |