BootstrapSQLiteBlog/pages/index.php

110 lines
3.1 KiB
PHP

<?php
global $c;
$strPath = "/";
$strPath .= implode("/", Request::getPathParts());
$varPosts = $c->query(
"SELECT
p.*,
u.user_name,
u.display_name
from posts as p
left join users as u on u.email = p.email
where
path like ?
or path like '*'
order by
created desc",
$strPath);
$strSearchQuery = Request::getParam("q");
if ($strSearchQuery)
{
$varPosts = $c->query(
"SELECT
p.*,
u.user_name,
u.display_name
from posts as p
left join users as u on u.email = p.email
where
content like concat('%', ?, '%')
order by
created desc",
$strSearchQuery);
}
$varParsedown = new Parsedown();
?>
<?php if ($strSearchQuery): ?>
<div class="navbar navbar-expand bg-body-tertiary d-flex px-3 sticky-top">
<div class="container justify-content-between">
<div class="navbar-nav d-inline-flex align-items-center">
<span class="navbar-brand">Search</span>
<input class="form-control me-2" type="text" name="path" placeholder="e.g. /home" value="<?= $strSearchQuery; ?>" />
<a class="btn btn-outline-primary text-nowrap" onclick="fnSave();"><i class="fa fa-fw fa-search"></i> Search</a>
</div>
<div class="navbar-nav d-inline-flex">
<?php BootstrapRender::message(); ?>
</div>
</div>
</div>
<?php endif; ?>
<?php if (file_exists("site.css")): ?>
<link rel="stylesheet" href="site.css" />
<?php endif; ?>
<?php if (Request::getParam("edit")): ?>
<div class="container my-5">
<div class="row">
<div class="col-lg-8">
<a class="link-underline link-underline-opacity-0" href="/post?to=<?= $strPath; ?>">Write a post here</a>
</div>
</div>
</div>
<?php endif; ?>
<?php foreach ($varPosts as $p): ?>
<div class="container my-5">
<div class="row">
<div class="col-lg-8">
<div class="xborder xborder-secondary xrounded xp-3">
<?php echo $varParsedown->text($p["content"]); ?>
</div>
<hr />
<div class="text-muted">
<div>by <?= $p["display_name"] ?? $p["user_name"] ?? $p["email"]; ?></div>
<div>on <?= $p["created"]; ?> UTC</div>
</div>
<?php if (Request::getParam("edit")): ?>
<div>
<a href="/post/<?= $p["id"]; ?>">edit</a>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php endforeach; ?>
<?php if (count($varPosts) < 1): ?>
<div class="container my-5">
<div class="row">
<div class="col-lg-8">
<p>Sorry, there is nothing here to show.</p>
</div>
</div>
</div>
<?php endif; ?>
<?php if (file_exists("site.js")): ?>
<script src="site.js"></script>
<?php endif; ?>