public function getTopics($languageCode = null)
{
$meta = $this->getClassMetadata();
$config = $this->listener->getConfiguration($this->_em, $meta->name);
$queryBuilder = $this->getQueryBuilder('t')->from($config['useObjectClass'], 't');
if ($languageCode) {
$queryBuilder->leftJoin('t.translations', 'tt')->where('tt.locale = :locale')->setParameter('locale', $languageCode);
}
$countQueryBuilder = clone $queryBuilder;
$countQueryBuilder->select('count(t)');
$queryBuilder->select('t');
$topicsCount = $countQueryBuilder->getQuery()->getSingleScalarResult();
$query = $this->setTranslatableHint($queryBuilder->getQuery(), $languageCode);
$query->setHint('knp_paginator.count', $topicsCount);
return $query;
}