Пример #1
0
 /**
  * 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);
                     }
                 }
             }
         }
     }
 }