1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | <?php include('lib/common.inc.php'); $last_updated['page'] = date('Y-m-d', @filemtime('index.php')); $sections = Array( "agency", "category", "supplier", "SON", "page" ); header("Content-Type: text/xml"); echo "<?xml version='1.0' encoding='UTF-8'?>"; $result = $conn->query('SELECT title, to_char("lastUpdated",\'YYYY-MM-DD\') AS "lastUpdated" FROM datasets'); foreach ($result->fetchAll() as $row) { if ($row['title'] == "Contract Notices") { $last_updated['agency'] = $row['lastUpdated']; $last_updated['supplier'] = $row['lastUpdated']; $last_updated['category'] = $row['lastUpdated']; $last_updated['SON'] = $row['lastUpdated']; } } if (isset($_REQUEST['section']) == false) { echo '<sitemapindex 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/siteindex.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; foreach ($sections as $section) { $pages = 0; $i = 0; if ($section == 'supplier') $pages = 1; do { echo "<sitemap> <loc>" . local_url() . "sitemap.xml.php?section=$section&page=$i</loc> <lastmod>" . $last_updated[$section] . '</lastmod></sitemap>'; $i++; } while ($i <= $pages); } echo '</sitemapindex>'; } else { echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n"; if ($_REQUEST['section'] == "page") { echo " <url><loc>" . local_url() . "index.php</loc><priority>1.0</priority></url>\n"; foreach (scandir("./") as $file) { if (strpos($file, ".php") !== false && $file != "index.php" && $file != "sitemap.xml.php") echo " <url><loc>" . local_url() . "$file</loc><priority>0.3</priority></url>\n"; } } if ($_REQUEST['section'] == "agency") { $result = $conn->query('SELECT DISTINCT "agencyName" FROM contractnotice'); foreach ($result->fetchAll() as $row) { echo " <url><loc>" . local_url() . "displayAgency.php?agency=" . urlencode($row['agencyName']) . "</loc> <lastmod>" . $last_updated['agency'] . "</lastmod></url>\n"; } } if ($_REQUEST['section'] == "supplier") { $start = $_REQUEST['page'] * 40000; $result = $conn->prepare('SELECT DISTINCT ON ("supplierID") ( CASE WHEN "supplierABN" != 0 THEN "supplierABN"::TEXT ELSE lower("supplierName") END) AS "supplierID", "supplierABN", "supplierName" FROM contractnotice order by "supplierID" LIMIT 40000 OFFSET :start '); $result->execute(array(':start' => $start)); foreach ($result->fetchAll() as $row) { $supplier = urlencode(stripslashes($row['supplierABN'] . '-' . $row['supplierName'])); echo " <url><loc>" . local_url() . "displaySupplier.php?supplier=$supplier</loc> <lastmod>" . $last_updated['supplier'] . "</lastmod></url>\n"; } } if ($_REQUEST['section'] == "category") { $result = $conn->query('SELECT DISTINCT category FROM contractnotice;'); foreach ($result->fetchAll() as $row) { echo " <url><loc>" . local_url() . "displayCategory.php?category=" . urlencode($row['category']) . "</loc> <lastmod>" . $last_updated['category'] . "</lastmod></url>\n"; } } if ($_REQUEST['section'] == "SON") { $result = $conn->query('SELECT DISTINCT "SONID" FROM contractnotice;'); foreach ($result->fetchAll() as $row) { echo " <url><loc>" . local_url() . "displaySON.php?SONID=" . urlencode($row['SONID']) . "</loc> <lastmod>" . $last_updated['SON'] . "</lastmod></url>\n"; } } echo '</urlset>'; } ?> |