162 lines
4.4 KiB
PHP
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;
|
|
}
|
|
|
|
|
|
?>
|