[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
14082024
/
Data
/
htdocs
/
htdocs
/
jurnal-kesmas
/
baru
/
pages
/
sitemap
/
[
Home
]
File: SitemapHandler.php
<?php /** * @file pages/sitemap/SitemapHandler.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class SitemapHandler * * @ingroup pages_sitemap * * @brief Produce a sitemap in XML format for submitting to search engines. */ namespace APP\pages\sitemap; use APP\facades\Repo; use APP\issue\Collector; use APP\submission\Submission; use PKP\pages\sitemap\PKPSitemapHandler; use PKP\plugins\Hook; class SitemapHandler extends PKPSitemapHandler { /** * @copydoc PKPSitemapHandler_createContextSitemap() */ public function _createContextSitemap($request) { $doc = parent::_createContextSitemap($request); $root = $doc->documentElement; $journal = $request->getJournal(); $journalId = $journal->getId(); // Search $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'search'))); // Issues if ($journal->getData('publishingMode') != \APP\journal\Journal::PUBLISHING_MODE_NONE) { $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'issue', 'current'))); $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'issue', 'archive'))); $publishedIssues = Repo::issue()->getCollector() ->filterByContextIds([$journalId]) ->filterByPublished(true) ->orderBy(Collector::ORDERBY_PUBLISHED_ISSUES) ->getMany(); foreach ($publishedIssues as $issue) { $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'issue', 'view', $issue->getId()))); // Articles for issue $submissions = Repo::submission() ->getCollector() ->filterByContextIds([$journal->getId()]) ->filterByIssueIds([$issue->getId()]) ->filterByStatus([Submission::STATUS_PUBLISHED]) ->getMany(); foreach ($submissions as $submission) { // Abstract $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'article', 'view', [$submission->getBestId()]))); // Galley files $galleys = Repo::galley() ->getCollector() ->filterByPublicationIds([($submission->getCurrentPublication()->getId())]) ->getMany(); foreach ($galleys as $galley) { $root->appendChild($this->_createUrlTree($doc, $request->url($journal->getPath(), 'article', 'view', [$submission->getBestId(), $galley->getBestGalleyId()]))); } } } } $doc->appendChild($root); // Enable plugins to change the sitemap Hook::call('SitemapHandler::createJournalSitemap', [&$doc]); return $doc; } }