view sitemap.php @ 44:79f708a48a7c

Added a constants include. Refactored out functions from sitemap.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Mon, 08 Oct 2012 02:01:04 +0200
parents f37be50a70cf
children 2cfea6e84694 3898353ed1d8
line wrap: on
line source

<?
header('Content-type: application/xml');
print '<?xml version="1.0" encoding="UTF-8"?>';
print "\n";
?>
<urlset
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
            http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<?
include_once 'CacheTimeCheck.inc';

$cache = CacheTimeCheck::instance(__FILE__);
$cache->includeOnce('Options.inc', dirname(__FILE__));

$master = new DOMDocument();
$master->load("master.xml");

$options = new Options($master);

$base = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
$base = substr($base, 0, strrpos($base, '/'));

$acceptedLanguages = $options->getAcceptedLanguages();

foreach($options->getAcceptedLanguages() as $lang) {
  if ($handle = opendir("${lang}")) {
    while (false !== ($entry = readdir($handle))) {
      if (endsWith($entry, '.xml')) {
	$fentry = "${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 != $options->getInputDefault('name')) {
	      $opts['name'] = $name;
	    }

	    $optstring = opttostring($opts);

	    $location = "${base}/${optstring}";
	    $headers = getHeaders($location);

	    $location = htmlentities($location);

	    $lastmod = $headers["Last-Modified"];
	    $lastmod = strtotime($lastmod);
	    $lastmod = date(DateTime::W3C, $lastmod);

	    print "<url>\n";
	    print "<loc>${location}</loc>\n";
	    print "<lastmod>${lastmod}</lastmod>\n";
	    print "</url>\n";
	  }
	}
      }
    }
    closedir($handle);
  }
}

?>
</urlset>