Вход Регистрация
Файл: base-sys/base/classes/query_builder_event.php
Строк: 74
<?php

class BASE_CLASS_QueryBuilderEvent extends PEEP_Event
{
    const 
FIELD_USER_ID = "userId";
    const 
FIELD_CONTENT_ID = "contentId";
    
    const 
TABLE_USER = "user";
    const 
TABLE_CONTENT = "content";
    
    const 
WHERE_AND = "where-and";
    const 
WHERE_OR = "where-or";
    
    const 
ORDER_ASC = "ASC";
    const 
ORDER_DESC = "DESC";
    
    const 
OPTION_TYPE = "type";
    const 
OPTION_METHOD = "method";
    
    public function 
__construct( $name, array $options = array() ) 
    {
        
parent::__construct($name, $options);
        
        
$this->data = array(
            
"join" => array(),
            
"where" => array(),
            
"order" => array(),
            
"params" => array()
        );
    }
    
    public function 
addJoin( $join )
    {
        
$this->data["join"][] = $join;
    }
    
    public function 
getJoinList()
    {
        return 
$this->data["join"];
    }
    
    public function 
getJoin()
    {
        return 
implode(" ", $this->getJoinList());
    }
    
    public function 
addWhere( $condition )
    {
        
$this->data["where"][] = $condition;
    }
    
    public function 
getWhereList()
    {
        return 
$this->data["where"];
    }
    
    public function 
getWhere( $type = self::WHERE_AND )
    {
        
$whereList = $this->getWhereList();
        
        if ( empty(
$whereList) )
        {
            return 
"1";
        }
        
        return 
"(" . implode( $type == self::WHERE_AND ? ") AND (" : ") OR (", $this->getWhereList() ) . ")";
    }

    public function 
addOrder( $field, $order = self::ORDER_ASC )
    {
        
$this->data["order"][$field] = $order;
    }

    public function 
getOrderList()
    {
        return 
$this->data["order"];
    }

    public function 
getOrder()
    {
        
$orderList = $this->getOrderList();

        if ( empty(
$orderList) )
        {
            return 
"";
        }

        
$sep = "";
        
$orderStr = "";
        foreach ( 
$orderList as $field => $order )
        {
            
$orderStr .= $sep . $field . " " . $order;
            
$sep = ", ";
        }

        return 
$orderStr;
    }

    public function 
addQueryParam( $key, $value )
    {
        
$this->data['params'][$key] = $value;
    }

    public function 
addBatchQueryParams( $params )
    {
        
$this->data['params'] = array_merge($this->data['params'], $params);
    }

    public function 
getQueryParams()
    {
        return 
$this->data['params'];
    }
}
Онлайн: 0
Реклама