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
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* Rangitaki Project
|
||||
*
|
||||
* The MIT License
|
||||
*
|
||||
* 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'>";
|
||||
|
||||
if (substr($article, 0, 6) == "%TITLE") {
|
||||
$title = substr($article, 8, strpos($article, "\n") - 8);
|
||||
if ($blog == "") {
|
||||
$link = "./?article=" . substr($articlefile, 0, -3);
|
||||
} else {
|
||||
$link = "./?blog=$blog&article=" . substr($articlefile, 0, -3);
|
||||
if (substr($article, 0, 6) == "%TITLE") { // if a title is in the first line
|
||||
$title = substr($article, 8, strpos($article, "\n") - 8); // get this title
|
||||
if ($blog == "") { // if one main blog
|
||||
$link = "./?article=" . substr($articlefile, 0, -3); // create link to article
|
||||
} else { // if not on main blog
|
||||
$link = "./?blog=$blog&article=" . substr($articlefile, 0, -3); // create link to article at specific blog
|
||||
}
|
||||
echo "<a href='$link' class='headline'>$title</a>";
|
||||
$article = substr($article, strpos($article, "\n") + 1);
|
||||
echo "<a href='$link' class='headline'>$title</a>"; // print link (as a headline)
|
||||
$article = substr($article, strpos($article, "\n") + 1); // remove title tag from $article (the variable, not the document)
|
||||
}
|
||||
|
||||
if (substr($article, 0, 5) == "%DATE") {
|
||||
$date = substr($article, 7, strpos($article, "\n") - 7);
|
||||
echo "<span class='date'>$date</span>";
|
||||
$article = substr($article, strpos($article, "\n") + 1);
|
||||
if (substr($article, 0, 5) == "%DATE") { // if now a date is in the first line
|
||||
$date = substr($article, 7, strpos($article, "\n") - 7); // get this date
|
||||
echo "<span class='date'>$date</span>"; // print the date
|
||||
$article = substr($article, strpos($article, "\n") + 1); // remove this line
|
||||
}
|
||||
|
||||
if (substr($article, 0, 7) == "%AUTHOR") {
|
||||
$author = substr($article, 9, strpos($article, "\n") - 9);
|
||||
$article = substr($article, strpos($article, "\n") + 1);
|
||||
if (substr($article, 0, 7) == "%AUTHOR") { // if a author is now in the first line
|
||||
$author = substr($article, 9, strpos($article, "\n") - 9); // get the author
|
||||
$article = substr($article, strpos($article, "\n") + 1); // remove the line
|
||||
}
|
||||
|
||||
if (substr($article, 0, 5) == "%TAGS") {
|
||||
$tags = substr($article, 7, strpos($article, "\n") - 7);
|
||||
$tags = explode(", ", $tags);
|
||||
$article = substr($article, strpos($article, "\n") + 1);
|
||||
if (substr($article, 0, 5) == "%TAGS") { // if tags are now at the beginning
|
||||
$tags = substr($article, 7, strpos($article, "\n") - 7); // get tags
|
||||
$tags = explode(", ", $tags); // split them into an array
|
||||
$article = substr($article, strpos($article, "\n") + 1); // remove this line
|
||||
}
|
||||
|
||||
//TODO Code detection
|
||||
|
||||
echo "<div class='articletext'>";
|
||||
|
||||
echo Parsedown::instance()
|
||||
->setBreaksEnabled(true)
|
||||
->text($article);
|
||||
->text($article); // print now the article text as html
|
||||
|
||||
echo "</div>";
|
||||
|
||||
if ($author != "") {
|
||||
echo "<span class='author'>$author</span>";
|
||||
if (isset($author)) {
|
||||
echo "<span class='author'>$author</span>"; // print the author
|
||||
}
|
||||
|
||||
foreach ($tags as $tag) {
|
||||
$blogurl = filter_input(INPUT_GET, "blog");
|
||||
if ($blogurl == "") {
|
||||
if ($blogurl == "") { // on main blog. no ?blog=
|
||||
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> ";
|
||||
}
|
||||
}
|
||||
|
@ -91,24 +105,32 @@ class ArticleGenerator {
|
|||
echo "</section>" . "\n";
|
||||
}
|
||||
|
||||
function getTags($directory, $articlefile) {
|
||||
$article = file_get_contents($directory . $articlefile);
|
||||
if (substr($article, 0, 6) == "%TITLE") {
|
||||
/**
|
||||
* A function to get an articles tags as an array
|
||||
*
|
||||
* @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);
|
||||
}
|
||||
|
||||
if (substr($article, 0, 5) == "%DATE") {
|
||||
if (substr($article, 0, 5) == "%DATE") { // detect and remove the title
|
||||
$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);
|
||||
}
|
||||
if (substr($article, 0, 5) == "%TAGS") {
|
||||
$tags = substr($article, 7, strpos($article, "\n") - 7);
|
||||
$tags = explode(", ", $tags);
|
||||
if (substr($article, 0, 5) == "%TAGS") { // detect the tags
|
||||
$tags = substr($article, 7, strpos($article, "\n") - 7); // get the tags
|
||||
$tags = explode(", ", $tags); // split them into an array
|
||||
}
|
||||
return $tags;
|
||||
return $tags; // remove that array
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* Rangitaki Project
|
||||
*
|
||||
* The MIT License
|
||||
*
|
||||
* Copyright 2015 mmk2410.
|
||||
|
@ -24,33 +25,56 @@
|
|||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Description of BlogListGenerator
|
||||
*
|
||||
* @author mmk2410 <marcelmichaelkapfer@yahoo.co.nz>
|
||||
*/
|
||||
class BlogListGenerator {
|
||||
/**
|
||||
* The blog list generator class is a collection of functions for generating blog lists
|
||||
* or getting informations about them
|
||||
*
|
||||
* Since there is no initialize function, I recommend to use the short access syntay
|
||||
*
|
||||
* @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);
|
||||
$blog = $blog . "\n";
|
||||
if (substr($blog, 0, 6) == "%TITLE") {
|
||||
$blog = substr($blog, 8, strpos($blog, "\n") - 8);
|
||||
if ($blog == "main") {
|
||||
echo "<a class='nav-item' href='./'>$blogmaintitle</a>";
|
||||
/**
|
||||
* A function to generate a blog nav item
|
||||
*
|
||||
* @param string $directory The directory of the blog file
|
||||
* @param string $blogname The name of the blog file
|
||||
* @param string $blogmaintitle The name of the main blog
|
||||
*/
|
||||
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 {
|
||||
$link = "./?blog=" . substr($blogname, 0, -3);
|
||||
echo "<a class='nav-item' href='$link'>$blog</a>";
|
||||
$link = "./?blog=" . substr($blogname, 0, -3); // create a link to the blog
|
||||
echo "<a class='nav-item' href='$link'>$blog</a>"; // create a nav item to the blog
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getName($file){
|
||||
$blog = file_get_contents($file);
|
||||
$blog = $blog . "\n";
|
||||
if(substr($blog, 0, 6) == "%TITLE"){
|
||||
$blog = substr($blog, 8, strpos($blog, "\n") - 8);
|
||||
return $blog;
|
||||
|
||||
/**
|
||||
* A function to get the name of a blog
|
||||
*
|
||||
* @param string $file The path of the blog file
|
||||
* @return string
|
||||
*/
|
||||
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.
|
||||
-->
|
||||
|
||||
<?php if ($blogdisqus) { ?>
|
||||
<?php if ($blogdisqus) { // check if disqus is enabled ?>
|
||||
<section class="card">
|
||||
<div id="disqus_thread"></div>
|
||||
<script type="text/javascript">
|
||||
|
@ -40,4 +40,5 @@ THE SOFTWARE.
|
|||
</script>
|
||||
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
|
||||
</section>
|
||||
<?php } ?>
|
||||
<?php
|
||||
} ?>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
/*
|
||||
* Rangitaki Project
|
||||
*
|
||||
* The MIT License
|
||||
*
|
||||
* Copyright 2015 mmk2410.
|
||||
|
@ -24,7 +26,7 @@
|
|||
*/
|
||||
|
||||
|
||||
if ($bloganalytics) {
|
||||
if ($bloganalytics) { // check if google analytics is enabled
|
||||
?>
|
||||
<script>
|
||||
|
||||
|
@ -47,4 +49,4 @@ if ($bloganalytics) {
|
|||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
|
Reference in a new issue