224 lines
7.2 KiB
PHP
224 lines
7.2 KiB
PHP
<?php
|
|
|
|
include_once "../../settings.php";
|
|
|
|
// Get and use an item record ID (ItemRecordID) to use for a data pull
|
|
$ItemID = htmlspecialchars($_GET["itemid"]);
|
|
|
|
// -------------------- BEGIN DATABASE QUERIES --------------------
|
|
|
|
// Establish atabase connection
|
|
$db = new SQLite3('metadata.db');
|
|
|
|
// ---------- Pull data from books table ----------
|
|
$book = $db->query("SELECT id, title, date(timestamp), author_sort, path, strftime('%Y',pubdate) AS pubyear, date(last_modified) FROM books WHERE id = '$ItemID'");
|
|
|
|
while ($row = $book->fetchArray()) {
|
|
$row_id = $row['id'];
|
|
$row_title = $row['title'];
|
|
$row_created = $row['date(timestamp)'];
|
|
$row_author_sort = $row['author_sort'];
|
|
$row_path = $row['path'];
|
|
$row_pubdate = $row['pubyear'];
|
|
$row_modified = $row['date(last_modified)'];
|
|
}
|
|
|
|
|
|
// ---------- Pull data from authors table ----------
|
|
$author = $db->query("SELECT name FROM authors
|
|
INNER JOIN books_authors_link
|
|
ON books_authors_link.author = authors.id
|
|
WHERE books_authors_link.book = '$ItemID'");
|
|
|
|
while ($row = $author->fetchArray()) {
|
|
$row_creator = $row['name'];
|
|
}
|
|
|
|
// ---------- Pull data from comments table ----------
|
|
$summary = $db->query("SELECT text FROM comments WHERE book = '$ItemID'");
|
|
|
|
while ($row = $summary->fetchArray()) {
|
|
$row_summary = $row['text'];
|
|
}
|
|
|
|
// ---------- Pull data from publishers table ----------
|
|
|
|
$publisher = $db->query("SELECT name from publishers
|
|
INNER JOIN books_publishers_link
|
|
ON books_publishers_link.publisher = publishers.id
|
|
WHERE books_publishers_link.book = '$ItemID'");
|
|
|
|
while ($row = $publisher->fetchArray()) {
|
|
$row_publisher = $row['name'];
|
|
}
|
|
|
|
// ---------- Pull data from tags table ----------
|
|
|
|
$tags = $db->query("SELECT name FROM tags
|
|
INNER JOIN books_tags_link
|
|
ON books_tags_link.tag = tags.id
|
|
WHERE tags.name NOT LIKE 'infopump%'
|
|
AND books_tags_link.book = '$ItemID'");
|
|
|
|
// ---------- Pull data from tags table for Similar items ----------
|
|
|
|
// New similar tags query
|
|
$similartags = $db->query("SELECT name FROM tags
|
|
WHERE name IN (SELECT name FROM tags
|
|
INNER JOIN books_tags_link
|
|
ON books_tags_link.tag = tags.id
|
|
AND books_tags_link.book = '$ItemID'
|
|
ORDER BY RANDOM() LIMIT 2)");
|
|
|
|
$simtag = array();
|
|
|
|
while($row = $similartags->fetchArray()) {
|
|
$simtag[] = $row['name'];
|
|
}
|
|
|
|
$getsimilar = $db->query("SELECT books.id, title, author_sort
|
|
FROM books
|
|
INNER JOIN books_tags_link
|
|
ON books_tags_link.book = books.id
|
|
INNER JOIN tags
|
|
ON tags.id = books_tags_link.tag
|
|
WHERE (tags.name LIKE '$simtag[0]'
|
|
OR tags.name LIKE '$simtag[1]')
|
|
AND books.id != '$ItemID' LIMIT 4");
|
|
|
|
|
|
// ---------- Pull data from identifiers table ----------
|
|
|
|
$identifiers = $db->query("SELECT type, val FROM identifiers WHERE book = '$ItemID'");
|
|
|
|
// ---------- Pull data from languages table ----------
|
|
|
|
$languages = $db->query("SELECT languages.lang_code AS lang_code FROM languages
|
|
INNER JOIN books_languages_link
|
|
ON books_languages_link.lang_code = languages.id
|
|
WHERE book = '$ItemID'
|
|
ORDER BY books_languages_link.item_order");
|
|
|
|
// ---------- Pull series information ----------
|
|
|
|
$series = $db->query("SELECT series.name AS series, books.series_index AS seriesindex
|
|
FROM series
|
|
INNER JOIN books_series_link
|
|
ON books_series_link.series = series.id
|
|
INNER JOIN books
|
|
ON books.id = books_series_link.book
|
|
WHERE books_series_link.book = '$ItemID'");
|
|
|
|
while ($row = $series->fetchArray()) {
|
|
$row_series = $row['series'];
|
|
$row_seriesindex = $row['seriesindex'];
|
|
}
|
|
// -------------------- END DATABASE QUERIES --------------------
|
|
|
|
?>
|
|
|
|
<!doctype html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<?php echo '<title>Item Record: '.$row_title.'</title>'; ?>
|
|
<!-- The following are some stylesheets for testing -->
|
|
<!-- Sanitize.css reset -->
|
|
<!-- <link href="https://unpkg.com/sanitize.css" rel="stylesheet" /> -->
|
|
<!-- Latest release version of Simple.css -->
|
|
<!-- <link rel="stylesheet" href="https://unpkg.com/simpledotcss/simple.css"> -->
|
|
<!-- Latest commit from GitHub -->
|
|
<!-- <link rel="stylesheet" href="https://cdn.simplecss.org/simple.css"> -->
|
|
<!-- Local version -->
|
|
<link rel="stylesheet" href="../../Styles/simple.css">
|
|
</head>
|
|
|
|
<body id="top">
|
|
<header>
|
|
<h1><?php echo $SiteName; ?></h1>
|
|
<p><?php echo $SiteSub; ?></p>
|
|
<nav>
|
|
<ul>
|
|
<li><a class="current" href="#text">Text</a></li>
|
|
<li><a href="#embedded">Embedded content</a></li>
|
|
<li><a href="#forms">Form elements</a></li>
|
|
<li><a href="https://simplecss.org/">Project homepage</a></li>
|
|
<li><a href="https://github.com/kevquirk/simple.css">GitHub repo</a></li>
|
|
</ul>
|
|
</nav>
|
|
</header>
|
|
|
|
<nav>
|
|
<ul>
|
|
<!-- <li>
|
|
<a href="#text">Text</a>
|
|
<ul>
|
|
<li><a href="#text__headings">Headings</a></li>
|
|
<li><a href="#text__paragraphs">Paragraphs</a></li>
|
|
<li><a href="#text__lists">Lists</a></li>
|
|
<li><a href="#text__blockquotes">Blockquotes</a></li>
|
|
<li><a href="#text__asides">Asides</a></li>
|
|
<li><a href="#text__details">Details / Summary</a></li>
|
|
<li><a href="#text__address">Address</a></li>
|
|
<li><a href="#text__hr">Horizontal rules</a></li>
|
|
<li><a href="#text__tables">Tabular data</a></li>
|
|
<li><a href="#text__code">Code</a></li>
|
|
<li><a href="#text__sections">Sections</a></li>
|
|
<li><a href="#text__inline">Inline elements</a></li>
|
|
<li><a href="#text__comments">HTML Comments</a></li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<a href="#embedded">Embedded content</a>
|
|
<ul>
|
|
<li><a href="#embedded__images">Images</a></li>
|
|
<li><a href="#embedded__bgimages">Background images</a></li>
|
|
<li><a href="#embedded__audio">Audio</a></li>
|
|
<li><a href="#embedded__video">Video</a></li>
|
|
<li><a href="#embedded__canvas">Canvas</a></li>
|
|
<li><a href="#embedded__meter">Meter</a></li>
|
|
<li><a href="#embedded__progress">Progress</a></li>
|
|
<li><a href="#embedded__svg">Inline SVG</a></li>
|
|
<li><a href="#embedded__iframe">IFrames</a></li>
|
|
<li><a href="#embedded__embed">Embed</a></li>
|
|
<li><a href="#embedded__object">Object</a></li>
|
|
<li><a href="#embedded__dialog">Dialog</a></li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<a href="#forms">Form elements</a>
|
|
<ul>
|
|
<li><a href="#forms__input">Input fields</a></li>
|
|
<li><a href="#forms__select">Select menus</a></li>
|
|
<li><a href="#forms__checkbox">Checkboxes</a></li>
|
|
<li><a href="#forms__radio">Radio buttons</a></li>
|
|
<li><a href="#forms__textareas">Textareas</a></li>
|
|
<li><a href="#forms__html5">HTML5 inputs</a></li>
|
|
<li><a href="#forms__action">Action buttons</a></li>
|
|
</ul>
|
|
</li> -->
|
|
</ul>
|
|
</nav>
|
|
<main>
|
|
<section id="text">
|
|
<article id="basic_info">
|
|
<header>
|
|
<h2><?php echo $row_title; ?></h2>
|
|
</header>
|
|
<aside>
|
|
<p><img src=<?php echo '"'.$row_path.'/cover.jpg"'; ?> width="250" alt=<?php echo '"Cover image for'.$row_title.'"'; ?> title=<?php echo '"'.$row_title.'"' ?></p>
|
|
</aside>
|
|
<p><strong>Author: </strong><?php echo $row_author_sort; ?></p>
|
|
<p><strong>Publisher: </strong><?php echo $row_publisher.' - '.$row_pubdate;?></p>
|
|
<p><?php echo $row_summary; ?></p>
|
|
</article>
|
|
</section>
|
|
</main>
|
|
<footer>
|
|
<p>Based on <a href="http://github.com/cbracco/html5-test-page">HTML5-test-page</a> by cbracco.</p>
|
|
</footer>
|
|
</body>
|
|
|
|
</html>
|