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 finalizeQuery(QueryBuilder $query) { $db = Database::connection(); $query = parent::finalizeQuery($query); $mainRelation = $db->createQueryBuilder(); $mainRelation->select('mpr0.cID')->addSelect('MIN(mpr0.mpRelationID) as mpr')->from('MultilingualPageRelations', 'mpr0')->groupBy('mpr0.cID'); $query->addSelect('mppr.mpr')->leftJoin('p', '(' . $mainRelation . ')', 'mppr', 'p.cID = mppr.cID'); $mslist = Section::getList(); foreach ($mslist as $ms) { $cID = (int) $ms->getCollectionID(); $cLocale = (string) $ms->getLocale(); $query->addSelect("count(mppr{$cID}.mpRelationID) as relationCount{$cID}")->leftJoin('mppr', 'MultilingualPageRelations', "mppr{$cID}", "mppr.mpr = mppr{$cID}.mpRelationID AND " . $db->quote($cLocale) . " = mppr{$cID}.mpLocale"); } $query->addGroupBy(['p.cID', 'mppr.mpr']); return $query; }
public function finalizeQuery(Doctrine\DBAL\Query\QueryBuilder $query) { return parent::finalizeQuery($query); }