eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\DoctrineDatabase::getTotalCount PHP Method

getTotalCount() protected method

Returns total results count for $criterion and $sortClauses.
protected getTotalCount ( eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion, array $languageFilter ) : array
$criterion eZ\Publish\API\Repository\Values\Content\Query\Criterion
$languageFilter array
return array
    protected function getTotalCount(Criterion $criterion, array $languageFilter)
    {
        $query = $this->handler->createSelectQuery();
        $query->select($query->alias($query->expr->count('*'), 'count'))->from($this->handler->quoteTable('ezcontentobject_tree'))->innerJoin('ezcontentobject', 'ezcontentobject_tree.contentobject_id', 'ezcontentobject.id')->innerJoin('ezcontentobject_version', 'ezcontentobject.id', 'ezcontentobject_version.contentobject_id');
        $query->where($this->criteriaConverter->convertCriteria($query, $criterion, $languageFilter), $query->expr->eq('ezcontentobject.status', $query->bindValue(1, null, PDO::PARAM_INT)), $query->expr->eq('ezcontentobject_version.status', $query->bindValue(1, null, PDO::PARAM_INT)), $query->expr->neq($this->handler->quoteColumn('depth', 'ezcontentobject_tree'), $query->bindValue(0, null, PDO::PARAM_INT)));
        // If not main-languages query
        if (!empty($languageFilter['languages'])) {
            $query->where($query->expr->gt($query->expr->bitAnd($this->handler->quoteColumn('language_mask', 'ezcontentobject'), $query->bindValue($this->getLanguageMask($languageFilter), null, PDO::PARAM_INT)), $query->bindValue(0, null, PDO::PARAM_INT)));
        }
        $statement = $query->prepare();
        $statement->execute();
        return (int) $statement->fetchColumn();
    }