Skip to content

Instantly share code, notes, and snippets.

@TechnoSparks
Last active February 18, 2018 00:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TechnoSparks/7aaf577e7b376e95c9b1ab642c0f2ff1 to your computer and use it in GitHub Desktop.
Save TechnoSparks/7aaf577e7b376e95c9b1ab642c0f2ff1 to your computer and use it in GitHub Desktop.
This is the source code for the blog running on my website
<?php
function blog_printDatabaseEcho($entryData, $type = "default") {
if($type == "default") {
echo '<a href="/blog/entry/'.$entryData["filename"].'" class="entry-card white">'.'<h2 class="title">'.$entryData["title"].'</h3>'.'<p class="details">'.blog_timeparser($entryData["time"][0]).'<br>';
blog_tagsDisplayAllTags($entryData["tags"]); echo '</p>';
echo '</a>';
} elseif ($type == "rss") {
echo " <entry>\n";
echo ' <title>'.$entryData["title"].'</title>'."\n";
echo ' <link type="text/html" href="https://www.technosparks.net/blog/entry/'.$entryData["filename"].'"/>'."\n";
echo ' <updated>'.blog_timeparser($entryData["time"][0], "rss").'</updated>'."\n";
echo ' <content type="xhtml">'."\n";
echo ' <div xmlns="http://www.w3.org/1999/xhtml">'."\n";
echo ' <p><a href="https://www.technosparks.net/blog/entry/'.$entryData[1].'">Read this entry</a></p>'."\n";
echo ' </div>'."\n";
echo ' </content>'."\n";
echo ' <author><name>Shahmi Saidi</name></author>'."\n";
echo " </entry>\n\n";
}
}
function blog_printDatabase($type = "default") {
$fp = fopen("entries-list.txt", "r");
// Check for total number of entries
$entries = 0; $fpEntryofPg = []; $fpEntryofPgi = 1;
while(!feof($fp)) {
// Line 1
$fpBefore = ftell($fp);
if(empty(fgets($fp))) { break; }
// Line 2
if(fgets($fp) == "wip\n") {
if(!isset($_GET["all"])) {
$entries--;
}
}
if($entries % 6 == 0) {
$fpEntryofPg[$fpEntryofPgi++] = $fpBefore;
}
// Line 3 - 7
for($i = 1; $i <= 5; $i++) {
fgets($fp);
}
$entries++;
}
// Handle pagination
$maxPages = ceil($entries / 6);
if(!empty($_GET["page"])) { $page = $_GET["page"]; } else { $page = 1; }
if($page > $maxPages || $page <= 0) {
echo '<section>'.infobox("warn", ($page < 0 ? 'There&apos;s no such thing as negative pages! ' : '').'You attempted to access a page (page '.$page.') which does not exist! Showing you page 1 instead.').'</section>';
$page = 1;
}
// Output entries based on page
fseek($fp, $fpEntryofPg[$page]);
echo '<section class="bloglist">';
for($entry = 1; $entry <= 6; $entry++) {
// Line 1
if(empty(fgets($fp))) { break; }
// Line 2
if(fgets($fp) == "wip\n") {
if(!isset($_GET["all"])) {
for($i = 1; $i <= 5; $i++) {
fgets($fp);
}
$entry--;
continue;
}
}
// Line 3
$entryData["time"] = explode(" ", trim(fgets($fp), "\n"));
// Line 4
$entryData["filename"] = trim(fgets($fp), "\n");
// Line 5
$entryData["title"] = trim(fgets($fp), "\n");
// Line 6
$entryData["tags"] = explode(", ", trim(fgets($fp), "\n"));
// Line 7
fgets($fp);
blog_printDatabaseEcho($entryData, $type);
}
echo '</section>';
fclose($fp);
// Display pagination controls
if($type == "default") {
echo '<section style="text-align: center">';
echo '<a class="blog pagination button-link" href="?page='.($page - 1).((isset($_GET["all"])) ? '&all' : '').'" style="min-width: initial; visibility: ' . ($page > 1 ? 'visible' : 'hidden') . ';"><i class="fa fa-chevron-left"></i></a> ';
echo '<span class="blog pagination">Page ' . $page . '</span> ';
echo '<a class="blog pagination button-link" href="?page=' . ($page + 1) . ((isset($_GET["all"])) ? '$all' : '') . '" style="min-width: initial; visibility: ' . ($page < $maxPages ? 'visible' : 'hidden') . ';"><i class="fa fa-chevron-right"></i></a> ';
echo '</section>';
} elseif($type == "rss") {
if($page > 1) {
echo '<link rel="previous" href="https://www.technosparks.net/blog/atom-feed?page='.($page + 1).'"/>';
}
if($page < $maxPages) {
echo '<link rel="next" href="https://www.technosparks.net/blog/atom-feed?page='.($page - 1).'"/>';
}
}
}
function blog_processEntry($entryRequested) {
global $pgconfig_title, $blogSubtitle, $timestamp;
$entryFound = false;
$fp = fopen("entries-list.txt", "r");
while(!feof($fp)) {
// Line 1
$fpEntry = ftell($fp);
if(empty(fgets($fp))) { break; }
// Line 2 - 3
fgets($fp); fgets($fp);
// Line 4
if(trim(fgets($fp), "\n") == $entryRequested) {
$entryFound = true;
break;
}
// Line 5 - 7
fgets($fp); fgets($fp); fgets($fp);
}
if($entryFound == false) {
fclose($fp);
redirect(404);
}
fseek($fp, $fpEntry);
// Line 1 - 2
fgets($fp); fgets($fp);
// Line 3
$timestamp = explode(" ", trim(fgets($fp), "\n"));
// Line 4
fgets($fp);
// Line 5
$pgconfig_title = trim(fgets($fp), "\n");
// Line 6
fgets($fp);
// Line 7
$blogSubtitle = trim(fgets($fp), "\n");
fclose($fp);
}
function blog_timeparser($timestamp, $type = "standard") {
if(empty($timestamp)) return null;
if($type == "standard") {
$fullDate = date("l d F Y h:ia", $timestamp);
} elseif($type == "rss") {
$fullDate = date(DATE_ATOM, $timestamp);
} elseif($type == "blog-header") {
$fullDate = [ "d" => date("d", $timestamp), "m" => date("M", $timestamp), "y" => date("Y", $timestamp)];
}
return $fullDate;
}
function blog_tagsGetEntries($needtag = "") {
if(empty($needtag)) { return false; } else { $needtag = urldecode($needtag); }
$entryFound = false;
$fp = fopen("entries-list.txt", "r");
$entries = 0; $fpEntry = []; $fpEntryofPg = []; $fpEntryofPgi = 0; $fpEntryi = 0;
while(!feof($fp)) {
// Line 1
$fpBefore = ftell($fp);
if(empty(fgets($fp))) { break; }
// Line 2
if(fgets($fp) == "wip\n") {
if(!isset($_GET["all"])) {
for($i = 1; $i <= 5; $i++) {
fgets($fp);
}
continue;
}
}
// Line 3 - 5
fgets($fp); fgets($fp); fgets($fp);
// Line 6
$tags = explode(", ", trim(fgets($fp), "\n"));
foreach($tags as $tag) {
if($tag == $needtag) {
$fpEntry[$fpEntryi++] = $fpBefore;
$entryFound = true;
break;
}
}
// Line 7
fgets($fp);
}
if($entryFound == true) {
$entries = count($fpEntry);
$maxPages = ceil($entries / 6);
if(isset($_GET["page"])) { $page = $_GET["page"]; } else { $page = 1; }
if($page > $maxPages || $page <= 0) {
echo '<section>'.infobox("warn", ($page < 0 ? 'There&apos;s no such thing as negative pages! ' : '').'You attempted to access a page (page '.$page.') which does not exist! Showing you page 1 instead.').'</section>';
$page = 1;
}
$fpEntryi = ($page - 1) * 6;
$fpEntryMax = $fpEntryi + 5;
while($fpEntryi < $entries && $fpEntryi < $fpEntryMax) {
fseek($fp, $fpEntry[$fpEntryi]);
// Line 1 - 2
fgets($fp); fgets($fp);
// Line 3
$entryData["time"] = explode(" ", trim(fgets($fp), "\n"));
// Line 4
$entryData["filename"] = trim(fgets($fp), "\n");
// Line 5
$entryData["title"] = trim(fgets($fp), "\n");
// Line 6
$entryData["tags"] = explode(", ", trim(fgets($fp), "\n"));
// Line 7
fgets($fp);
blog_printDatabaseEcho($entryData, "default");
$fpEntryi++;
}
echo '<section style="text-align: center">';
echo '<a class="blog pagination button-link" href="?page='.($page - 1).((isset($_GET["all"])) ? '$all' : '').'" style="min-width: initial; visibility: ' . ($page > 1 ? 'visible' : 'hidden') . ';"><i class="fa fa-chevron-left"></i></a> ';
echo '<span class="blog pagination">Page ' . $page . '</span> ';
echo '<a class="blog pagination button-link" style="min-width: initial;" href="?page=' . ($page + 1) . ((isset($_GET["all"])) ? '$all' : '') . '" style="min-width: initial; visibility: ' . ($page < $maxPages ? 'visible' : 'hidden') . ';"><i class="fa fa-chevron-right"></i></a> ';
echo '</section>';
} else {
echo '<section>'.infobox("notify", 'Unfortunately, there are no articles with the tag “'.$needtag.'”').'</section>';
}
fclose($fp);
}
function blog_tagsListAllTags() {
$tags = [];
$tagsi = 0;
$fp = fopen("entries-list.txt", "r");
while(!feof($fp)) {
// Line 1
if(empty(fgets($fp))) { break; }
// Line 2
if(fgets($fp) == "wip\n") {
if(!isset($_GET["all"])) {
for($i = 1; $i <= 5; $i++) {
fgets($fp);
}
continue;
}
}
// Line 3 - 5
fgets($fp); fgets($fp); fgets($fp);
// Line 6
$tagsfromEntry = explode(", ", trim(fgets($fp), "\n"));
foreach($tagsfromEntry as $tagsfromEntry) {
$tags[$tagsi++] = $tagsfromEntry;
}
// Line 7
fgets($fp);
}
fclose($fp);
$tags = array_unique($tags);
sort($tags);
foreach($tags as $tag) {
echo '<a href="?find='.urlencode($tag).((isset($_GET["all"])) ? '$all' : '').'" class="button-link" style="background-color: #6891bb;">'.$tag.'</a>';
}
}
function blog_tagsDisplayAllTags($tags) {
if(isset($_GET["all"])) $appendViewAll = "$all"; else $appendViewAll = "";
$arrSize = count($tags);
for($i = 0; $i < $arrSize; $i++) {
echo $tags[$i];
if($i + 1 != $arrSize) { echo ", "; }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment