adding required "?" prefix to if statements in templates

This commit is contained in:
Pepijn Over 2014-04-22 20:59:47 +02:00
parent 69e3b85516
commit e868e130b0
2 changed files with 21 additions and 12 deletions

View File

@ -86,7 +86,7 @@ class LogController extends AbstractServerController {
'server_log_entries',
array(
'logtitle' => $key,
'has_users' => ($key == 'status') ? false : true,
'?has_users' => ($key == 'status') ? false : true,
)
);
$this->tpl->addTemplateData(

View File

@ -118,9 +118,12 @@ class Template {
}
$source = $this->addTemplateData($source, $subdata, true);
} else {
// replace if statements
$if_replacement = empty($value) ? '' : '$1';
$source = preg_replace('{<!--\?'.$key.'-->(.*?)<!--\?\?'.$key.'-->}is', $if_replacement, $source);
if(substr($key, 0, 1) == '?') {
$key = substr($key, 1);
// replace if statements
$if_replacement = empty($value) ? '' : '$1';
$source = preg_replace('{<!--\?'.$key.'-->(.*?)<!--\?\?'.$key.'-->}is', $if_replacement, $source);
}
$source = str_replace('{'.$key.'}', $value, $source);
}
@ -206,18 +209,24 @@ class Template {
$tmp_string = str_replace('{'.$k.'}', $repeat_html, $tmp_string);
} else {
foreach($v as $vk => $vv) {
// replace if statements
$if_replacement = empty($vv) ? '' : '$1';
$tmp_string = preg_replace('{<!--\?'.$k.'_'.$vk.'-->(.*?)<!--\?\?'.$k.'_'.$vk.'-->}is', $if_replacement, $tmp_string);
if(substr($vk, 0, 1) == '?') {
$vk = substr($vk, 1);
// replace if statements
$if_replacement = empty($vv) ? '' : '$1';
$tmp_string = preg_replace('{<!--\?'.$k.'_'.$vk.'-->(.*?)<!--\?\?'.$k.'_'.$vk.'-->}is', $if_replacement, $tmp_string);
}
$tmp_string = str_replace('{'.$k.'_'.$vk.'}', $vv, $tmp_string);
}
}
} else {
// replace if statements
$if_replacement = empty($v) ? '' : '$1';
$tmp_string = preg_replace('{<!--\?'.$k.'-->(.*?)<!--\?\?'.$k.'-->}is', $if_replacement, $tmp_string);
if(substr($k, 0, 1) == '?') {
$k = substr($k, 1);
// replace if statements
$if_replacement = empty($v) ? '' : '$1';
$tmp_string = preg_replace('{<!--\?'.$k.'-->(.*?)<!--\?\?'.$k.'-->}is', $if_replacement, $tmp_string);
}
$tmp_string = str_replace('{'.$k.'}', $v, $tmp_string);
}
}
@ -239,7 +248,7 @@ class Template {
// check if there are any unused if, and if there are remove them
$result = preg_replace('{<!--\?(.+?)-->(.*?)<!--\?\?\\1-->}is', '', $result);
// check for tpl variables that have not been replaced. ie: {name}. ignore literal stuff, though. ie: {{name}} is {name} and should not be removed
preg_match_all('~{?{(\w+?)}}?~', $result, $matches);