Refbase update_2021-01-28_15_58
This commit is contained in:
99
sitemap.php
Normal file
99
sitemap.php
Normal file
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
// Project: Web Reference Database (refbase) <http://www.refbase.net>
|
||||
// Copyright: Matthias Steffens <mailto:refbase@extracts.de> and the file's
|
||||
// original author(s).
|
||||
//
|
||||
// This code is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY. Please see the GNU General Public
|
||||
// License for more details.
|
||||
//
|
||||
// File: ./sitemap.php
|
||||
// Repository: $HeadURL: file:///svn/p/refbase/code/branches/bleeding-edge/sitemap.php $
|
||||
// Author(s): Richard Karnesky <mailto:rkarnesky@gmail.com>
|
||||
//
|
||||
// Created: 17-May-08, 15:50
|
||||
// Modified: $Date: 2017-04-13 02:00:18 +0000 (Thu, 13 Apr 2017) $
|
||||
// $Author: karnesky $
|
||||
// $Revision: 1416 $
|
||||
|
||||
// Create a sitemap for better indexing by search engines.
|
||||
// <http://www.sitemaps.org/>
|
||||
// You can either use this to dynamically generate sitemaps or can make a
|
||||
// crontab entry to wget it (saving execution time & allowing you to manually
|
||||
// gzip the file (if your webserver doesn't already do this for you).
|
||||
|
||||
// TODO:
|
||||
// - Handle cases where there are >50,000 URLs
|
||||
// - Possibly come up with smart ways to specify changefreq and priority
|
||||
|
||||
|
||||
// Incorporate some include files:
|
||||
include 'initialize/db.inc.php'; // 'db.inc.php' is included to hide username and password
|
||||
include 'includes/include.inc.php'; // include common functions
|
||||
include 'initialize/ini.inc.php'; // include common variables
|
||||
|
||||
global $tableRefs;
|
||||
global $databaseBaseURL;
|
||||
global $fileVisibility;
|
||||
global $fileVisibilityException;
|
||||
global $filesBaseURL;
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
// START A SESSION:
|
||||
// call the 'start_session()' function (from 'include.inc.php') which will also read out available session variables:
|
||||
start_session(true);
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
// (1) OPEN CONNECTION, (2) SELECT DATABASE
|
||||
connectToMySQLDatabase(); // function 'connectToMySQLDatabase()' is defined in 'include.inc.php'
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
$query = "SELECT *,file FROM ".$tableRefs .' WHERE serial RLIKE ".+"';
|
||||
|
||||
header('Content-Type: application/xml');
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
|
||||
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n";
|
||||
echo " <url>\n";
|
||||
echo " <loc>". $databaseBaseURL."index.php</loc>\n";
|
||||
echo " <changefreq>monthly</changefreq>\n"; // liberal, based on nucapt's history (not total records)
|
||||
echo " </url>\n";
|
||||
|
||||
// (3) RUN QUERY, (4) DISPLAY EXPORT FILE OR HEADER & RESULTS
|
||||
|
||||
// (3) RUN the query on the database through the connection:
|
||||
$result = queryMySQLDatabase($query); // function 'queryMySQLDatabase()' is defined in 'include.inc.php'
|
||||
|
||||
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
|
||||
echo " <url>\n";
|
||||
echo " <loc>".$databaseBaseURL."show.php?record=".$row['serial']."</loc>\n";
|
||||
if (!empty($row['modified_date'])) {
|
||||
$datemod = " <lastmod>"
|
||||
. generateISO8601TimeStamp($row['modified_date'], $row['modified_time']) // function 'generateISO8601TimeStamp()' is defined in 'include.inc.php'
|
||||
. "</lastmod>\n";
|
||||
echo $datemod;
|
||||
}
|
||||
else
|
||||
$datemod = "";
|
||||
echo " </url>\n";
|
||||
if ($fileVisibility == "everyone" OR (!empty($fileVisibilityException) AND preg_match($fileVisibilityException[1], $row[$fileVisibilityException[0]]))) {
|
||||
if (!empty($row["file"])) { // if the 'file' field is NOT empty
|
||||
if (!preg_match("#^(https?|ftp|file)://#i", $row["file"])) { // if the 'file' field does not contain a full URL (starting with "http://", "https://", "ftp://" or "file://")
|
||||
echo " <url>\n";
|
||||
echo " <loc>".$databaseBaseURL.$filesBaseURL.$row["file"]."</loc>\n";
|
||||
if (!empty($datemod))
|
||||
echo $datemod;
|
||||
echo " </url>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "</urlset>";
|
||||
|
||||
disconnectFromMySQLDatabase(); // function 'disconnectFromMySQLDatabase()' is defined in 'include.inc.php'
|
||||
exit; // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> !EXIT! <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
?>
|
Reference in New Issue
Block a user