public function buildEavQuery(\Bigfish\Bundle\EavBundle\Entity\Module $module, $skipFlat = false) { if ($module && $module->getFlatIsGenerated() && $module->getGenerateFlat() && !$skipFlat) { return '_flat_module_' . $module->getId(); } $unions = array(); $languages = $this->languageManager->getLanguages(); foreach ($languages as $lang) { $qb = $this->createQueryBuilder(); $qb->addSelect('_container.*'); $qb->addSelect('"' . $lang . '" as culture'); $qb->addSelect($this->getInvokeColumns()->setModule($module)->setLanguage($lang)->getSql()); $qb->from('eav_container', EavTables::CONTAINER_PREFIX); if ($module) { $qb->where($qb->expr()->eq(EavTables::CONTAINER_PREFIX . '.module_id', ':module_id')); } $unions[] = $qb->getSQL(); } if (count($unions) > 0) { $sql = implode(' UNION ', $unions); return '( ' . $sql . ' ) '; } else { return; } }
public function getLanguages() { return $this->languageManager->getLanguages(); }