public function getFrontPage($issue, $output) { /* @var $issue Issue */ $issueId = $issue; if ($issue instanceof Issue) { $issueId = $issue->getId(); } else { $issue = $this->getIssueService()->getById($issueId); } $publicationId = $issue->getPublicationId(); $outputId = $output; if ($output instanceof Output) { $outputId = $output->getId(); } $em = $this->getManager(); $q = $em->createQueryBuilder(); $q->select(array('oi', 'ot'))->from(OutputSettingsTheme::NAME, 'ot')->from(OutputSettingsIssue::NAME_1, 'oi')->where('ot.themePath = oi.themePath')->andWhere('ot.publication = :publication')->andWhere('ot.output = :output')->andWhere('oi.output = :output')->andWhere('oi.issue = :issue')->setParameter('output', $outputId)->setParameter('issue', $issueId)->setParameter('publication', $publicationId); $results = $q->getQuery()->getResult(); if (count($results) < 2) { return ''; } /* @var $outputSettingTheme OutputSettingsTheme */ list(, $outputSettingTheme) = each($results); /* @var $outputSettingIssue OutputSettingsIssue */ list(, $outputSettingIssue) = each($results); if (!is_null($resource = $outputSettingIssue->getFrontPage())) { return $this->getResourceFullPath($resource); } return $this->getResourceFullPath($outputSettingTheme->getFrontPage()); }