/** * @param SitemapPopulateEvent $event * @param Issue $issue * @return SitemapPopulateEvent */ private function generateArticleLinks(SitemapPopulateEvent $event, Issue $issue) { $articles = $issue->getArticles(); $journal = $issue->getJournal(); foreach ($articles as $article) { $event->getGenerator()->addUrl(new UrlConcrete($this->router->generate('ojs_article_page', ['publisher' => $journal->getPublisher()->getSlug(), 'slug' => $journal->getSlug(), 'issue_id' => $issue->getId(), 'article_id' => $article->getId()], true), new \DateTime(), UrlConcrete::CHANGEFREQ_WEEKLY, 1), 'journals-' . $journal->getSlug()); } return $event; }
/** * @param Issue $lastIssue * @param boolean $isJournalHosting * @return Issue mixed */ private function setupArticleURIs(Issue $lastIssue, $isJournalHosting) { foreach ($lastIssue->getArticles() as $article) { if ($isJournalHosting) { $article->setPublicURI($this->generateUrl('journal_hosting_issue_article', ['issue_id' => $article->getIssue()->getId(), 'article_id' => $article->getId()], true)); } else { $article->setPublicURI($this->generateUrl('publisher_hosting_journal_issue_article', ['slug' => $article->getIssue()->getJournal()->getSlug(), 'issue_id' => $article->getIssue()->getId(), 'article_id' => $article->getId()], true)); } } return $lastIssue; }
/** * @param Issue $last_issue * @return Issue|null */ private function setupArticleURIs($last_issue) { if ($last_issue) { /** @var Article $article */ foreach ($last_issue->getArticles() as $article) { $article->setPublicURI($this->generateUrl('ojs_article_page', ['publisher' => $article->getIssue()->getJournal()->getPublisher()->getSlug(), 'slug' => $article->getIssue()->getJournal()->getSlug(), 'issue_id' => $article->getIssue()->getId(), 'article_id' => $article->getId()], true)); } return $last_issue; } return null; }