Ojs\SiteBundle\Controller\IssueController::issuePageAction PHP Метод

issuePageAction() публичный Метод

public issuePageAction ( $id, $isJournalHosting = false )
    public function issuePageAction($id, $isJournalHosting = false)
    {
        /**
         * @var BlockRepository $blockRepo
         * @var IssueRepository $issueRepo
         * @var Issue $issue
         */
        $em = $this->getDoctrine()->getManager();
        $blockRepo = $em->getRepository(Block::class);
        $issueRepo = $em->getRepository(Issue::class);
        $articleRepo = $em->getRepository(Article::class);
        $issue = $issueRepo->findOneBy(['id' => $id, 'published' => IssueVisibilityStatuses::PUBLISHED]);
        $this->throw404IfNotFound($issue);
        $journal = $issue->getJournal();
        if ($journal->getStatus() !== JournalStatuses::STATUS_PUBLISHED || $journal->getPublisher()->getStatus() !== PublisherStatuses::STATUS_COMPLETE) {
            $journal = null;
            $this->throw404IfNotFound($journal);
        }
        $blocks = $blockRepo->journalBlocks($issue->getJournal());
        $token = $this->get('security.csrf.token_manager')->refreshToken('issue_view');
        $sections = $this->setupIssueSections($issue);
        $articles = [];
        /** @var Section $section */
        foreach ($sections as $section) {
            $articles[$section->getId()] = $articleRepo->getOrderedArticles($issue, $section);
        }
        $displayModes = ['all' => IssueDisplayModes::SHOW_ALL, 'title' => IssueDisplayModes::SHOW_TITLE, 'volumeAndNumber' => IssueDisplayModes::SHOW_VOLUME_AND_NUMBER];
        return $this->render('OjsSiteBundle:Issue:detail.html.twig', ['issue' => $issue, 'blocks' => $blocks, 'token' => $token, 'sections' => $sections, 'articles' => $articles, 'displayModes' => $displayModes, 'isJournalHosting' => $isJournalHosting]);
    }