Mercurial > SimpleWebPresenter
diff Sitemap.inc @ 116:374e3eff07fd
Branch merge
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 17 Mar 2016 22:34:49 +0100 |
| parents | f498ea087d67 |
| children | e3f97bbf12f3 |
line wrap: on
line diff
--- a/Sitemap.inc Thu Mar 17 22:32:33 2016 +0100 +++ b/Sitemap.inc Thu Mar 17 22:34:49 2016 +0100 @@ -69,7 +69,49 @@ return false; } + private function processDir($dir, $lang, $acceptedLanguages, $base) { + $urls = array(); + + if ($handle = opendir(basePath() . "/${dir}")) { + while (false !== ($entry = readdir($handle))) { + if (endsWith($entry, '.xml')) { + $fentry = basepath() . "/${dir}/${entry}"; + + $doc = new DOMDocument(); + + if (file_exists($fentry)) { + $doc->load($fentry); + + $opts = array(); + if (count($acceptedLanguages) > 1) { + $opts['lang'] = $lang; + } + + $toplevel = $doc->getElementsByTagName("toplevel"); + + if($toplevel->length) { + $name = substr($entry, 0, -4); + + if ($name != $this->options->getInputDefault('name')) { + $opts['name'] = $name; + } + + $optstring = genUrl($opts, array(), array('lang', 'name')); + + $location = "${base}${optstring}/"; + + array_push($urls, $location); + } + } + } + } + closedir($handle); + } + return $urls; + } + function generateContent() { + /// The final output variable $out = '<?xml version="1.0" encoding="UTF-8"?>'; $out .= "\n"; @@ -92,40 +134,14 @@ $urls = array(); foreach($this->options->getAcceptedLanguages() as $lang) { - if ($handle = opendir(basePath() . "/${lang}")) { - while (false !== ($entry = readdir($handle))) { - if (endsWith($entry, '.xml')) { - $fentry = basepath() . "/${lang}/${entry}"; - $doc = new DOMDocument(); - - if (file_exists($fentry)) { - $doc->load($fentry); - - $opts = array(); - if (count($acceptedLanguages) > 1) { - $opts['lang'] = $lang; - } - - $toplevel = $doc->getElementsByTagName("toplevel"); - - if($toplevel->length) { - $name = substr($entry, 0, -4); - - if ($name != $this->options->getInputDefault('name')) { - $opts['name'] = $name; - } - - $optstring = genUrl($opts, array(), array('lang', 'name')); - - $location = "${base}${optstring}/"; - - array_push($urls, $location); - } - } - } - } - closedir($handle); - } + $urls=array_merge($urls, + $this->processDir($lang, $lang, + $acceptedLanguages, $base) + ); + $urls=array_merge($urls, + $this->processDir("common", $lang, + $acceptedLanguages, $base) + ); } usort($urls, "cmp_length_lex"); @@ -153,7 +169,7 @@ } } - $out .= '</urlset>'; + $out .= "</urlset>"; $res = new PageContent($out); $cache=new SimpleCache($this->lastmod);
