Open Journal Systems  3.3.0
SitemapHandler.inc.php
1 <?php
2 
16 import('lib.pkp.pages.sitemap.PKPSitemapHandler');
17 
19 
23  function _createContextSitemap($request) {
24  $doc = parent::_createContextSitemap($request);
25  $root = $doc->documentElement;
26 
27  $journal = $request->getJournal();
28  $journalId = $journal->getId();
29 
30  // Search
31  $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'search')));
32  // Issues
33  $issueDao = DAORegistry::getDAO('IssueDAO'); /* @var $issueDao IssueDAO */
34  $galleyDao = DAORegistry::getDAO('ArticleGalleyDAO'); /* @var $galleyDao ArticleGalleyDAO */
35  if ($journal->getData('publishingMode') != PUBLISHING_MODE_NONE) {
36  $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'issue', 'current')));
37  $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'issue', 'archive')));
38  $publishedIssues = $issueDao->getPublishedIssues($journalId);
39  while ($issue = $publishedIssues->next()) {
40  $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'issue', 'view', $issue->getId())));
41  // Articles for issue
42  $submissionsIterator = Services::get('submission')->getMany([
43  'issueIds' => [$issue->getId()],
44  'contextId' => $journal->getId(),
45  'status' => STATUS_PUBLISHED,
46  ]);
47  foreach($submissionsIterator as $submission) {
48  // Abstract
49  $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'article', 'view', array($submission->getBestId()))));
50  // Galley files
51  $galleys = $galleyDao->getByPublicationId($submission->getCurrentPublication()->getId());
52  while ($galley = $galleys->next()) {
53  $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'article', 'view', array($submission->getBestId(), $galley->getBestGalleyId()))));
54  }
55  }
56  }
57  }
58 
59  $doc->appendChild($root);
60 
61  // Enable plugins to change the sitemap
62  HookRegistry::call('SitemapHandler::createJournalSitemap', array(&$doc));
63 
64  return $doc;
65  }
66 
67 }
68 
69 
SitemapHandler\_createContextSitemap
_createContextSitemap($request)
Definition: SitemapHandler.inc.php:23
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PKPSitemapHandler\_createUrlTree
_createUrlTree($doc, $loc, $lastmod=null, $changefreq=null, $priority=null)
Definition: PKPSitemapHandler.inc.php:135
SitemapHandler
Produce a sitemap in XML format for submitting to search engines.
Definition: SitemapHandler.inc.php:18
PKPSitemapHandler
Produce a sitemap in XML format for submitting to search engines.
Definition: PKPSitemapHandler.inc.php:20
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49