category breakdown
[contractdashboard.git] / sitemap.xml.php
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&amp;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>';
}
?>