File Manager
Upload
Current Directory: /home/lartcid/public_html/journal.lartc.id
[Back]
..
[Open]
Hapus
Rename
.htaccess
[Edit]
Hapus
Rename
.well-known
[Open]
Hapus
Rename
README.md
[Edit]
Hapus
Rename
api
[Open]
Hapus
Rename
cache
[Open]
Hapus
Rename
cgi-bin
[Open]
Hapus
Rename
classes
[Open]
Hapus
Rename
config.TEMPLATE.inc.php
[Edit]
Hapus
Rename
config.inc.php
[Edit]
Hapus
Rename
controllers
[Open]
Hapus
Rename
cypress.json
[Edit]
Hapus
Rename
dbscripts
[Open]
Hapus
Rename
docs
[Open]
Hapus
Rename
error_log
[Edit]
Hapus
Rename
favicon.ico
[Edit]
Hapus
Rename
index.php
[Edit]
Hapus
Rename
js
[Open]
Hapus
Rename
lib
[Open]
Hapus
Rename
locale
[Open]
Hapus
Rename
mini.php
[Edit]
Hapus
Rename
pages
[Open]
Hapus
Rename
php.ini
[Edit]
Hapus
Rename
plugins
[Open]
Hapus
Rename
public
[Open]
Hapus
Rename
registry
[Open]
Hapus
Rename
scheduledTaskLogs
[Open]
Hapus
Rename
schemas
[Open]
Hapus
Rename
styles
[Open]
Hapus
Rename
templates
[Open]
Hapus
Rename
tools
[Open]
Hapus
Rename
Edit File
<?php /** * @file pages/sitemap/PKPSitemapHandler.inc.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 PKPSitemapHandler * @ingroup pages_sitemap * * @brief Produce a sitemap in XML format for submitting to search engines. */ import('classes.handler.Handler'); define('SITEMAP_XSD_URL', 'https://www.sitemaps.org/schemas/sitemap/0.9'); class PKPSitemapHandler extends Handler { /** * Generate an XML sitemap for webcrawlers * Creates a sitemap index if in site context, else creates a sitemap * @param $args array * @param $request Request */ function index($args, $request) { $context = $request->getContext(); if (!$context) { $doc = $this->_createSitemapIndex($request); header("Content-Type: application/xml"); header("Cache-Control: private"); header("Content-Disposition: inline; filename=\"sitemap_index.xml\""); echo $doc->saveXml(); } else { $doc = $this->_createContextSitemap($request); header("Content-Type: application/xml"); header("Cache-Control: private"); header("Content-Disposition: inline; filename=\"sitemap.xml\""); echo $doc->saveXml(); } } /** * Construct a sitemap index listing each context's individual sitemap * @param $request Request * @return DOMDocument */ function _createSitemapIndex($request) { $contextDao = Application::getContextDAO(); $doc = new DOMDocument('1.0', 'utf-8'); $root = $doc->createElement('sitemapindex'); $root->setAttribute('xmlns', SITEMAP_XSD_URL); $contexts = $contextDao->getAll(true); while ($context = $contexts->next()) { $sitemapUrl = $request->url($context->getPath(), 'sitemap'); $sitemap = $doc->createElement('sitemap'); $sitemap->appendChild($doc->createElement('loc', htmlspecialchars($sitemapUrl, ENT_COMPAT, 'UTF-8'))); $root->appendChild($sitemap); } $doc->appendChild($root); return $doc; } /** * Construct the sitemap * @param $request Request * @return DOMDocument */ function _createContextSitemap($request) { $context = $request->getContext(); $doc = new DOMDocument('1.0', 'utf-8'); $root = $doc->createElement('urlset'); $root->setAttribute('xmlns', SITEMAP_XSD_URL); // Context home $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath()))); // User register if ($context->getData('disableUserReg') != 1) { $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath(), 'user', 'register'))); } // User login $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath(), 'login'))); // Announcements if ($context->getData('enableAnnouncements') == 1) { $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath(), 'announcement'))); $announcementDao = DAORegistry::getDAO('AnnouncementDAO'); /* @var $announcementDao AnnouncementDAO */ foreach ($announcementDao->getByAssocId($context->getAssocType(), $context->getId()) as $announcement) { $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath(), 'announcement', 'view', $announcement->getId()))); } } // About: context if (!empty($context->getData('about'))) { $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath(), 'about'))); } // About: submissions $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath(), 'about', 'submissions'))); // About: editorial team if (!empty($context->getData('editorialTeam'))) { $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath(), 'about', 'editorialTeam'))); } // About: contact if (!empty($context->getData('mailingAddress')) || !empty($context->getData('contactName'))) { $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath(), 'about', 'contact'))); } // Custom pages (navigation menu items) $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /* @var $navigationMenuItemDao NavigationMenuItemDAO */ $menuItemsResult = $navigationMenuItemDao->getByType(NMI_TYPE_CUSTOM, $context->getId()); while ($menuItem = $menuItemsResult->next()) { $root->appendChild($this->_createUrlTree($doc, $request->url($context->getPath(), $menuItem->getPath()))); } $doc->appendChild($root); return $doc; } /** * Create a url entry with children * @param $doc DOMDocument Reference to the XML document object * @param $loc string URL of page (required) * @param $lastmod string Last modification date of page (optional) * @param $changefreq Frequency of page modifications (optional) * @param $priority string Subjective priority assessment of page (optional) * @return DOMNode */ protected function _createUrlTree($doc, $loc, $lastmod = null, $changefreq = null, $priority = null) { $url = $doc->createElement('url'); $url->appendChild($doc->createElement('loc', htmlspecialchars($loc, ENT_COMPAT, 'UTF-8'))); if ($lastmod) { $url->appendChild($doc->createElement('lastmod', $lastmod)); } if ($changefreq) { $url->appendChild($doc->createElement('changefreq', $changefreq)); } if ($priority) { $url->appendChild($doc->createElement('priority', $priority)); } return $url; } }
Simpan