new sitemap.xml
[contractdashboard.git] / sitemap.xml.php
blob:a/sitemap.xml.php -> blob:b/sitemap.xml.php
--- a/sitemap.xml.php
+++ b/sitemap.xml.php
@@ -1,20 +1,22 @@
 <?php
-include ('lib/common.inc.php');
-$last_updated['page'] = date('Y-m-d',@filemtime('index.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');
+$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) {
@@ -22,47 +24,68 @@
          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) {
-        echo "<sitemap>
-      <loc>" . local_url() . "sitemap.xml.php?section=$section</loc>
+        $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";
+    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";
-}
+        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) {
+    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") {
-       $result = $conn->query('SELECT DISTINCT on ("supplierID") (
- case when "supplierABN" != 0 THEN "supplierABN"::text ELSE lower("supplierName") END) as "supplierID", "supplierABN", "supplierName"  from contractnotice');
-       
-       foreach ($result->fetchAll() as $row) {
-           
-           $supplier = urlencode(stripslashes($row['supplierABN'] . '-' . $row['supplierName']));
+        $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>
+        $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";
-           
+
         }
     }
-  echo '</urlset>';
+    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>';
 }
 ?>