diff options
author | Earle Martin <earle@downlode.org> | 2008-07-13 20:08:33 -0400 |
---|---|---|
committer | Earle Martin <earle@downlode.org> | 2008-07-13 20:08:33 -0400 |
commit | 941eb61e82d4b395d1bea4fc630e5fb14a489f29 (patch) | |
tree | 42034cbd1640393c7fb48db2b341bde7899be7c1 | |
parent | a47ab1ad6acee9a94dce7803d05683c2903b187d (diff) |
Take full path for index file, not just name; change any "hourly" changefreqs to "daily"; add small function for W3C timestamps.
darcs-hash:20080714000833-68ac8-388a8a23336cd08b7e5e5984834aef3d57c3b7bc.gz
-rw-r--r-- | sitemap.php | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/sitemap.php b/sitemap.php index 37e57a75a..538646a7e 100644 --- a/sitemap.php +++ b/sitemap.php @@ -32,15 +32,13 @@ function index_map() { $index_urls .= url( array( 'url' => $output_url . $file_name, - 'changefreq' => 'hourly', + 'changefreq' => 'daily', 'priority' => '1', ) ); } - $index_path = $output_dir . $output_paths['index_file']; - - write_file($index_path, urlset($index_urls)); + write_file($output_paths['index_file'], urlset($index_urls)); } @@ -51,7 +49,7 @@ function standard_map() { $standard_map_urls .= url( array( 'url' => common_local_url('public'), - 'changefreq' => 'hourly', + 'changefreq' => 'daily', 'priority' => '1', ) ); @@ -59,7 +57,7 @@ function standard_map() { $standard_map_urls .= url( array( 'url' => common_local_url('publicrss'), - 'changefreq' => 'hourly', + 'changefreq' => 'daily', 'priority' => '0.3', ) ); @@ -102,8 +100,8 @@ function notices_map() { $notice = array( 'url' => $notices->uri, - 'lastmod' => preg_replace('/ /', 'T', $notices->modified), # W3C DTF requires "T" separator - 'changefreq' => 'hourly', + 'lastmod' => w3cdate($notices->modified), + 'changefreq' => 'daily', 'priority' => '1', ); @@ -140,37 +138,37 @@ function user_map() { # Define parameters for generating <url></url> elements. $user = array( 'url' => common_local_url('showstream', $user_args), - 'changefreq' => 'hourly', + 'changefreq' => 'daily', 'priority' => '1', ); $user_rss = array( 'url' => common_local_url('userrss', $user_args), - 'changefreq' => 'hourly', + 'changefreq' => 'daily', 'priority' => '0.3', ); $all = array( 'url' => common_local_url('all', $user_args), - 'changefreq' => 'hourly', + 'changefreq' => 'daily', 'priority' => '1', ); $all_rss = array( 'url' => common_local_url('allrss', $user_args), - 'changefreq' => 'hourly', + 'changefreq' => 'daily', 'priority' => '0.3', ); $replies = array( 'url' => common_local_url('replies', $user_args), - 'changefreq' => 'hourly', + 'changefreq' => 'daily', 'priority' => '1', ); $replies_rss = array( 'url' => common_local_url('repliesrss', $user_args), - 'changefreq' => 'hourly', + 'changefreq' => 'daily', 'priority' => '0.3', ); @@ -228,10 +226,10 @@ function avatar_map() { $avatar_count = 0; $map_count++; } - +w3cdate($avatars->modified); $image = array( 'url' => $avatars->url, - 'lastmod' => preg_replace('/ /', 'T', $avatars->modified), # W3C DTF requires "T" separator + 'lastmod' => w3cdate($avatars->modified), 'changefreq' => 'monthly', 'priority' => '0.2', ); @@ -281,9 +279,9 @@ function url($url_args) { # Generate a <urlset></urlset> element. function urlset($urlset_text) { - $urlset = '<?xml version="1.0" encoding="UTF-8"?>'. - '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'. - $urlset_text. + $urlset = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . + '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n" . + $urlset_text . '</urlset>'; return $urlset; @@ -310,7 +308,7 @@ function parse_args() { $args = getopt('f:d:u:'); if (is_null($args[f]) && is_null($args[d]) && is_null($args[u])) { - error('Mandatory arguments: -f <index file name> -d <output directory> -u <URL of sitemaps directory>'); + error('Mandatory arguments: -f <index file path> -d <output directory path> -u <URL of sitemaps directory>'); } if (is_null($args[f])) { @@ -346,6 +344,13 @@ function parse_args() { return $paths; } +# Format database timestamps as W3C DTF. +function w3cdate ($timestamp) { + preg_match('/(\d{4})-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)/', $timestamp, $date); + + return date(DATE_W3C, mktime($date[4], $date[5], $date[6], $date[2], $date[3], $date[1])); +} + # Ensure paths end with a "/". function trailing_slash($path) { if (preg_match('/\/$/', $path) == 0) { |