mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@10739 201d5d3c-b55e-5fd7-737f-ddc643e51545
87 lines
2.3 KiB
PHP
87 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* @author NHN (developers@xpressengine.com)
|
|
* @package /classes/db/queryparts/condition
|
|
* @version 0.1
|
|
*/
|
|
class ConditionGroup {
|
|
/**
|
|
* condition list
|
|
* @var array
|
|
*/
|
|
var $conditions;
|
|
/**
|
|
* pipe can use 'and', 'or'...
|
|
* @var string
|
|
*/
|
|
var $pipe;
|
|
|
|
var $_group;
|
|
var $_show;
|
|
|
|
/**
|
|
* constructor
|
|
* @param array $conditions
|
|
* @param string $pipe
|
|
* @return void
|
|
*/
|
|
function ConditionGroup($conditions, $pipe = "") {
|
|
$this->conditions = array();
|
|
foreach($conditions as $condition){
|
|
if($condition->show())
|
|
$this->conditions[] = $condition;
|
|
}
|
|
if(count($this->conditions) === 0) $this->_show = false;
|
|
else $this->_show = true;
|
|
|
|
$this->pipe = $pipe;
|
|
}
|
|
|
|
function show(){
|
|
return $this->_show;
|
|
}
|
|
|
|
function setPipe($pipe){
|
|
if($this->pipe !== $pipe) $this->_group = null;
|
|
$this->pipe = $pipe;
|
|
}
|
|
|
|
/**
|
|
* value to string
|
|
* @param boolean $with_value
|
|
* @return string
|
|
*/
|
|
function toString($with_value = true){
|
|
if(!isset($this->_group)){
|
|
$cond_indx = 0;
|
|
$group = '';
|
|
|
|
foreach($this->conditions as $condition){
|
|
if($cond_indx === 0) $condition->setPipe("");
|
|
$group .= $condition->toString($with_value) . ' ';
|
|
$cond_indx++;
|
|
}
|
|
|
|
if($this->pipe !== "" && trim($group) !== ''){
|
|
$group = $this->pipe . ' (' . $group . ')';
|
|
}
|
|
|
|
$this->_group = $group;
|
|
}
|
|
return $this->_group;
|
|
}
|
|
|
|
/**
|
|
* return argument list
|
|
* @return array
|
|
*/
|
|
function getArguments(){
|
|
$args = array();
|
|
foreach($this->conditions as $condition){
|
|
$arg = $condition->getArgument();
|
|
if($arg) $args[] = $arg;
|
|
}
|
|
return $args;
|
|
}
|
|
}
|
|
?>
|