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

class BOL_LanguageValueDao extends PEEP_BaseDao
{

    
/**
     * Class constructor
     *
     */
    
protected function __construct()
    {
        
parent::__construct();
    }
    
/**
     * Class instance
     *
     * @var BOL_LanguageValueDao
     */
    
private static $classInstance;

    
/**
     * Returns class instance
     *
     * @return BOL_LanguageValueDao
     */
    
public static function getInstance()
    {
        if ( !isset(
self::$classInstance) )
            
self::$classInstance = new self();

        return 
self::$classInstance;
    }

    
/**
     * @see PEEP_BaseDao::getDtoClassName()
     *
     */
    
public function getDtoClassName()
    {
        return 
'BOL_LanguageValue';
    }

    
/**
     * @see PEEP_BaseDao::getTableName()
     *
     */
    
public function getTableName()
    {
        return 
PEEP_DB_PREFIX 'base_language_value';
    }

    public function 
findLastKeyList$first$count$prefix null )
    {
        if ( 
$prefix !== null )
        {
            
$prefixId BOL_LanguagePrefixDao::getInstance()->findPrefixId($prefix);

            if ( !
$prefixId )
            {
                throw new 
Exception('There is no such prefix..');
            }
        }

        
$query_part = array();

        
$query_part['optional-prefix_criteria'] = ( $prefix !== null && $prefixId ) ? "`p`.`id` = {$prefixId}'1';

        
$query_part['dev-mode-order'] = !$this->isDevMode() && $prefix == null "IF(`p`.`prefix` = 'peep_custom', 1, 0) DESC, " '';

        
$keyTable BOL_LanguageKeyDao::getInstance()->getTableName();
        
$prefixTable BOL_LanguagePrefixDao::getInstance()->getTableName();

        
$query "
        SELECT `key`,
               `p`.`label`, `p`.`prefix`
        FROM `" 
$keyTable "` as `k`
        INNER JOIN `" 
$prefixTable "` AS `p`
             ON ( `k`.`prefixId` = `p`.`id` )
        WHERE 
{$query_part['optional-prefix_criteria']} /*optional-prefix_criteria*/ 
        ORDER BY 
{$query_part['dev-mode-order']} `p`.`label`,
                 `k`.`id` desc
        LIMIT ?, ?
        "
;

        return 
$this->dbo->queryForList($query, array($first$count));
    }

    public function 
findSearchResultKeyList$languageId$first$count$search )
    {
        
$search $this->dbo->escapeString($search);

        
$_query =
            
"
             SELECT `k`.`key`,
                    `p`.`label`, `p`.`prefix`
             FROM `" 
BOL_LanguageValueDao::getInstance()->getTableName() . "` as `v`
             INNER JOIN `" 
BOL_LanguageKeyDao::getInstance()->getTableName() . "` as `k`
                  ON( `v`.`keyId` = `k`.`id` )
             INNER JOIN `" 
BOL_LanguagePrefixDao::getInstance()->getTableName() . "` as `p`
                  ON( `k`.`prefixId` = `p`.`id` )
             WHERE `v`.`value` LIKE ? AND `v`.`languageId` = ?
             ORDER BY `p`.`label`,
                    `k`.`id` desc
             LIMIT ?, ?
            "
;

        return 
$this->dbo->queryForList($_query, array("%{$search}%"$languageId$first$count));
    }

    public function 
findKeySearchResultKeyList$languageId$first$count$search )
    {
        
$search $this->dbo->escapeString($search);

        
$_query =
            
"
             SELECT `k`.`key`,
                    `p`.`label`, `p`.`prefix`
             FROM `" 
BOL_LanguageKeyDao::getInstance()->getTableName() . "` as `k`
             INNER JOIN `" 
BOL_LanguagePrefixDao::getInstance()->getTableName() . "` as `p`
                ON( `k`.`prefixId` = `p`.`id` ) 
             WHERE `k`.`key` LIKE :keySearch
             LIMIT :first, :count
            "
;

        return 
$this->dbo->queryForList($_query, array('keySearch'=>"%{$search}%"'first'=>$first'count'=>$count));
    }




    public function 
countSearchResultKeys$languageId$search )
    {
        
$search $this->dbo->escapeString($search);

        
$_query =
            
"
             SELECT COUNT(*)
             FROM `" 
BOL_LanguageValueDao::getInstance()->getTableName() . "` as `v`
             INNER JOIN `" 
BOL_LanguageKeyDao::getInstance()->getTableName() . "` as `k`
                  ON( `v`.`keyId` = `k`.`id` )
             INNER JOIN `" 
BOL_LanguagePrefixDao::getInstance()->getTableName() . "` as `p`
                  ON( `k`.`prefixId` = `p`.`id` )
             WHERE `v`.`value` LIKE ? AND `v`.`languageId` = ? 
            "
;

        return 
$this->dbo->queryForColumn($_query, array("%{$search}%"$languageId));
    }

    public function 
countKeySearchResultKeys$languageId$search )
    {
        
$search $this->dbo->escapeString($search);

        
$_query =
            
"
             SELECT COUNT(*)
             FROM `" 
BOL_LanguageKeyDao::getInstance()->getTableName() . "` as `k`
             INNER JOIN `" 
BOL_LanguagePrefixDao::getInstance()->getTableName() . "` as `p`
                ON( `k`.`prefixId` = `p`.`id` )
             WHERE `k`.`key` LIKE :keySearch
            "
;

        return 
$this->dbo->queryForColumn($_query, array('keySearch'=>"%{$search}%"));
    }

    public function 
findValue$languageId$keyId )
    {
        
$ex = new PEEP_Example();
        
$ex->andFieldEqual('languageId'$languageId)->andFieldEqual('keyId'$keyId);

        return 
$this->findObjectByExample($ex);
    }

    public function 
deleteValues$languageId )
    {
        
$ex = new PEEP_Example();
        
$ex->andFieldEqual('languageId'$languageId);

        
$this->deleteByExample($ex);
    }

    private function 
isDevMode()
    {
        if ( !empty(
$_GET) )
        {
            
$arr explode('?'PEEP::getRequest()->getRequestUri());

            return 
$arr[0] == PEEP::getRouter()->uriForRoute('admin_developer_tools_language');
        }

        return 
PEEP::getRequest()->getRequestUri() == PEEP::getRouter()->uriForRoute('admin_developer_tools_language');
    }

    public function 
deleteByKeyId$id )
    {
        
$ex = new PEEP_Example();
        
$ex->andFieldEqual('keyId'$id);

        
$this->deleteByExample($ex);
    }
}
Онлайн: 2
Реклама