reduce supplier sitemap size
reduce supplier sitemap size

<?php <?php
include ('lib/common.inc.php'); include ('lib/common.inc.php');
$last_updated['page'] = date('Y-m-d',@filemtime('index.php')); $last_updated['page'] = date('Y-m-d',@filemtime('index.php'));
$sections = Array( $sections = Array(
"agency", "agency",
"category", "category",
"supplier", "supplier",
"page" "page"
); );
header("Content-Type: text/xml"); header("Content-Type: text/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>"; 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) { foreach ($result->fetchAll() as $row) {
if ($row['title'] == "Contract Notices") { if ($row['title'] == "Contract Notices") {
$last_updated['agency'] = $row['lastUpdated']; $last_updated['agency'] = $row['lastUpdated'];
$last_updated['supplier'] = $row['lastUpdated']; $last_updated['supplier'] = $row['lastUpdated'];
$last_updated['category'] = $row['lastUpdated']; $last_updated['category'] = $row['lastUpdated'];
} }
} }
if (isset($_REQUEST['section']) == false) { if (isset($_REQUEST['section']) == false) {
echo '<sitemapindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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" 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">'; xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach ($sections as $section) { foreach ($sections as $section) {
echo "<sitemap> echo "<sitemap>
<loc>" . local_url() . "sitemap.xml.php?section=$section</loc> <loc>" . local_url() . "sitemap.xml.php?section=$section</loc>
<lastmod>" . $last_updated[$section] . '</lastmod></sitemap>'; <lastmod>" . $last_updated[$section] . '</lastmod></sitemap>';
} }
echo '</sitemapindex>'; echo '</sitemapindex>';
} else { } 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") { if ($_REQUEST['section'] == "page") {
echo " <url><loc>".local_url()."index.php</loc><priority>1.0</priority></url>\n"; echo " <url><loc>".local_url()."index.php</loc><priority>1.0</priority></url>\n";
foreach (scandir("./") as $file) { 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 (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") { if ($_REQUEST['section'] == "agency") {
$result = $conn->query('SELECT DISTINCT "agencyName" from contractnotice'); $result = $conn->query('SELECT DISTINCT "agencyName" from contractnotice');
foreach ($result->fetchAll() as $row) { foreach ($result->fetchAll() as $row) {
echo " <url><loc>" . local_url() . "displayAgency.php?agency=" . urlencode($row['agencyName']) . "</loc> echo " <url><loc>" . local_url() . "displayAgency.php?agency=" . urlencode($row['agencyName']) . "</loc>
<lastmod>" . $last_updated['agency'] . "</lastmod></url>\n"; <lastmod>" . $last_updated['agency'] . "</lastmod></url>\n";
} }
} }
if ($_REQUEST['section'] == "supplier") { if ($_REQUEST['section'] == "supplier") {
$result = $conn->query('SELECT DISTINCT "supplierABN", "supplierName" from contractnotice'); $result = $conn->query('SELECT DISTINCT on ("supplierID") (
  case when "supplierABN" != 0 THEN "supplierABN"::text ELSE "supplierName" END) as "supplierID", "supplierABN", "supplierName" from contractnotice');
foreach ($result->fetchAll() as $row) { foreach ($result->fetchAll() as $row) {
$supplier = urlencode(stripslashes($row['supplierABN'] . '-' . $row['supplierName'])); $supplier = urlencode(stripslashes($row['supplierABN'] . '-' . $row['supplierName']));
echo " <url><loc>" . local_url() . "displaySupplier.php?supplier=$supplier</loc> echo " <url><loc>" . local_url() . "displaySupplier.php?supplier=$supplier</loc>
<lastmod>" . $last_updated['supplier'] . "</lastmod></url>\n"; <lastmod>" . $last_updated['supplier'] . "</lastmod></url>\n";
} }
} }
if ($_REQUEST['section'] == "category") { if ($_REQUEST['section'] == "category") {
$result = $conn->query('SELECT distinct category FROM contractnotice;'); $result = $conn->query('SELECT distinct category FROM contractnotice;');
foreach ($result->fetchAll() as $row) { foreach ($result->fetchAll() as $row) {
echo " <url><loc>" . local_url() . "displayCategory.php?category=".urlencode($row['category'])."</loc> echo " <url><loc>" . local_url() . "displayCategory.php?category=".urlencode($row['category'])."</loc>
<lastmod>" . $last_updated['category'] . "</lastmod></url>\n"; <lastmod>" . $last_updated['category'] . "</lastmod></url>\n";
} }
} }
echo '</urlset>'; echo '</urlset>';
} }
?> ?>