diff options
author | redmatrix <git@macgirvin.com> | 2016-05-05 18:15:07 -0700 |
---|---|---|
committer | redmatrix <git@macgirvin.com> | 2016-05-05 18:15:07 -0700 |
commit | 2e3da0cbbbb753c8910e96a907cd031e5d95f7c2 (patch) | |
tree | a8cec92c45a7d341e4e99378c13876daa2795371 | |
parent | 8ffdc4859baa9f2ae9567a4c443dfbb227919167 (diff) | |
download | volse-hubzilla-2e3da0cbbbb753c8910e96a907cd031e5d95f7c2.tar.gz volse-hubzilla-2e3da0cbbbb753c8910e96a907cd031e5d95f7c2.tar.bz2 volse-hubzilla-2e3da0cbbbb753c8910e96a907cd031e5d95f7c2.zip |
- Setup: check php version (5.4 required)
- Comanche: implement conditionals. Currently the only supported tests are true/false for system config settings
and supports the following forms:
[if $config.system.foo]
[widget=widget1][/widget]
[else]
[widget=widget2][/widget]
[/if]
[if $config.system.foo]
[widget=widget1][/widget]
[/if]
-rw-r--r-- | Zotlabs/Module/Setup.php | 5 | ||||
-rw-r--r-- | include/comanche.php | 37 |
2 files changed, 41 insertions, 1 deletions
diff --git a/Zotlabs/Module/Setup.php b/Zotlabs/Module/Setup.php index 3ac67e1c0..f8c14951b 100644 --- a/Zotlabs/Module/Setup.php +++ b/Zotlabs/Module/Setup.php @@ -407,6 +407,11 @@ class Setup extends \Zotlabs\Web\Controller { function check_php(&$phpath, &$checks) { $help = ''; + if(version_compare(PHP_VERSION, '5.4') < 0) { + $help .= t('PHP version 5.4 or greater is required.'); + $this->check_add($checks, t('PHP version'), false, false, $help); + } + if (strlen($phpath)) { $passed = file_exists($phpath); } else { diff --git a/include/comanche.php b/include/comanche.php index 4d55aee19..0a52eaf2b 100644 --- a/include/comanche.php +++ b/include/comanche.php @@ -53,6 +53,31 @@ function comanche_parser(&$a, $s, $pass = 0) { } } + $cnt = preg_match_all("/\[if (.*?)\](.*?)\[else\](.*?)\[\/if\]/ism", $s, $matches, PREG_SET_ORDER); + if($cnt) { + foreach($matches as $mtch) { + if(comanche_test_condition($mtch[1])) { + $s = str_replace($mtch[0], $mtch[2], $s); + } + else { + $s = str_replace($mtch[0], $mtch[3], $s); + } + } + } + else { + $cnt = preg_match_all("/\[if (.*?)\](.*?)\[\/if\]/ism", $s, $matches, PREG_SET_ORDER); + if($cnt) { + foreach($matches as $mtch) { + if(comanche_test_condition($mtch[1])) { + $s = str_replace($mtch[0], $mtch[2], $s); + } + else { + $s = str_replace($mtch[0], '', $s); + } + } + } + } + if($pass == 0) { $cnt = preg_match("/\[layout\](.*?)\[\/layout\]/ism", $s, $matches); if($cnt) @@ -86,7 +111,6 @@ function comanche_parser(&$a, $s, $pass = 0) { App::$layout['webpage'] = comanche_webpage($a,$mtch[1]); } } - } else { $cnt = preg_match_all("/\[region=(.*?)\](.*?)\[\/region\]/ism", $s, $matches, PREG_SET_ORDER); @@ -100,6 +124,17 @@ function comanche_parser(&$a, $s, $pass = 0) { } +function comanche_test_condition($s) { + + if(preg_match("/[\$]config[\.](.*?)/",$s,$matches)) { + $x = explode('.',$s); + if(get_config($x[1],$x[2])) + return true; + } + return false; + +} + function comanche_menu($s, $class = '') { |