mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-10 04:24:14 +09:00
Merge pull request #582 from kijin/pr/offset-query
XML 쿼리에서 LIMIT OFFSET을 직접 지정할 수 있도록 지원
This commit is contained in:
commit
4175535bc3
2 changed files with 24 additions and 3 deletions
|
|
@ -38,9 +38,10 @@ class Limit
|
||||||
* @param int $list_count
|
* @param int $list_count
|
||||||
* @param int $page
|
* @param int $page
|
||||||
* @param int $page_count
|
* @param int $page_count
|
||||||
|
* @param int $offset
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function __construct($list_count, $page = NULL, $page_count = NULL)
|
function __construct($list_count, $page = NULL, $page_count = NULL, $offset = NULL)
|
||||||
{
|
{
|
||||||
$this->list_count = $list_count;
|
$this->list_count = $list_count;
|
||||||
if($page)
|
if($page)
|
||||||
|
|
@ -51,6 +52,10 @@ class Limit
|
||||||
$this->page_count = $page_count;
|
$this->page_count = $page_count;
|
||||||
$this->page = $page;
|
$this->page = $page;
|
||||||
}
|
}
|
||||||
|
elseif($offset)
|
||||||
|
{
|
||||||
|
$this->start = $offset->getValue();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -81,7 +86,7 @@ class Limit
|
||||||
|
|
||||||
function toString()
|
function toString()
|
||||||
{
|
{
|
||||||
if($this->page)
|
if($this->page || $this->start)
|
||||||
{
|
{
|
||||||
return $this->start . ' , ' . $this->list_count->getValue();
|
return $this->start . ' , ' . $this->list_count->getValue();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,12 @@ class LimitTag
|
||||||
*/
|
*/
|
||||||
var $list_count;
|
var $list_count;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* QueryArgument object
|
||||||
|
* @var QueryArgument
|
||||||
|
*/
|
||||||
|
var $offset;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* constructor
|
* constructor
|
||||||
* @param object $index
|
* @param object $index
|
||||||
|
|
@ -58,6 +64,12 @@ class LimitTag
|
||||||
$index->list_count->attrs->default = 0;
|
$index->list_count->attrs->default = 0;
|
||||||
$this->list_count = new QueryArgument($index->list_count);
|
$this->list_count = new QueryArgument($index->list_count);
|
||||||
$this->arguments[] = $this->list_count;
|
$this->arguments[] = $this->list_count;
|
||||||
|
|
||||||
|
if(isset($index->offset) && isset($index->offset->attrs))
|
||||||
|
{
|
||||||
|
$this->offset = new QueryArgument($index->offset);
|
||||||
|
$this->arguments[] = $this->offset;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function toString()
|
function toString()
|
||||||
|
|
@ -66,6 +78,10 @@ class LimitTag
|
||||||
{
|
{
|
||||||
return sprintf('new Limit(${\'%s_argument\'}, ${\'%s_argument\'}, ${\'%s_argument\'})', $this->list_count->getArgumentName(), $this->page->getArgumentName(), $this->page_count->getArgumentName());
|
return sprintf('new Limit(${\'%s_argument\'}, ${\'%s_argument\'}, ${\'%s_argument\'})', $this->list_count->getArgumentName(), $this->page->getArgumentName(), $this->page_count->getArgumentName());
|
||||||
}
|
}
|
||||||
|
elseif($this->offset)
|
||||||
|
{
|
||||||
|
return sprintf('new Limit(${\'%s_argument\'}, NULL, NULL, ${\'%s_argument\'})', $this->list_count->getArgumentName(), $this->offset->getArgumentName());
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return sprintf('new Limit(${\'%s_argument\'})', $this->list_count->getArgumentName());
|
return sprintf('new Limit(${\'%s_argument\'})', $this->list_count->getArgumentName());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue