* @license MIT License * @link http://marcel-kapfer.de/rangitaki */ class ArticleGenerator { /** * 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); // get the file echo "
"; 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 "$title"; // 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") { // if now a date is in the first line $date = substr($article, 7, strpos($article, "\n") - 7); // get this date echo "$date"; // print the date $article = substr($article, strpos($article, "\n") + 1); // remove this line } 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") { // 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 } echo "
"; echo Parsedown::instance() ->setBreaksEnabled(true) ->text($article); // print now the article text as html echo "
"; if (isset($author)) { echo "$author"; // print the author } if (isset($tags)) { foreach ($tags as $tag) { $blogurl = filter_input(INPUT_GET, "blog"); if ($blogurl == "") { // on main blog. no ?blog= echo "$tag "; } else { // not on main blog echo "$tag "; } } } echo "
" . "\n"; } /** * 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 */ static 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") { // detect and remove the title $article = substr($article, strpos($article, "\n") + 1); } if (substr($article, 0, 7) == "%AUTHOR") { // detect and remove the title $article = substr($article, strpos($article, "\n") + 1); } 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; // remove that array } /** * A function to get an article title as a string * * @param string $directory The directory where the article files are stored * @param string $articlefile The name of the article file * @return string */ static function getTitle($directory, $articlefile) { $article = file_get_contents($directory . $articlefile); // get the article if (substr($article, 0, 6) == "%TITLE") { // detect and remove the title $title = substr($article, 8, strpos($article, "\n") - 8); // get this title return $title; // remove that array } } /** * A function to get the date of an article * * @param $directory The directory where the article is stored * @param $articlefile The name of the article file * @return string */ static function getDate($directory, $articlefile) { $article = file_get_contents($directory . $articlefile); if (substr($article, 0, 6) == "%TITLE") { // detect and remove the title $article = substr($article, strpos($article, "\n") + 1); } if (substr($article, 0, 5) == "%DATE") { // detect and remove the title $date = substr($article, 7, strpos($article, "\n") - 7); return $date; } } /** * A function to get the author of an article * * @param $directory The directory where the article is stored * @param $articlefile The name of the article file * @return string */ static function getAuthor($directory, $articlefile) { $article = file_get_contents($directory . $articlefile); if (substr($article, 0, 6) == "%TITLE") { // detect and remove the title $article = substr($article, strpos($article, "\n") + 1); } if (substr($article, 0, 5) == "%DATE") { // detect and remove the title $article = substr($article, strpos($article, "\n") + 1); } if (substr($article, 0, 7) == "%AUTHOR") { // detect and remove the title $author = substr($article, 9, strpos($article, "\n") - 9); return $author; } } /** * A function to get the text of an article * * @param $directory The directory where the article is stored * @param $articlefile The name of the article file * @return string */ static function getText($directory, $articlefile) { $article = file_get_contents($directory . $articlefile); if (substr($article, 0, 6) == "%TITLE") { // detect and remove the title $article = substr($article, strpos($article, "\n") + 1); } if (substr($article, 0, 5) == "%DATE") { // detect and remove the title $article = substr($article, strpos($article, "\n") + 1); } if (substr($article, 0, 7) == "%AUTHOR") { // detect and remove the title $article = substr($article, strpos($article, "\n") + 1); } if (substr($article, 0, 5) == "%TAGS") { // detect the tags $article = substr($article, strpos($article, "\n") + 1); // remove the tags } return $article; } }