Add error checking directive and unit tests for it

This commit is contained in:
Kijin Sung 2023-10-18 00:29:32 +09:00
parent d4654eb5cf
commit 0f14ad8ccf
5 changed files with 98 additions and 0 deletions

View file

@ -751,4 +751,21 @@ class Template
default: return $grant->$type ?? false;
}
}
/**
* Check if a validation error exists for v2.
*
* @param ...$args
* @return bool
*/
protected function _v2_errorExists(...$args): bool
{
$validator_id = \Context::get('XE_VALIDATOR_ID');
$validator_message = \Context::get('XE_VALIDATOR_MESSAGE');
if (empty($validator_id) || empty($validator_message))
{
return false;
}
return count($args) ? in_array((string)$validator_id, $args, true) : true;
}
}

View file

@ -62,6 +62,10 @@ class TemplateParser_v2
'ob_start(); $__last_fragment_name = %s;',
"\$this->_fragments[\$__last_fragment_name] = ob_get_flush();",
],
'error' => [
'if ($this->_v2_errorExists(%s)):',
'endif;',
],
'isset' => ['if (isset(%s)):', 'endif;'],
'unset' => ['if (!isset(%s)):', 'endif;'],
'empty' => ['if (empty(%s)):', 'endif;'],