Files
2026-06-17 15:42:16 +02:00

120 lines
3.7 KiB
PHP

<?php
require("inc/header.php");
//Tag stuff
$tag = $_GET['tag'];
$tag_valid = false;
if($tag != "")
{
$query = "SELECT tagged.`id` FROM tagged, tag WHERE tagged.`tag-id` = tag.id AND tag.name = '$tag'";
$result = ExecQuery($query);
$tag_valid = $result->num_rows > 0 ? true : false;
}
//Page stuff
$page_offset = 5;
$page = $_GET['page'];
$num_pages = 1;
if($tag_valid)
{
$query = "SELECT COUNT(*) AS `num_projects` FROM project, tagged, tag WHERE project.id = tagged.`project-id` AND tag.id = tagged.`tag-id` AND tag.name = '$tag'";
}
else
{
$query = "SELECT COUNT(*) AS `num_projects` FROM project";
}
$result = ExecQuery($query);
$num_pages = ceil($result->fetch_assoc()["num_projects"] / $page_offset);
if($page < 1) $page = 1;
if($page > $num_pages) $page = $num_pages;
$page_start = ($page - 1) * $page_offset;
$previous_page_disabled = $page <= 1;
$next_page_disabled = $page >= $num_pages;
$min_page = $page - 2 <= 1 ? 1 : $page - 2;
$max_page = $page + 2 >= $num_pages ? $num_pages : $page + 2;
//Load projects
if($tag_valid)
{
$query = "SELECT project.uid, project.name, project.body, project.date FROM project, tagged, tag WHERE project.id = tagged.`project-id` AND tag.id = tagged.`tag-id` AND tag.name = '$tag' ORDER BY project.id DESC LIMIT $page_start,$page_offset";
}
else
{
$tag = "";
$query = "SELECT project.uid, project.name, project.body, project.date FROM project ORDER BY project.id DESC LIMIT $page_start,$page_offset";
}
$result = ExecQuery($query);
?>
<!-- Page Heading -->
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Projects <small><?php if($tag_valid) { echo $tag . " <a href='/projects/" . $page . "'><i class='fa fa-times-circle'></i></a>"; } ?></small></h1>
</div>
</div>
<!-- /.row -->
<?php while($row = $result->fetch_assoc()) {
$body = $row['body'];
if(strlen($body) > 400)
$body = trim(substr(strip_tags($body),0,400)) . "... <a href='/project/" . $row['uid'] . "'>Read more</a>";
?>
<!-- Project -->
<div class="row">
<div class="col-md-7">
<h3><?php echo $row['name']; ?></h3>
<p><?php echo $body; ?></p>
</div>
<div class="col-md-5">
<h4><?php echo $row['date']; ?></h4>
<a class="btn btn-primary" href="/project/<?php echo $row['uid']; ?>">View Project <span class="fa fa-chevron-right fa-fw"></span></a>
</div>
</div>
<!-- /.row -->
<hr>
<?php } ?>
<!-- Pagination -->
<div class="row text-center">
<div class="col-lg-12">
<ul class="pagination">
<li <?php if($previous_page_disabled){ echo 'class="disabled"'; } ?>>
<a href="<?php if(!$previous_page_disabled){echo str_replace("//", "/", '/projects/' . $tag . '/' . ($page-1)); } else {echo '#'; } ?>"><i class="fa fa-angle-double-left fa-fw"></i></a>
</li>
<?php for($i = $min_page; $i <= $max_page; $i++)
{ ?>
<li <?php if($page == $i){ ?>class="active"<?php } ?>>
<a href="<?php echo str_replace("//", "/", '/projects/' . $tag . '/' . ($i)); ?>"><?php echo $i; ?></a>
</li>
<?php } ?>
<li <?php if($next_page_disabled){ echo 'class="disabled"'; } ?>>
<a href="<?php if(!$next_page_disabled){echo str_replace("//", "/", '/projects/' . $tag . '/' . ($page+1)); } else {echo '#'; } ?>"><i class="fa fa-angle-double-right fa-fw"></i></a>
</li>
</ul>
</div>
</div>
<!-- /.row -->
<?php
require("inc/footer.php");
?>