/** * Loads the sitemap * * @return null */ private function _loadSitemap() { if (isset($_ENV['NEXISTA_MODE'])) { Nexista_Config::setMode($_ENV['NEXISTA_MODE']); } //read sitemap as xml $this->sitemapDocument = new DOMDocument("1.0", "UTF-8"); $my_sitemap = Nexista_Config::get('./build/sitemap'); $this->sitemapDocument->load($my_sitemap); $gate_items = $this->sitemapDocument->getElementsByTagName('*'); foreach ($gate_items as $gate_i) { if ($gate_i->hasAttribute("src")) { $my_src = $gate_i->getAttribute("src"); // Do not alter absolute or starting with inline flow paths if ($my_src[0] != "/" && $my_src[0] != "{") { $gate_i->removeAttribute("src"); $gate_i->setAttribute("src", dirname($my_sitemap) . "/" . $my_src); } } } //process extensions sitemaps $extensions = Nexista_Config::getSection('extensions'); if (is_array($extensions)) { foreach ($extensions as $extension => $value) { $thisExtension = Nexista_Config::getSection($extension, false, '/extensions/'); if ($ext_sitemap = $thisExtension['sitemap']) { if (is_file($ext_sitemap)) { $zdoc = new DOMDocument(); $zdoc->load($ext_sitemap); $gate_items = $zdoc->getElementsByTagName('*'); foreach ($gate_items as $gate_item) { if ($gate_item->hasAttribute("src")) { $my_src = $gate_item->getAttribute("src"); $gate_item->removeAttribute("src"); $gate_item->setAttribute("src", dirname($ext_sitemap) . "/" . $my_src); } } // Only import gates $z = new DOMXPath($zdoc); $zimported_gates = $z->query('//map:gate'); foreach ($zimported_gates as $zimport) { $a = $this->sitemapDocument->importNode($zimport, 1); $this->sitemapDocument->documentElement->appendChild($a); } } } } } }