Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Multilingual/Page/PageList.php
Строк: 52
<?php

namespace ConcreteCoreMultilingualPage;

use 
ConcreteCorePagePageList as CorePageList;
use 
ConcreteCoreMultilingualPageSectionSection;
use 
Database;
use 
DoctrineDBALQueryQueryBuilder;

defined('C5_EXECUTE') or die("Access Denied.");

class 
PageList extends CorePageList
{
    protected 
$includeAliases false;

    public function 
finalizeQuery(QueryBuilder $query)
    {
        
$query parent::finalizeQuery($query);
        
$mslist Section::getList();
        
$relation Database::get()->createQueryBuilder();
        
$relation->select('mpRelationID')->from('MultilingualPageRelations''mppr')->where('cID = p.cID')->setMaxResults(1);
        
$query->addSelect('(' $relation ') as mpr');
        foreach(
$mslist as $ms) {
            
$section Database::get()->createQueryBuilder();
            
$section
                
->select('count(mpRelationID)')
                ->
from('MultilingualPageRelations''mppr')
                ->
where('mpRelationID = mpr')
                ->
andWhere(
                    
$section->expr()->comparison('mpLocale''='$query->createNamedParameter($ms->getLocale()))
                );
            
$query->addSelect('(' $section ') as relationCount' $ms->getCollectionID());
        }
        return 
$query;
    }

    public function 
filterByMissingTargets($targets)
    {
        if (
count($targets)) {
            for (
$i 0$i count($targets); $i++) {
                
$having Database::get()->createQueryBuilder();
                
$t $targets[$i];
                
$this->query->having(
                    
$having->expr()->orX('relationCount' $t->getCollectionID() . ' = 0')
                );
            }
        }
    }
}
Онлайн: 2
Реклама