Version 0.9: Code comments, bug fixes, three new test files
This commit is contained in:
parent
42404cd9d7
commit
9973ea84e4
17 changed files with 390 additions and 279 deletions
5
articles/other-projects/2015-07-24-Test-the-link.md
Normal file
5
articles/other-projects/2015-07-24-Test-the-link.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
%TITLE: Test the link
|
||||||
|
%DATE: 24 July 2015
|
||||||
|
%TAGS: developing, testing
|
||||||
|
|
||||||
|
[asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds.com/asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds/asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds](http://asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds.com/asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds)
|
7
articles/other-projects/2015-07-24-The-Rangitaki-Logo.md
Normal file
7
articles/other-projects/2015-07-24-The-Rangitaki-Logo.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
%TITLE: The Rangitaki logo
|
||||||
|
%DATE: 24 July 2015
|
||||||
|
%TAGS: design, artwork, logo
|
||||||
|
|
||||||
|
This is the official Rangitaki logo.
|
||||||
|
|
||||||
|
![The Rangitaki logo](media/rangitaki.png)
|
|
@ -1,5 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
// Rangitaki Project
|
||||||
// This is the configuration file. You can configure here all necessary (and possible) options without editing the index.php file.
|
// This is the configuration file. You can configure here all necessary (and possible) options without editing the index.php file.
|
||||||
// Every line has an description about what you can change here. Don't delete any strings. You can set your value after the '=' sign and between the apostrophes.
|
// Every line has an description about what you can change here. Don't delete any strings. You can set your value after the '=' sign and between the apostrophes.
|
||||||
// Make sure that every line ends with an semicolon (';').
|
// Make sure that every line ends with an semicolon (';').
|
||||||
|
|
200
index.php
200
index.php
|
@ -32,22 +32,29 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
-->
|
-->
|
||||||
<html>
|
<html>
|
||||||
<?php
|
<?php
|
||||||
include 'config.php';
|
/**
|
||||||
include './lang/' . $language . ".php";
|
* Rangitaki PHP Blogging engine
|
||||||
require_once 'res/php/Parsedown.php';
|
*/
|
||||||
require_once 'res/php/ArticleGenerator.php';
|
// Getting necessary php files
|
||||||
require_once './res/php/BlogListGenerator.php';
|
require 'config.php'; // Config file (this must be the first line)
|
||||||
$getblog = filter_input(INPUT_GET, "blog");
|
require './lang/' . $language . ".php"; // Language file
|
||||||
$getarticle = filter_input(INPUT_GET, "article");
|
require_once 'res/php/Parsedown.php'; // The soul of the beast: Parsedown
|
||||||
$gettag = filter_input(INPUT_GET, "tag");
|
require_once 'res/php/ArticleGenerator.php'; // The article generator
|
||||||
$url = "http://" . filter_input(INPUT_SERVER, "HTTP_HOST") . filter_input(INPUT_SERVER, "REQUEST_URI");
|
require_once './res/php/BlogListGenerator.php'; // and the blog list generator
|
||||||
|
// Getting some variables ($_GET and $_SERVER)
|
||||||
|
$getblog = filter_input(INPUT_GET, "blog"); // getting the blog variable
|
||||||
|
$getarticle = filter_input(INPUT_GET, "article"); // getting the article variable
|
||||||
|
$gettag = filter_input(INPUT_GET, "tag"); // getting the tag variable
|
||||||
|
$url = "http://" . filter_input(INPUT_SERVER, "HTTP_HOST") . filter_input(INPUT_SERVER, "REQUEST_URI"); // getting the url (used for sharing)
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title><?php echo $blogtitle; ?></title>
|
<meta charset="utf-8">
|
||||||
|
<title><?php echo $blogtitle; // Setting the blog article?></title>
|
||||||
<!--Metatags-->
|
<!--Metatags-->
|
||||||
<meta name="author" content="<?php echo $blogauthor; ?>" />
|
<meta name="author" content="<?php echo $blogauthor; // Setting the blog author ?>" />
|
||||||
<meta name="description" content="<?php echo $blogdescription; ?>" />
|
<meta name="description" content="<?php echo $blogdescription; // the blog description ?>" />
|
||||||
|
<!-- Meta tag for responsive ui-->
|
||||||
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
|
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
|
||||||
<!-- OpenGraph meta tags -->
|
<!-- OpenGraph meta tags -->
|
||||||
<meta property="og:title" content="<?php echo $blogtitle; ?>" />
|
<meta property="og:title" content="<?php echo $blogtitle; ?>" />
|
||||||
|
@ -63,173 +70,184 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
<meta name="twitter:description" content="<?php echo $blogdescription; ?>" />
|
<meta name="twitter:description" content="<?php echo $blogdescription; ?>" />
|
||||||
<meta name="twitter:image" content="<?php echo $favicon; ?>" />
|
<meta name="twitter:image" content="<?php echo $favicon; ?>" />
|
||||||
<meta name="twitter:url" content="<?php echo $url; ?>" />
|
<meta name="twitter:url" content="<?php echo $url; ?>" />
|
||||||
|
<!--CSS files-->
|
||||||
<!--CSS no change needed-->
|
|
||||||
<link rel="stylesheet" type="text/css" href="res/css/rangitaki.css" />
|
<link rel="stylesheet" type="text/css" href="res/css/rangitaki.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="themes/<?php echo $theme; ?>.css" />
|
<link rel="stylesheet" type="text/css" href="themes/<?php echo $theme; // getting the theme stylesheet?>.css" />
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="<?php echo $favicon; ?>" />
|
|
||||||
<link rel="apple-touch-icon-precomposed" href="<?php echo $favicon; ?>">
|
|
||||||
<?php
|
<?php
|
||||||
|
// Checking if the drawer is enabled
|
||||||
if ($nav_drawer == 'no') {
|
if ($nav_drawer == 'no') {
|
||||||
?>
|
// Loading additional stylesheet for disabling the drawer?>
|
||||||
<link rel="stylesheet" type="text/css" href="res/css/no-nav.css" />
|
<link rel="stylesheet" type="text/css" href="res/css/no-nav.css" />
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<link href='//fonts.googleapis.com/css?family=Roboto:400,500,700,300,400italic,100,100italic,900' rel='stylesheet' type='text/css'>
|
<link href='//fonts.googleapis.com/css?family=Roboto:400,500,700,300,400italic,100,100italic,900' rel='stylesheet' type='text/css'> <!--Font-->
|
||||||
<link rel="stylesheet" href="./res/css/github-gist.css">
|
<link rel="stylesheet" href="./res/css/github-gist.css"> <!-- stylesheet for code highlighting-->
|
||||||
|
<!--Favicons-->
|
||||||
|
<link rel="shortcut icon" type="image/x-icon" href="<?php echo $favicon; ?>" />
|
||||||
|
<link rel="apple-touch-icon-precomposed" href="<?php echo $favicon; ?>">
|
||||||
|
<!-- JavaScript Pt. 1: HightlightJS (get and load): Code highlighting-->
|
||||||
<script src="./res/js/highlight.pack.js"></script>
|
<script src="./res/js/highlight.pack.js"></script>
|
||||||
<script>hljs.initHighlightingOnLoad();</script>
|
<script>hljs.initHighlightingOnLoad();</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<?php if ($nav_drawer == "yes") { ?>
|
<?php
|
||||||
<div class="overlay"></div>
|
// Checking if the navigation drawer is enabled. If not -> skip it
|
||||||
|
if ($nav_drawer == "yes") {
|
||||||
|
?>
|
||||||
|
<div class="overlay"></div> <!-- Darken the background when fading the drawer in. See also the JS file-->
|
||||||
<div class="nav">
|
<div class="nav">
|
||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
<?php
|
<?php
|
||||||
if ($getarticle == "") {
|
$blogs = scandir("./blogs/"); // Getting everything from the blog directory
|
||||||
|
if (!isset($getarticle) && !isset($gettag) && sizeof($blogs) > 3) { // Checking if not in article or tag view and if there are more the one blog. The 3 is for these three array entries: 'main.md', '.', '..'
|
||||||
echo "<section>";
|
echo "<section>";
|
||||||
echo "<div class='nav-item-static'>$LANG_Blogs_Of" . " " . "$blogtitle:</div>";
|
echo "<div class='nav-item-static'>" . $BLOGLANG['Blogs on'] . " $blogtitle:</div>"; // 1. Set localized string 2. Set blogtitle
|
||||||
$blogs = scandir("./blogs/");
|
foreach ($blogs as $blog) { // iterating through the blogs/ directory
|
||||||
foreach ($blogs as $blog) {
|
if (strlen($blog) >= 3 && substr($blog, -3) == ".md") { // check if filename is larger than three chars and if the file ends with ".md"
|
||||||
if (strlen($blog) >= 3 && substr($blog, -3) == ".md") {
|
if ($getblog == "") { // Run when on main blog
|
||||||
if ($getblog == "") {
|
if ($blog != "main.md") { // excluding main blog
|
||||||
if ($blog != "main.md") {
|
BlogListGenerator::listBlog("./blogs/", $blog, $blogtitle); // creating navigation item
|
||||||
if (empty($blogmainname)) {
|
|
||||||
$blogmaintitle = $blogtitle;
|
|
||||||
} else {
|
|
||||||
$blogmaintitle = $blogmainname;
|
|
||||||
}
|
|
||||||
BlogListGenerator::listBlog("./blogs/", $blog, $blogtitle);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($getblog . ".md" != $blog) {
|
if ($getblog . ".md" != $blog) { // Check if $blog is current blog -> this blog will be excluded
|
||||||
|
// Make sure that the entry has a title, because main.md hasn't one
|
||||||
if (empty($blogmainname)) {
|
if (empty($blogmainname)) {
|
||||||
$blogmaintitle = $blogtitle;
|
$blogmaintitle = $blogtitle;
|
||||||
} else {
|
} else {
|
||||||
$blogmaintitle = $blogmainname;
|
$blogmaintitle = $blogmainname;
|
||||||
}
|
}
|
||||||
BlogListGenerator::listBlog("./blogs/", $blog, $blogmaintitle);
|
BlogListGenerator::listBlog("./blogs/", $blog, $blogmaintitle); // creating navigation item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo "</section>";
|
echo "</section>";
|
||||||
} else {
|
} elseif (isset($getarticle) || isset($gettag)) { // If viewing a blog or a tag
|
||||||
?>
|
?>
|
||||||
<a class="nav-item" onclick="goBack()">Go back</a>
|
<a class="nav-item" onclick="goBack()">Go back</a> <!-- Set a back item instead of the blogs. -->
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
if ($bloghome == "yes") { // If a blog home is existend
|
||||||
?>
|
?>
|
||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
<a class="nav-item" href="<?php echo $bloghomeurl; ?>"><?php echo $bloghomename; ?></a>
|
<a class="nav-item" href="<?php echo $bloghomeurl; ?>"><?php echo $bloghomename; ?></a>
|
||||||
</div>
|
<?php
|
||||||
<?php
|
}
|
||||||
}
|
?>
|
||||||
|
</div> <!-- End of the navigation drawer-->
|
||||||
|
<?php
|
||||||
|
} // Endif from line 97; Yes, I really should think about alternative syntax...
|
||||||
|
|
||||||
|
// Set blog to "main" if on main blog, else to $getblog. This variable is needed later
|
||||||
if ($getblog == "") {
|
if ($getblog == "") {
|
||||||
$blog = "main";
|
$blog = "main";
|
||||||
} else {
|
} else {
|
||||||
$blog = $getblog;
|
$blog = $getblog;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<div class="main">
|
<div class="main"> <!-- Main page with content -->
|
||||||
<div class="header">
|
<div class="header"> <!-- Action Bar, but since there isn't much action I call it header. One day a search feature would be nice...-->
|
||||||
<img src="./res/img/menu.svg" class="nav-img" />
|
<img src="./res/img/menu.svg" class="nav-img" /> <!-- Ham,ham,hamburger-->
|
||||||
<nobr><span class="title"><a href="./"><?php echo $blogtitle; ?>
|
<!-- Blog title with subblog title and links to each one-->
|
||||||
|
<nobr><span class="title"><a href="./"><?php echo $blogtitle; ?><!-- link to main blog-->
|
||||||
<?php
|
<?php
|
||||||
if (empty($getblog)) {
|
if (empty($getblog)) { // if not on a subblog
|
||||||
if (!empty($blogmainname)) {
|
if (!empty($blogmainname)) {
|
||||||
?>
|
echo "›" . $blogmainname; // If you see a › (square) here : This is not a bug, but a missing sign in your font
|
||||||
› <?php
|
|
||||||
echo $blogmainname;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else { // On subblog: set also a link to the subblog
|
||||||
?>
|
?>
|
||||||
</a>
|
</a>
|
||||||
› <a href="<?php echo "./?blog=$getblog" ?>">
|
› <a href="<?php echo "./?blog=$getblog" ?>">
|
||||||
<?php
|
<?php
|
||||||
echo BlogListGenerator::getName("./blogs/$getblog.md");
|
echo BlogListGenerator::getName("./blogs/$getblog.md"); // get the blog name
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
</nobr>
|
</nobr>
|
||||||
<div class="fadeout"></div>
|
<div class="fadeout"></div> <!-- if the blog name is to long (especially on mobile devices), a fadeout fades the test out at the end of the header-->
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
if (file_exists("blogs/$blog.md") && $getarticle == "" && $blogintro == "yes" && $gettag == "") {
|
// Blog Intro text
|
||||||
$file = file_get_contents("blogs/$blog.md");
|
if (file_exists("blogs/$blog.md") && $getarticle == "" && $blogintro == "yes" && $gettag == "") { // only shown if not in article or tag view and if the blogintro is enabled
|
||||||
$file = $file . "\n";
|
$file = file_get_contents("blogs/$blog.md"); // get content of the blog file
|
||||||
$file = substr($file, strpos($file, "\n"));
|
$file = $file . "\n"; // add a line break. necessary if the editor didn't make one while saving
|
||||||
if ($file != "" && $file != "\n" && $file != " ") {
|
$file = substr($file, strpos($file, "\n")); // basically removing the first line, which contains the blog title
|
||||||
|
if ($file != "" && $file != "\n" && $file != " ") { // if the file is now neither empty nor only has a linebreak nor exists of an space
|
||||||
?>
|
?>
|
||||||
<section class="card">
|
<section class="card">
|
||||||
<div class="articletext">
|
<div class="articletext">
|
||||||
<?php
|
<?php // generate the html text from the markdown file
|
||||||
$intro = Parsedown::instance()
|
$intro = Parsedown::instance()
|
||||||
->setBreaksEnabled(true)
|
->setBreaksEnabled(true) // with linebreaks
|
||||||
->text($file);
|
->text($file);
|
||||||
echo $intro;
|
echo $intro; // PRINTS THE SH****
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$articlesdir = "./articles/$blog/";
|
$articlesdir = "./articles/$blog/"; // generate a variable with the articles directory
|
||||||
if ($gettag != "") {
|
// TAG VIEW
|
||||||
$articles = scandir($articlesdir, 1);
|
if (isset($gettag)) { // if there's a tag -> tag view
|
||||||
foreach ($articles as $article) {
|
$articles = scandir($articlesdir, 1); // save the content of the directory in the articles variable
|
||||||
$tags = ArticleGenerator::getTags($articlesdir, $article);
|
foreach ($articles as $article) { // iterate through all articles
|
||||||
if (in_array($gettag, $tags)) {
|
$tags = ArticleGenerator::getTags($articlesdir, $article); // get the article tags
|
||||||
if (strlen($article) >= 3 && substr($article, -3) == ".md") {
|
if (in_array($gettag, $tags)) { // if the article has the requested tag
|
||||||
ArticleGenerator::newArticle($articlesdir, $article, $getblog);
|
if (strlen($article) >= 3 && substr($article, -3) == ".md") { // check if the file is a article file
|
||||||
|
ArticleGenerator::newArticle($articlesdir, $article, $getblog); // generate the article
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ($getarticle == "") {
|
} elseif ($getarticle == "") { // NORMAL VIEW if there's no article request -> normal view
|
||||||
$articles = scandir($articlesdir, 1);
|
$articles = scandir($articlesdir, 1); // save the content of the directory in the articles variable
|
||||||
foreach ($articles as $article) {
|
foreach ($articles as $article) { // iterate through this variable
|
||||||
if (strlen($article) >= 3 && substr($article, -3) == ".md") {
|
if (strlen($article) >= 3 && substr($article, -3) == ".md") { // check if the file is a article file
|
||||||
ArticleGenerator::newArticle($articlesdir, $article, $getblog);
|
ArticleGenerator::newArticle($articlesdir, $article, $getblog); // generate the article
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} elseif (isset($getarticle)) { // ARTICLE VIEW
|
||||||
ArticleGenerator::newArticle($articlesdir, $getarticle . ".md", $getblog);
|
ArticleGenerator::newArticle($articlesdir, $getarticle . ".md", $getblog); // generate the requested article
|
||||||
include './res/php/SocialBar.php';
|
include './res/php/Disqus.php'; // include disques
|
||||||
include './res/php/Disqus.php';
|
} else { // SOMETHING STRANGE: THIS SHOULDN'T HAPPEN
|
||||||
|
echo "Some error occured, please go back.";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<?php echo $blogfooter; ?>
|
<?php echo $blogfooter; //print the blog footer?>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
|
// show the fab if it's enabled
|
||||||
if ($sharefab == "yes") {
|
if ($sharefab == "yes") {
|
||||||
?>
|
?>
|
||||||
<div class="fabmenu">
|
<div class="fabmenu">
|
||||||
<div class="subfab">
|
<div class="subfab"><!--Email subfab-->
|
||||||
<a href='mailto:?subject=<?php echo $blogtitle; ?>&body=<?php echo $LANG_Check_out_this_blog; ?>: <?php echo $url; ?>' target="blank">
|
<a href='mailto:?subject=
|
||||||
|
<?php echo $blogtitle; ?>&body=<?php echo $BLOGLANG['Check out this blog']; ?>: <?php echo $url; ?>'
|
||||||
|
target="blank">
|
||||||
<img src="./res/img/email.svg" class="subfab-img" />
|
<img src="./res/img/email.svg" class="subfab-img" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="subfab">
|
<div class="subfab"><!--twitter subfav-->
|
||||||
<a href='https://twitter.com/intent/tweet?text=<?php echo $LANG_Check_out; ?>: <?php echo $url; ?>&original_referer=' target="blank">
|
<a href='https://twitter.com/intent/tweet?text=<?php echo $BLOGLANG['Check out']; ?>: <?php echo $url; ?>&original_referer=' target="blank">
|
||||||
<img src="./res/img/twitter.svg" class="subfab-img" />
|
<img src="./res/img/twitter.svg" class="subfab-img" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="subfab">
|
<div class="subfab"><!--gplus subfab-->
|
||||||
<a href='https://plus.google.com/share?url=<?php echo $url; ?>&hl=en-US' target="blank">
|
<a href='https://plus.google.com/share?url=<?php echo $url; ?>&hl=en-US' target="blank">
|
||||||
<img src="./res/img/gplus.svg" class="subfab-img" />
|
<img src="./res/img/gplus.svg" class="subfab-img" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="subfab">
|
<div class="subfab"><!--facebook subfab-->
|
||||||
<a href='https://www.facebook.com/sharer/sharer.php?u=<?php echo $url; ?>&t=<?php echo "echo $blogtitle" ?>' target="blank">
|
<a href='https://www.facebook.com/sharer/sharer.php?u=<?php echo $url; ?>&t=<?php echo "echo $blogtitle" ?>' target="blank">
|
||||||
<img src="./res/img/facebook.svg" class="subfab-img" />
|
<img src="./res/img/facebook.svg" class="subfab-img" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="fab">
|
<div class="fab"><!-- share fab-->
|
||||||
<img src="./res/img/share.svg" class="fab-img" alt="Share" />
|
<img src="./res/img/share.svg" class="fab-img" alt="Share" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -237,10 +255,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
<script src="./res/js/jquery-2.1.4.min.js"></script>
|
<script src="./res/js/jquery-2.1.4.min.js"></script> <!-- include jquery-->
|
||||||
<script src="./res/js/app.js"></script>
|
<script src="./res/js/app.js"></script> <!--include main javascript-->
|
||||||
<?php
|
<?php
|
||||||
include './res/php/GoogleAnalytics.php';
|
require './res/php/GoogleAnalytics.php'; // include google analytics
|
||||||
?>
|
?>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
10
lang/de.php
10
lang/de.php
|
@ -1,7 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
// Rangitaki Project
|
||||||
// LANGUAGE: GERMAN
|
// LANGUAGE: GERMAN
|
||||||
|
|
||||||
$LANG_Blogs_Of = "Blogs auf";
|
$BLOGLANG = [
|
||||||
$LANG_Check_out_this_blog = "Schau dir diesen Blog an:";
|
"Blogs on" => "Blogs auf",
|
||||||
$LANG_Check_out = "Schau dir das an:";
|
"Check out this blog" => "Schau dir diesen Blog an:",
|
||||||
|
"Check out" => "Schau dir das an:"
|
||||||
|
];
|
||||||
|
|
10
lang/en.php
10
lang/en.php
|
@ -1,7 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
// Rangitaki Project
|
||||||
// LANGUAGE: ENGLISH
|
// LANGUAGE: ENGLISH
|
||||||
|
|
||||||
$LANG_Blogs_Of = "Blogs on";
|
$BLOGLANG = [
|
||||||
$LANG_Check_out_this_blog = "Check out this blog";
|
"Blogs on" => "Blogs on",
|
||||||
$LANG_Check_out = "Check out";
|
"Check out this blog" => "Check out this blog:",
|
||||||
|
"Check out" => "Check out:",
|
||||||
|
];
|
||||||
|
|
BIN
media/rangitaki.png
Normal file
BIN
media/rangitaki.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
|
@ -35,11 +35,11 @@ THE SOFTWARE.
|
||||||
</div>
|
</div>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<?php
|
<?php
|
||||||
include '../config.php';
|
require '../config.php';
|
||||||
if ($rcc == "yes") {
|
if ($rcc == "yes") {
|
||||||
include 'password.php';
|
include 'password.php';
|
||||||
session_start();
|
session_start();
|
||||||
if(isset($_POST['passwd'])){
|
if(isset($_POST['passwd'])) {
|
||||||
$passwd = $_POST['passwd'];
|
$passwd = $_POST['passwd'];
|
||||||
$_SESSION['passwd'] = $_POST['passwd'];
|
$_SESSION['passwd'] = $_POST['passwd'];
|
||||||
} else if(isset($_SESSION['passwd'])) {
|
} else if(isset($_SESSION['passwd'])) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ THE SOFTWARE.
|
||||||
<div class="headline">File Upload</div>
|
<div class="headline">File Upload</div>
|
||||||
<?php
|
<?php
|
||||||
session_start();
|
session_start();
|
||||||
if($_SESSION['login']){
|
if($_SESSION['login']) {
|
||||||
if ($_FILES['userfile']['name'] == "") {
|
if ($_FILES['userfile']['name'] == "") {
|
||||||
echo "<p>You have to choose a file!</p>";
|
echo "<p>You have to choose a file!</p>";
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
color: #333333;
|
color: #333333;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
-webkit-text-size-adjust: none;
|
-webkit-text-size-adjust: none;
|
||||||
|
-ms-text-size-adjust: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hljs-comment,
|
.hljs-comment,
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
Rangitaki Project
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
|
|
||||||
Copyright 2015 mmk2410.
|
Copyright 2015 mmk2410.
|
||||||
|
@ -25,28 +27,31 @@ THE SOFTWARE.
|
||||||
Created on : Jun 18, 2015, 7:07:45 PM
|
Created on : Jun 18, 2015, 7:07:45 PM
|
||||||
Author : mmk2410
|
Author : mmk2410
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
A stylesheet for overriding the default styles if the navigation drawer is disabled
|
||||||
|
*/
|
||||||
|
|
||||||
.nav{
|
.nav{ /* hide the navigation drawer */
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-img{
|
.nav-img{ /* hide the hamburger icon */
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width: 1440px) {
|
@media screen and (min-width: 1440px) { /* large devices */
|
||||||
.header {
|
.header { /* full width */
|
||||||
left: 0px;
|
left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main{
|
.main{ /* full width */
|
||||||
margin-left: 0px;
|
margin-left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 720px){
|
@media screen and (max-width: 720px){ /* small devices */
|
||||||
.title{
|
.title{ /* move the title more to the left */
|
||||||
left: 25px;
|
left: 25px;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
Rangitaki Project
|
||||||
|
|
||||||
The MIT License
|
The MIT License
|
||||||
|
|
||||||
Copyright 2015 mmk2410.
|
Copyright 2015 mmk2410.
|
||||||
|
@ -29,15 +31,15 @@ THE SOFTWARE.
|
||||||
/* BODY */
|
/* BODY */
|
||||||
|
|
||||||
body{
|
body{
|
||||||
margin-top: 94px;
|
margin-top: 94px; /* Set enough space for the header */
|
||||||
}
|
}
|
||||||
|
|
||||||
.main{
|
.main{ /* main content */
|
||||||
height: 100%;
|
height: 100%;
|
||||||
margin-left: 0px;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay {
|
.overlay { /* overlay: used for a darker background when the navigation drawer is open */
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -46,19 +48,20 @@ body{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: 30;
|
z-index: 30;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: none;
|
display: none; /* because the thing is hidden at the beginning and shown with js */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HEADER */
|
/* HEADER */
|
||||||
.header{
|
.header{
|
||||||
top: 0px;
|
top: 0;
|
||||||
right: 0px;
|
right: 0;
|
||||||
left: 0px;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 64px;
|
height: 64px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title{
|
.title{ /* title in the header */
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 23px;
|
font-size: 23px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
@ -67,20 +70,20 @@ body{
|
||||||
left: 75px;
|
left: 75px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title > a{
|
.title > a{ /* and a a styling */
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fadeout{
|
.fadeout{ /* a fadeout if the title is to long */
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 64px;
|
height: 64px;
|
||||||
top: 0px;
|
top: 0;
|
||||||
right: 0px;
|
right: 0;
|
||||||
width: 40px;
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-img{
|
.nav-img{ /* the hamburger icon */
|
||||||
height: 26px;
|
height: 26px;
|
||||||
padding: 19px;
|
padding: 19px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -88,22 +91,21 @@ body{
|
||||||
|
|
||||||
/* NAV DRAWER */
|
/* NAV DRAWER */
|
||||||
|
|
||||||
.nav{
|
.nav{ /* the main object */
|
||||||
width: 300px;
|
width: 300px;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0px;
|
top: 0;
|
||||||
left: -300px;
|
left: -300px;
|
||||||
padding-top: 64px;
|
padding-top: 64px;
|
||||||
z-index: 40;
|
z-index: 40;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-item, .nav-item-static{
|
.nav-item, .nav-item-static{ /* a nav-item */
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
text-indent: 0;
|
text-indent: 0;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
height: 48px;
|
height: 48px;
|
||||||
text-decoration: none;
|
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
width: 284px;
|
width: 284px;
|
||||||
line-height: 48px;
|
line-height: 48px;
|
||||||
|
@ -111,17 +113,17 @@ body{
|
||||||
transition: background-color 125ms ease-in-out 0ms;
|
transition: background-color 125ms ease-in-out 0ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-item{
|
.nav-item{ /* additional setting for clickable nav items */
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.divider{
|
.divider{ /* a simple divider with all options. better than <hr> */
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* MAIN */
|
/* MAIN */
|
||||||
|
|
||||||
.card{
|
.card{ /* just a card */
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
width: 75%;
|
width: 75%;
|
||||||
|
@ -130,62 +132,70 @@ body{
|
||||||
max-width: 1160px;
|
max-width: 1160px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card a{
|
.card a{ /* and another a styling */
|
||||||
|
-moz-hyphens: auto;
|
||||||
|
-epub-hyphens: auto;
|
||||||
|
-ms-hyphens: auto;
|
||||||
|
-webkit-hyphens: auto;
|
||||||
|
hyphens: auto;
|
||||||
|
word-wrap: break-word; /* until here: break long links */
|
||||||
|
}
|
||||||
|
|
||||||
|
.card a:hover{ /* hovered card links; just here to help you create a own theme*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.card a:hover{
|
.headline{ /* title in a card */
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.headline{
|
|
||||||
display: block;
|
display: block;
|
||||||
padding-bottom: 8px;
|
padding-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.card img{
|
.card img{ /* image in a card*/
|
||||||
max-width: 100%;
|
max-width: 100%; /* regulate width */
|
||||||
max-height: 400px;
|
max-height: 400px; /* regulate height */
|
||||||
|
display: block; /* centered */
|
||||||
|
margin-left: auto; /* centerd */
|
||||||
|
margin-right: auto; /* centred */
|
||||||
}
|
}
|
||||||
|
|
||||||
.date{
|
.date{ /* possibility to style the date */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.articletext{
|
.articletext{ /* posibitlity to style the text */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.author{
|
.author{ /* styling for the author */
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tag{
|
.tag{ /* possibility to style the text */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FAB */
|
/* FAB */
|
||||||
|
|
||||||
.fabmenu{
|
.fabmenu{ /* surrounds the complete fab menu */
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 20px;
|
bottom: 20px;
|
||||||
right: 20px;
|
right: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fab{
|
.fab{ /* the main fab (always visible if enabled) */
|
||||||
height: 60px;
|
height: 60px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fab-img{
|
.fab-img{ /* fab image for the main fab */
|
||||||
width: 28px;
|
width: 28px;
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.subfab{
|
.subfab{ /* a smaller fab in the fab menu */
|
||||||
height: 45px;
|
height: 45px;
|
||||||
width: 45px;
|
width: 45px;
|
||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
|
@ -195,41 +205,41 @@ body{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.subfab-img{
|
.subfab-img{ /* and the image for it */
|
||||||
width: 22px;
|
width: 22px;
|
||||||
padding: 12px;
|
padding: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FOOTER */
|
/* FOOTER */
|
||||||
|
|
||||||
.footer{
|
.footer{ /* possibility for styling the footer */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.footer a{
|
.footer a{ /* styling of the footer a */
|
||||||
transition: border-bottom-color 150ms ease-in-out 100ms;
|
transition: border-bottom-color 150ms ease-in-out 100ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer a:hover{
|
.footer a:hover{ /* and the hovered one*/
|
||||||
border-bottom-color: #383838;
|
border-bottom-color: #383838;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width: 1440px) {
|
@media screen and (min-width: 1440px) { /* make it responsive: large devices */
|
||||||
|
|
||||||
.nav{
|
.nav{ /* always show navigation bar */
|
||||||
left: 0px;
|
left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-img{
|
.nav-img{ /* always hide navigation bar icon*/
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header{
|
.header{ /* move header to the right */
|
||||||
left: 300px;
|
left: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main{
|
.main{ /* move main content to the right and limit its width */
|
||||||
margin-left: 300px;
|
margin-left: 300px;
|
||||||
width: calc(100% - 300px);
|
width: calc(100% - 300px);
|
||||||
}
|
}
|
||||||
|
@ -237,9 +247,9 @@ body{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@media screen and (max-width: 720px){
|
@media screen and (max-width: 720px){ /* make it responsive: small devices */
|
||||||
|
|
||||||
.card{
|
.card{ /* wider cards */
|
||||||
width: 82%;
|
width: 82%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
* Rangitaki Project
|
||||||
|
*
|
||||||
* The MIT License
|
* The MIT License
|
||||||
*
|
*
|
||||||
* Copyright 2015 mmk2410.
|
* Copyright 2015 mmk2410.
|
||||||
|
@ -22,64 +24,74 @@
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var main = function () {
|
var main = function () { // main function; called below
|
||||||
|
|
||||||
var fabActive = false;
|
var fabActive = false; // fab hidden at begin
|
||||||
$('.fabmenu').click(function () {
|
$('.fabmenu').click( // action on fab click
|
||||||
if (!(fabActive)) {
|
function () {
|
||||||
fabFadeIn();
|
if (!(fabActive)) { // if fab is hidden
|
||||||
fabActive = true;
|
fabFadeIn(); // fade fab in
|
||||||
} else {
|
fabActive = true; // fab = active
|
||||||
fabFadeOut();
|
} else { // if fab is shown
|
||||||
fabActive = false;
|
fabFadeOut(); // fade fab out
|
||||||
|
fabActive = false; // fab = hidden
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
var navOpen = false;
|
var navOpen = false; // nav hidden at begin
|
||||||
$('.nav-img, .overlay').click(function () {
|
$('.nav-img, .overlay').click( // action on hamburger click
|
||||||
if (!(navOpen)) {
|
function () {
|
||||||
openNav();
|
if (!(navOpen)) { // if nav is hidden
|
||||||
navOpen = true;
|
openNav(); // open the nav drawer
|
||||||
} else {
|
navOpen = true; // nav = open
|
||||||
closeNav();
|
} else { // if nav is closed
|
||||||
navOpen = false;
|
closeNav(); // close the nav drawer
|
||||||
|
navOpen = false; // nav = closed
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).ready(main);
|
$(document).ready(main); // run if document is loaded
|
||||||
|
|
||||||
function goBack() {
|
function goBack() { // go back function
|
||||||
history.go(-1);
|
history.go(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function fabFadeIn() {
|
function fabFadeIn() { // fade fab in
|
||||||
$('.subfab').fadeIn(125);
|
$('.subfab').fadeIn(125); // fade subfabs in
|
||||||
$('.fab-img').fadeOut(60, function callback() {
|
$('.fab-img').fadeOut( // fade fab share image out
|
||||||
$('.fab-img').attr("src", "./res/img/close.svg");
|
60, function callback() {
|
||||||
});
|
$('.fab-img').attr("src", "./res/img/close.svg"); // change to fab close image
|
||||||
$('.fab-img').fadeIn(60);
|
}
|
||||||
|
);
|
||||||
|
$('.fab-img').fadeIn(60); // fade fab close image in
|
||||||
}
|
}
|
||||||
|
|
||||||
function fabFadeOut() {
|
function fabFadeOut() { // fade fab out
|
||||||
$('.subfab').fadeOut(125);
|
$('.subfab').fadeOut(125); // fade subfabs out
|
||||||
$('.fab-img').fadeOut(60, function callback() {
|
$('.fab-img').fadeOut( // fade fab close image out
|
||||||
$('.fab-img').attr("src", "./res/img/share.svg");
|
60, function callback() {
|
||||||
});
|
$('.fab-img').attr("src", "./res/img/share.svg"); // change to fab share image
|
||||||
$('.fab-img').fadeIn(60);
|
}
|
||||||
|
);
|
||||||
|
$('.fab-img').fadeIn(60); // fade fab share image in
|
||||||
}
|
}
|
||||||
|
|
||||||
function openNav() {
|
function openNav() { // fade navigation drawer in
|
||||||
$('.nav').animate({"left": "0px"}, 125);
|
$('.nav').animate({"left": "0px"}, 125); // slide in
|
||||||
$('.overlay').show();
|
$('.overlay').show(); // set overlay to show ...
|
||||||
$('.overlay').animate({"opacity": "0.4"}, 125);
|
$('.overlay').animate({"opacity": "0.4"}, 125); // ... and fade to a darker transparent color
|
||||||
}
|
}
|
||||||
|
|
||||||
function closeNav() {
|
function closeNav() { // fade navigation drawer out
|
||||||
$('.nav').animate({"left": "-300px"}, 125);
|
$('.nav').animate({"left": "-300px"}, 125); // slide out
|
||||||
$('.overlay').animate({"opacity": "0.0"}, 125, function () {
|
$('.overlay').animate(
|
||||||
$('.overlay').hide();
|
{"opacity": "0.0"}, 125, function () { // fade the overlay to complete transparency
|
||||||
});
|
$('.overlay').hide(); // hide it then
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
* Rangitaki Project
|
||||||
|
*
|
||||||
* The MIT License
|
* The MIT License
|
||||||
*
|
*
|
||||||
* Copyright 2015 mmk2410.
|
* Copyright 2015 mmk2410.
|
||||||
|
@ -25,65 +26,78 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of ArticleGenerator
|
* The article generator class is a collection of functions for generating the article of markdown
|
||||||
*
|
*
|
||||||
* @author mmk2410 <marcelmichaelkapfer@yahoo.co.nz>
|
* Since there is no initialize function, I recommend to use the short access syntay
|
||||||
|
*
|
||||||
|
* @category Articles
|
||||||
|
* @package RangitakiPHP
|
||||||
|
* @author mmk2410 <marcelmichaelkapfer@yahoo.co.nz>
|
||||||
|
* @license MIT License
|
||||||
|
* @link http://marcel-kapfer.de/rangitaki
|
||||||
*/
|
*/
|
||||||
class ArticleGenerator {
|
class ArticleGenerator
|
||||||
|
{
|
||||||
|
|
||||||
function newArticle ($directory, $articlefile, $blog) {
|
/**
|
||||||
|
* A function to create one new article
|
||||||
|
*
|
||||||
|
* @param string $directory The directory where the article files are stored
|
||||||
|
* @param string $articlefile The name of the article file
|
||||||
|
* @param string $blog The name of the current blog
|
||||||
|
*/
|
||||||
|
function newArticle($directory, $articlefile, $blog)
|
||||||
|
{
|
||||||
|
|
||||||
$article = file_get_contents($directory . $articlefile);
|
$article = file_get_contents($directory . $articlefile); // get the file
|
||||||
|
|
||||||
echo "<section class='card'>";
|
echo "<section class='card'>";
|
||||||
|
|
||||||
if (substr($article, 0, 6) == "%TITLE") {
|
if (substr($article, 0, 6) == "%TITLE") { // if a title is in the first line
|
||||||
$title = substr($article, 8, strpos($article, "\n") - 8);
|
$title = substr($article, 8, strpos($article, "\n") - 8); // get this title
|
||||||
if ($blog == "") {
|
if ($blog == "") { // if one main blog
|
||||||
$link = "./?article=" . substr($articlefile, 0, -3);
|
$link = "./?article=" . substr($articlefile, 0, -3); // create link to article
|
||||||
} else {
|
} else { // if not on main blog
|
||||||
$link = "./?blog=$blog&article=" . substr($articlefile, 0, -3);
|
$link = "./?blog=$blog&article=" . substr($articlefile, 0, -3); // create link to article at specific blog
|
||||||
}
|
}
|
||||||
echo "<a href='$link' class='headline'>$title</a>";
|
echo "<a href='$link' class='headline'>$title</a>"; // print link (as a headline)
|
||||||
$article = substr($article, strpos($article, "\n") + 1);
|
$article = substr($article, strpos($article, "\n") + 1); // remove title tag from $article (the variable, not the document)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (substr($article, 0, 5) == "%DATE") {
|
if (substr($article, 0, 5) == "%DATE") { // if now a date is in the first line
|
||||||
$date = substr($article, 7, strpos($article, "\n") - 7);
|
$date = substr($article, 7, strpos($article, "\n") - 7); // get this date
|
||||||
echo "<span class='date'>$date</span>";
|
echo "<span class='date'>$date</span>"; // print the date
|
||||||
$article = substr($article, strpos($article, "\n") + 1);
|
$article = substr($article, strpos($article, "\n") + 1); // remove this line
|
||||||
}
|
}
|
||||||
|
|
||||||
if (substr($article, 0, 7) == "%AUTHOR") {
|
if (substr($article, 0, 7) == "%AUTHOR") { // if a author is now in the first line
|
||||||
$author = substr($article, 9, strpos($article, "\n") - 9);
|
$author = substr($article, 9, strpos($article, "\n") - 9); // get the author
|
||||||
$article = substr($article, strpos($article, "\n") + 1);
|
$article = substr($article, strpos($article, "\n") + 1); // remove the line
|
||||||
}
|
}
|
||||||
|
|
||||||
if (substr($article, 0, 5) == "%TAGS") {
|
if (substr($article, 0, 5) == "%TAGS") { // if tags are now at the beginning
|
||||||
$tags = substr($article, 7, strpos($article, "\n") - 7);
|
$tags = substr($article, 7, strpos($article, "\n") - 7); // get tags
|
||||||
$tags = explode(", ", $tags);
|
$tags = explode(", ", $tags); // split them into an array
|
||||||
$article = substr($article, strpos($article, "\n") + 1);
|
$article = substr($article, strpos($article, "\n") + 1); // remove this line
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO Code detection
|
|
||||||
|
|
||||||
echo "<div class='articletext'>";
|
echo "<div class='articletext'>";
|
||||||
|
|
||||||
echo Parsedown::instance()
|
echo Parsedown::instance()
|
||||||
->setBreaksEnabled(true)
|
->setBreaksEnabled(true)
|
||||||
->text($article);
|
->text($article); // print now the article text as html
|
||||||
|
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
|
|
||||||
if ($author != "") {
|
if (isset($author)) {
|
||||||
echo "<span class='author'>$author</span>";
|
echo "<span class='author'>$author</span>"; // print the author
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($tags as $tag) {
|
foreach ($tags as $tag) {
|
||||||
$blogurl = filter_input(INPUT_GET, "blog");
|
$blogurl = filter_input(INPUT_GET, "blog");
|
||||||
if ($blogurl == "") {
|
if ($blogurl == "") { // on main blog. no ?blog=
|
||||||
echo "<a class='tag' href='./?tag=$tag'>$tag</a> ";
|
echo "<a class='tag' href='./?tag=$tag'>$tag</a> ";
|
||||||
} else {
|
} else { // not on main blog
|
||||||
echo "<a class='tag' href='./?blog=$blog&tag=$tag'>$tag</a> ";
|
echo "<a class='tag' href='./?blog=$blog&tag=$tag'>$tag</a> ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -91,24 +105,32 @@ class ArticleGenerator {
|
||||||
echo "</section>" . "\n";
|
echo "</section>" . "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTags($directory, $articlefile) {
|
/**
|
||||||
$article = file_get_contents($directory . $articlefile);
|
* A function to get an articles tags as an array
|
||||||
if (substr($article, 0, 6) == "%TITLE") {
|
*
|
||||||
|
* @param string $directory The directory where the article files are stored
|
||||||
|
* @param string $articlefile The name of the article file
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
function getTags($directory, $articlefile)
|
||||||
|
{
|
||||||
|
$article = file_get_contents($directory . $articlefile); // get the article
|
||||||
|
if (substr($article, 0, 6) == "%TITLE") { // detect and remove the title
|
||||||
$article = substr($article, strpos($article, "\n") + 1);
|
$article = substr($article, strpos($article, "\n") + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (substr($article, 0, 5) == "%DATE") {
|
if (substr($article, 0, 5) == "%DATE") { // detect and remove the title
|
||||||
$article = substr($article, strpos($article, "\n") + 1);
|
$article = substr($article, strpos($article, "\n") + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (substr($article, 0, 7) == "%AUTHOR") {
|
if (substr($article, 0, 7) == "%AUTHOR") { // detect and remove the title
|
||||||
$article = substr($article, strpos($article, "\n") + 1);
|
$article = substr($article, strpos($article, "\n") + 1);
|
||||||
}
|
}
|
||||||
if (substr($article, 0, 5) == "%TAGS") {
|
if (substr($article, 0, 5) == "%TAGS") { // detect the tags
|
||||||
$tags = substr($article, 7, strpos($article, "\n") - 7);
|
$tags = substr($article, 7, strpos($article, "\n") - 7); // get the tags
|
||||||
$tags = explode(", ", $tags);
|
$tags = explode(", ", $tags); // split them into an array
|
||||||
}
|
}
|
||||||
return $tags;
|
return $tags; // remove that array
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
* Rangitaki Project
|
||||||
|
*
|
||||||
* The MIT License
|
* The MIT License
|
||||||
*
|
*
|
||||||
* Copyright 2015 mmk2410.
|
* Copyright 2015 mmk2410.
|
||||||
|
@ -24,33 +25,56 @@
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description of BlogListGenerator
|
* The blog list generator class is a collection of functions for generating blog lists
|
||||||
*
|
* or getting informations about them
|
||||||
* @author mmk2410 <marcelmichaelkapfer@yahoo.co.nz>
|
*
|
||||||
*/
|
* Since there is no initialize function, I recommend to use the short access syntay
|
||||||
class BlogListGenerator {
|
*
|
||||||
|
* @category Blogs
|
||||||
|
* @package RangitakiPHP
|
||||||
|
* @author mmk2410 <marcelmichaelkapfer@yahoo.co.nz>
|
||||||
|
* @license MIT License
|
||||||
|
* @link http://marcel-kapfer.de/rangitaki
|
||||||
|
*/
|
||||||
|
class BlogListGenerator
|
||||||
|
{
|
||||||
|
|
||||||
function listBlog($directory, $blogname, $blogmaintitle) {
|
/**
|
||||||
$blog = file_get_contents($directory . $blogname);
|
* A function to generate a blog nav item
|
||||||
$blog = $blog . "\n";
|
*
|
||||||
if (substr($blog, 0, 6) == "%TITLE") {
|
* @param string $directory The directory of the blog file
|
||||||
$blog = substr($blog, 8, strpos($blog, "\n") - 8);
|
* @param string $blogname The name of the blog file
|
||||||
if ($blog == "main") {
|
* @param string $blogmaintitle The name of the main blog
|
||||||
echo "<a class='nav-item' href='./'>$blogmaintitle</a>";
|
*/
|
||||||
|
function listBlog($directory, $blogname, $blogmaintitle)
|
||||||
|
{
|
||||||
|
$blog = file_get_contents($directory . $blogname); // get content of the blog file
|
||||||
|
$blog = $blog . "\n"; // add a line break as a security measurement
|
||||||
|
if (substr($blog, 0, 6) == "%TITLE") { // check if the first line includes a title
|
||||||
|
$blog = substr($blog, 8, strpos($blog, "\n") - 8); // grab the title
|
||||||
|
if ($blog == "main") { // if on main blog
|
||||||
|
echo "<a class='nav-item' href='./'>$blogmaintitle</a>"; // create a nav item to the main blog
|
||||||
} else {
|
} else {
|
||||||
$link = "./?blog=" . substr($blogname, 0, -3);
|
$link = "./?blog=" . substr($blogname, 0, -3); // create a link to the blog
|
||||||
echo "<a class='nav-item' href='$link'>$blog</a>";
|
echo "<a class='nav-item' href='$link'>$blog</a>"; // create a nav item to the blog
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getName($file){
|
/**
|
||||||
$blog = file_get_contents($file);
|
* A function to get the name of a blog
|
||||||
$blog = $blog . "\n";
|
*
|
||||||
if(substr($blog, 0, 6) == "%TITLE"){
|
* @param string $file The path of the blog file
|
||||||
$blog = substr($blog, 8, strpos($blog, "\n") - 8);
|
* @return string
|
||||||
return $blog;
|
*/
|
||||||
|
function getName($file)
|
||||||
|
{
|
||||||
|
$blog = file_get_contents($file); // get the content of the blog file
|
||||||
|
$blog = $blog . "\n"; // add a line break as a securit measure
|
||||||
|
if(substr($blog, 0, 6) == "%TITLE") { // check if first line includes a title
|
||||||
|
$blog = substr($blog, 8, strpos($blog, "\n") - 8); // grab the title
|
||||||
|
return $blog; // return it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<?php if ($blogdisqus) { ?>
|
<?php if ($blogdisqus) { // check if disqus is enabled ?>
|
||||||
<section class="card">
|
<section class="card">
|
||||||
<div id="disqus_thread"></div>
|
<div id="disqus_thread"></div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
@ -40,4 +40,5 @@ THE SOFTWARE.
|
||||||
</script>
|
</script>
|
||||||
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
|
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
|
||||||
</section>
|
</section>
|
||||||
<?php } ?>
|
<?php
|
||||||
|
} ?>
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
|
* Rangitaki Project
|
||||||
|
*
|
||||||
* The MIT License
|
* The MIT License
|
||||||
*
|
*
|
||||||
* Copyright 2015 mmk2410.
|
* Copyright 2015 mmk2410.
|
||||||
|
@ -24,7 +26,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
if ($bloganalytics) {
|
if ($bloganalytics) { // check if google analytics is enabled
|
||||||
?>
|
?>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
|
Reference in a new issue