|
|
@ -526,7 +526,7 @@ class rcube_template extends rcube_html_page
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private function parse_conditions($input)
|
|
|
|
private function parse_conditions($input)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
$matches = preg_split('/<roundcube:(if|elseif|else|endif)\s+([^>]+)>/is', $input, 2, PREG_SPLIT_DELIM_CAPTURE);
|
|
|
|
$matches = preg_split('/<roundcube:(if|elseif|else|endif)\s+([^>]+)>\n?/is', $input, 2, PREG_SPLIT_DELIM_CAPTURE);
|
|
|
|
if ($matches && count($matches) == 4) {
|
|
|
|
if ($matches && count($matches) == 4) {
|
|
|
|
if (preg_match('/^(else|endif)$/i', $matches[1])) {
|
|
|
|
if (preg_match('/^(else|endif)$/i', $matches[1])) {
|
|
|
|
return $matches[0] . $this->parse_conditions($matches[3]);
|
|
|
|
return $matches[0] . $this->parse_conditions($matches[3]);
|
|
|
@ -534,10 +534,10 @@ class rcube_template extends rcube_html_page
|
|
|
|
$attrib = parse_attrib_string($matches[2]);
|
|
|
|
$attrib = parse_attrib_string($matches[2]);
|
|
|
|
if (isset($attrib['condition'])) {
|
|
|
|
if (isset($attrib['condition'])) {
|
|
|
|
$condmet = $this->check_condition($attrib['condition']);
|
|
|
|
$condmet = $this->check_condition($attrib['condition']);
|
|
|
|
$submatches = preg_split('/<roundcube:(elseif|else|endif)\s+([^>]+)>/is', $matches[3], 2, PREG_SPLIT_DELIM_CAPTURE);
|
|
|
|
$submatches = preg_split('/<roundcube:(elseif|else|endif)\s+([^>]+)>\n?/is', $matches[3], 2, PREG_SPLIT_DELIM_CAPTURE);
|
|
|
|
if ($condmet) {
|
|
|
|
if ($condmet) {
|
|
|
|
$result = $submatches[0];
|
|
|
|
$result = $submatches[0];
|
|
|
|
$result.= ($submatches[1] != 'endif' ? preg_replace('/.*<roundcube:endif\s+[^>]+>/Uis', '', $submatches[3], 1) : $submatches[3]);
|
|
|
|
$result.= ($submatches[1] != 'endif' ? preg_replace('/.*<roundcube:endif\s+[^>]+>\n?/Uis', '', $submatches[3], 1) : $submatches[3]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
$result = "<roundcube:$submatches[1] $submatches[2]>" . $submatches[3];
|
|
|
|
$result = "<roundcube:$submatches[1] $submatches[2]>" . $submatches[3];
|
|
|
|