aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Render/Comanche.php
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-01-07 15:58:01 -0800
committerzotlabs <mike@macgirvin.com>2017-01-07 15:58:01 -0800
commitdd97d84c199bfc21c701a8fc2ea4222763e7b6e1 (patch)
tree89d6692b3975b5a08cd4989949efc5b5b8834da0 /Zotlabs/Render/Comanche.php
parentb2a4075e125e743602aafd79fc01831343fe37fe (diff)
downloadvolse-hubzilla-dd97d84c199bfc21c701a8fc2ea4222763e7b6e1.tar.gz
volse-hubzilla-dd97d84c199bfc21c701a8fc2ea4222763e7b6e1.tar.bz2
volse-hubzilla-dd97d84c199bfc21c701a8fc2ea4222763e7b6e1.zip
Comanche conditionals - provide a conditional "~=" form for testing 'contains' (case independent substring match). Also add $request the request uri) to the supported variables.
Diffstat (limited to 'Zotlabs/Render/Comanche.php')
-rw-r--r--Zotlabs/Render/Comanche.php12
1 files changed, 12 insertions, 0 deletions
diff --git a/Zotlabs/Render/Comanche.php b/Zotlabs/Render/Comanche.php
index 562a9f791..a9ca023e5 100644
--- a/Zotlabs/Render/Comanche.php
+++ b/Zotlabs/Render/Comanche.php
@@ -104,6 +104,8 @@ class Comanche {
$x = explode('.',$v);
if($x[0] == 'config')
return get_config($x[1],$x[2]);
+ elseif($x[0] === 'request')
+ return $_SERVER['REQUEST_URI'];
elseif($x[0] === 'observer') {
if(count($x) > 1) {
$y = \App::get_observer();
@@ -125,6 +127,8 @@ class Comanche {
function test_condition($s) {
// This is extensible. The first version of variable testing supports tests of the forms:
+
+ // [if $config.system.foo ~= baz] which will check if get_config('system','foo') contains the string 'baz';
// [if $config.system.foo == baz] which will check if get_config('system','foo') is the string 'baz';
// [if $config.system.foo != baz] which will check if get_config('system','foo') is not the string 'baz';
// You may check numeric entries, but these checks are evaluated as strings.
@@ -133,12 +137,20 @@ class Comanche {
// [if $config.system.foo] which will check for a return of a true condition for get_config('system','foo');
// The values 0, '', an empty array, and an unset value will all evaluate to false.
+ if(preg_match('/[\$](.*?)\s\~\=\s(.*?)$/',$s,$matches)) {
+ $x = $this->get_condition_var($matches[1]);
+ if(stripos($x,trim($matches[2])) !== false)
+ return true;
+ return false;
+ }
+
if(preg_match('/[\$](.*?)\s\=\=\s(.*?)$/',$s,$matches)) {
$x = $this->get_condition_var($matches[1]);
if($x == trim($matches[2]))
return true;
return false;
}
+
if(preg_match('/[\$](.*?)\s\!\=\s(.*?)$/',$s,$matches)) {
$x = $this->get_condition_var($matches[1]);
if($x != trim($matches[2]))