aboutsummaryrefslogtreecommitdiffstats
path: root/include/nav.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/nav.php')
-rw-r--r--include/nav.php72
1 files changed, 52 insertions, 20 deletions
diff --git a/include/nav.php b/include/nav.php
index d405b9f06..3e1acd306 100644
--- a/include/nav.php
+++ b/include/nav.php
@@ -42,6 +42,10 @@ function nav($template = 'default') {
require_once('include/conversation.php');
+ $nav_apps = [];
+ $navbar_apps = [];
+ $channel_apps = [];
+
$channel_apps[] = channel_apps($is_owner, App::$profile['channel_address']);
@@ -179,7 +183,6 @@ function nav($template = 'default') {
$search_form_action = 'search';
}
-
$nav['search'] = ['search', t('Search'), "", t('Search site @name, !forum, #tag, ?docs, content'), $search_form_action];
/**
@@ -222,6 +225,9 @@ function nav($template = 'default') {
if(! $settings_url && isset(App::$nav_sel['settings_url']))
$settings_url = App::$nav_sel['settings_url'];
+ $pinned_list = [];
+ $syslist = [];
+
//app bin
if($is_owner) {
if(get_pconfig(local_channel(), 'system','import_system_apps') !== datetime_convert('UTC','UTC','now','Y-m-d')) {
@@ -234,14 +240,29 @@ function nav($template = 'default') {
set_pconfig(local_channel(), 'system','force_import_system_apps', STD_VERSION);
}
- $syslist = array();
- $list = Apps::app_list(local_channel(), false, ['nav_featured_app', 'nav_pinned_app']);
+ $list = Apps::app_list(local_channel(), false, [ 'nav_pinned_app' ]);
+ if($list) {
+ foreach($list as $li) {
+ $pinned_list[] = Apps::app_encode($li);
+ }
+ }
+ Apps::translate_system_apps($pinned_list);
+
+ usort($pinned_list,'Zotlabs\\Lib\\Apps::app_name_compare');
+
+ $pinned_list = Apps::app_order(local_channel(),$pinned_list, 'nav_pinned_app');
+
+
+ $syslist = [];
+ $list = Apps::app_list(local_channel(), false, [ 'nav_featured_app' ]);
+
if($list) {
foreach($list as $li) {
$syslist[] = Apps::app_encode($li);
}
}
Apps::translate_system_apps($syslist);
+
}
else {
$syslist = Apps::get_system_apps(true);
@@ -249,26 +270,38 @@ function nav($template = 'default') {
usort($syslist,'Zotlabs\\Lib\\Apps::app_name_compare');
- $syslist = Apps::app_order(local_channel(),$syslist);
+ $syslist = Apps::app_order(local_channel(),$syslist, 'nav_featured_app');
+
- foreach($syslist as $app) {
- if(\App::$nav_sel['name'] == $app['name'])
- $app['active'] = true;
+ if($pinned_list) {
+ foreach($pinned_list as $app) {
+ if(\App::$nav_sel['name'] == $app['name'])
+ $app['active'] = true;
- if($is_owner) {
- if(strpos($app['categories'],'nav_pinned_app') !== false) {
+ if($is_owner) {
$navbar_apps[] = Apps::app_render($app,'navbar');
}
- else {
- $nav_apps[] = Apps::app_render($app,'nav');
+ elseif(! $is_owner && strpos($app['requires'], 'local_channel') === false) {
+ $navbar_apps[] = Apps::app_render($app,'navbar');
}
}
- elseif(! $is_owner && strpos($app['requires'], 'local_channel') === false) {
- if(strpos($app['categories'],'nav_pinned_app') !== false) {
- $navbar_apps[] = Apps::app_render($app,'navbar');
+ }
+
+
+ if($syslist) {
+ foreach($syslist as $app) {
+ if(\App::$nav_sel['name'] == $app['name'])
+ $app['active'] = true;
+
+ if($is_owner) {
+ if(strpos($app['categories'],'nav_pinned_app') === false) {
+ $nav_apps[] = Apps::app_render($app,'nav');
+ }
}
- else {
- $nav_apps[] = Apps::app_render($app,'nav');
+ elseif(! $is_owner && strpos($app['requires'], 'local_channel') === false) {
+ if(strpos($app['categories'],'nav_pinned_app') === false) {
+ $nav_apps[] = Apps::app_render($app,'nav');
+ }
}
}
}
@@ -348,16 +381,15 @@ function channel_apps($is_owner = false, $nickname = null) {
if(App::$is_sys)
return '';
- if(! get_pconfig($uid, 'system', 'channelapps','1'))
- return '';
-
$channel = App::get_channel();
if($channel && is_null($nickname))
$nickname = $channel['channel_address'];
$uid = ((App::$profile['profile_uid']) ? App::$profile['profile_uid'] : local_channel());
- $account_id = ((App::$profile['profile_uid']) ? App::$profile['channel_account_id'] : App::$channel['channel_account_id']);
+
+ if(! get_pconfig($uid, 'system', 'channelapps','1'))
+ return;
if($uid == local_channel()) {
return;