aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/features.php17
-rw-r--r--include/nav.php18
-rwxr-xr-xinclude/plugin.php19
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]);