correct the logic for configs in app requirement

This commit is contained in:
git-marijus 2017-08-01 03:38:41 +02:00
parent b66cd8363e
commit 1f2482f6ab
2 changed files with 26 additions and 7 deletions

View file

@ -169,7 +169,15 @@ class Apps {
$requires = explode(',',$ret['requires']); $requires = explode(',',$ret['requires']);
foreach($requires as $require) { foreach($requires as $require) {
$require = trim(strtolower($require)); $require = trim(strtolower($require));
$config = false;
if(substr($require, 0, 7) == 'config:') {
$config = true;
$require = ltrim($require, 'config:');
}
$toggle = (($require[0] == '!') ? 0 : 1); $toggle = (($require[0] == '!') ? 0 : 1);
switch($require) { switch($require) {
case 'nologin': case 'nologin':
if(local_channel()) if(local_channel())
@ -192,9 +200,10 @@ class Apps {
unset($ret); unset($ret);
break; break;
default: default:
$unset = ((local_channel() && feature_enabled(local_channel(),$require)) ? false : true); if($config)
$unset = ((get_config('system', ltrim($require, '!')) == $toggle) ? false : true); $unset = ((get_config('system', ltrim($require, '!')) == $toggle) ? false : true);
else
$unset = ((local_channel() && feature_enabled(local_channel(),$require)) ? false : true);
if($unset) if($unset)
unset($ret); unset($ret);
break; break;
@ -308,9 +317,18 @@ class Apps {
if($k === 'requires') { if($k === 'requires') {
$requires = explode(',',$v); $requires = explode(',',$v);
foreach($requires as $require) { foreach($requires as $require) {
$require = trim(strtolower($require)); $require = trim(strtolower($require));
$config = false;
if(substr($require, 0, 7) == 'config:') {
$config = true;
$require = ltrim($require, 'config:');
}
$toggle = (($require[0] == '!') ? 0 : 1); $toggle = (($require[0] == '!') ? 0 : 1);
switch($require) { switch($require) {
case 'nologin': case 'nologin':
if(local_channel()) if(local_channel())
@ -334,9 +352,10 @@ class Apps {
return ''; return '';
break; break;
default: default:
$unset = ((local_channel() && feature_enabled(local_channel(),$require)) ? false : true); if($config)
$unset = ((get_config('system', ltrim($require, '!')) == $toggle) ? false : true); $unset = ((get_config('system', ltrim($require, '!')) == $toggle) ? false : true);
else
$unset = ((local_channel() && feature_enabled(local_channel(),$require)) ? false : true);
if($unset) if($unset)
return ''; return '';
break; break;

View file

@ -1,6 +1,6 @@
version: 1 version: 1
url: $baseurl/pubstream url: $baseurl/pubstream
requires: !disable_discover_tab requires: config:!disable_discover_tab
name: Public Stream name: Public Stream
photo: icon:globe photo: icon:globe
categories: Social categories: Social