Merge branch 'rhymix:master' into master

This commit is contained in:
Lastorder 2025-09-06 15:48:53 +09:00 committed by GitHub
commit 2fd8df9de6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
57 changed files with 384 additions and 162 deletions

View file

@ -175,9 +175,10 @@ class DBQueryParser extends BaseParser
foreach ($xml->groups->children() as $tag)
{
$name = $tag->getName();
$ifvar = trim($tag['if'] ?? '') ?: null;
if ($name === 'group')
{
$query->groupby->columns[] = trim($tag['column'] ?? '');
$query->groupby->columns[] = [trim($tag['column'] ?? ''), $ifvar];
}
elseif ($name === 'having')
{

View file

@ -222,6 +222,14 @@ class Query extends VariableBase
$columns = array();
foreach ($this->groupby->columns as $column_name)
{
if (is_array($column_name))
{
list($column_name, $ifvar) = $column_name;
if ($ifvar && empty($this->_args[$ifvar]))
{
continue;
}
}
if (self::isValidColumnName($column_name))
{
$columns[] = self::quoteName($column_name);

View file

@ -278,7 +278,7 @@ class TemplateParser_v1
$skip = sprintf('(?!%s)', implode('|', ['marquee']));
$split_regex = "@(</?{$skip}[a-zA-Z](?>[^<>{}\"]+|<!--.*?-->.*?<!--.*?end-->|{[^}]*}|\"(?>'.*?'|.)*?\"|.)*?>)@s";
$nodes = preg_split($split_regex, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
$nodes = preg_split($split_regex, $content, -1, PREG_SPLIT_DELIM_CAPTURE) ?: [];
for($idx = 1, $node_len = count($nodes); $idx < $node_len; $idx+=2)
{