Files
openkj-request-server/global.inc
T. Isaac Lightburn 2b9c644016 Initial import
2018-02-07 20:48:28 -06:00

162 lines
4.4 KiB
PHP

<?php
include("settings.inc");
$db = new PDO("sqlite:$dbFilePath");
$db->exec("CREATE TABLE IF NOT EXISTS songdb (song_id integer PRIMARY KEY AUTOINCREMENT, artist text, title TEXT, combined TEXT UNIQUE)");
$db->exec("CREATE TABLE IF NOT EXISTS state (accepting bool, serial integer NOT NULL)");
$db->exec("INSERT OR IGNORE INTO state (rowid,accepting,serial) VALUES(0,0,1)");
$db->exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_songstrings ON songdb(combined)");
$db->exec("CREATE TABLE IF NOT EXISTS requests (request_id integer PRIMARY KEY AUTOINCREMENT, artist TEXT, title TEXT, singer TEXT, request_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP)");
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$accepting = true;
$songdbtable = "songdb";
$requeststable = "requests";
if (isset($_SERVER['REFERER'])) $referer = $_SERVER['REFERER'];
function siteheader($title)
{
global $venueName;
global $screensize;
echo "<html><head>
<link href='https://fonts.googleapis.com/css?family=Audiowide' rel='stylesheet'>
<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'>
<title>$venueName Karaoke Songbook</title>
<link rel=stylesheet type=\"text/css\" href=venuestyle.css />
<script type=\"text/javascript\">
function submitreq(varid){
window.location = \"./submitreq.php?id=\" + varid;
}
</script>
</head><body>";
}
function sitefooter() {
echo "</div></body></html>";
}
function navbar($backurl)
{
if ($backurl == "")
$backurl = index.php;
global $screensize;
echo "<div class=navbar>
<span class=title>OpenKJ Songbook</span>
</div><div class=mainbody><span class=backbtn><a class=button href=\"$backurl\" class=navbar id=backlink>Back</a></span>";
}
function setAccepting($accepting)
{
global $db;
$db->exec("UPDATE state SET accepting=$accepting");
}
function getAccepting()
{
global $db;
$accepting = false;
foreach ($db->query("SELECT accepting FROM state LIMIT 1") as $row)
{
$accepting = (bool)$row['accepting'];
}
return $accepting;
}
function searchform()
{
global $db;
global $venue_id;
if (!getAccepting())
{
echo "<br><br><h2>Sorry, requests are not being accepted at this time</h2>";
}
else
{
global $url_name;
global $screensize;
echo "<br><p><form method=get action=search.php>Song search: <input type=text name=q autofocus autocomplete=off><input type=submit value=Search></form></p>";
echo '<p class=info>You may enter any part of the artist and/or title of the song. Partial words are allowed.</p>
<p class=info>For example "pai bla stone" would match "Rolling Stones, The - Paint it black".</p>';
}
}
function getSerial()
{
global $db;
$serial = -1;
foreach ($db->query("SELECT serial FROM state LIMIT 1") as $row)
{
$serial = (int)$row['serial'];
}
return $serial;
}
function newSerial()
{
global $db;
$serial = getSerial();
$newSerial = mt_rand(0,99999);
while ($newSerial == $serial)
{
$newSerial = mt_rand(0,99999);
}
$db->exec("UPDATE state SET serial=$newSerial");
return $newSerial;
}
function getVenue()
{
// We don't really do multiple venues in standalone, just fake it
global $db;
global $venueName;
$serial = -1;
$venue = array();
$venue['venue_id'] = $venue_id;
$venue['accepting'] = getAccepting();
$venue['name'] = $venueName;
$venue['url_name'] = "none";
return $venue;
}
function getVenues()
{
// We don't really do multiple venues in standalone, just fake it
global $db;
global $venueName;
$venues = array();
$venue['venue_id'] = 0;
$venue['accepting'] = getAccepting();
$venue['name'] = $venueName;
$venue['url_name'] = "none";
$venues['venues'][] = $venue;
return $venues;
}
function getRequests()
{
global $db;
$requests = array();
$result = $db->query("SELECT request_id,artist,title,singer,strftime('%s', request_time) AS unixtime FROM requests");
if ($result)
{
foreach ($result as $row)
{
$request['request_id'] = (int)$row['request_id'];
$request['artist'] = $row['artist'];
$request['title'] = $row['title'];
$request['singer'] = $row['singer'];
$request['request_time'] = (int)$row['unixtime'];
$requests['requests'][] = $request;
}
}
return $requests;
}
?>