/** * @param SitemapPopulateEvent $event * @param Journal $journal * @return SitemapPopulateEvent */ private function generateIssueLinks(SitemapPopulateEvent $event, Journal $journal) { $issues = $journal->getIssues(); /** @var Issue $issue */ foreach ($issues as $issue) { $event->getGenerator()->addUrl(new UrlConcrete($this->router->generate('ojs_issue_page', ['publisher' => $journal->getPublisher()->getSlug(), 'journal_slug' => $journal->getSlug(), 'id' => $issue->getId()], true), new \DateTime(), UrlConcrete::CHANGEFREQ_WEEKLY, 1), 'journals-' . $journal->getSlug()); $event = $this->generateArticleLinks($event, $issue); } return $event; }
/** * * @param Journal $journal * @return array */ public function getVolumes(Journal $journal) { $issues = $journal->getIssues(); $volumes = []; foreach ($issues as $issue) { /* @var $issue Issue */ $volume = $issue->getVolume(); $volumes[$volume]['issues'][] = $issue; $volumes[$volume]['volume'] = $volume; } return $volumes; }