diff --git a/config.php b/config.php
index 2558fb3..af390bf 100644
--- a/config.php
+++ b/config.php
@@ -1,6 +1,6 @@
+
+ PicoFeed
+ Example Blog
+ https://marcel-kapfer.de/rangitaki/blog/
+ 2016-02-16T10:52:47+00:00
+
+
+
+ John
+
+ https://marcel-kapfer.de/rangitaki/blog/
+
+
diff --git a/index.php b/index.php
index b21bc7f..d22c4de 100644
--- a/index.php
+++ b/index.php
@@ -26,11 +26,13 @@ MIT License
*/
// Getting necessary php files
date_default_timezone_set('UTC');
+require __DIR__ . '/vendor/autoload.php'; // loading composer libs
+
require 'config.php'; // Config file (this must be the first line)
require './lang/' . $language . ".php"; // Language file
-require_once 'res/php/Parsedown.php'; // The soul of the beast: Parsedown
require_once 'res/php/ArticleGenerator.php'; // The article generator
require_once './res/php/BlogListGenerator.php'; // and the blog list generator
+
// Getting some variables ($_GET and $_SERVER)
$getblog = filter_input(INPUT_GET, "blog"); // get the blog variable
$getarticle = filter_input(INPUT_GET, "article"); // get the article variable
@@ -86,11 +88,15 @@ if (isset($getarticle)) {
} else {
$hd_subblog_title = $subblogtitle;
}
+
+// url of the feed
+$feedurl = $blogurl . "/feed/" . $blog . ".atom";
+
?>
-
+
@@ -114,6 +120,17 @@ if (isset($getarticle)) {
+
+
+ '>
+
@@ -206,6 +223,13 @@ if ($nav_drawer == "yes") {
+
+ '>Feed
+ * @license MIT License
+ * @link https://github.com/mmk2410/rangitaki
+ *
+ * The MIT License
+ *
+ * Copyright 2015 mmk2410.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+date_default_timezone_set('UTC');
+
+require "../../vendor/autoload.php";
+require_once "../../config.php";
+require_once "../../res/php/ArticleGenerator.php";
+use PicoFeed\Syndication\Atom;
+
+session_start();
+
+if ($_SESSION['login']) {
+
+ $art_dir = "./../../articles/" . $_GET['blog'] . "/";
+ $feed_path = "./../../feed/" . $_GET['blog'] . ".atom";
+
+ $writer = new Atom();
+
+ $writer->title = $blogtitle;
+ $writer->site_url = $blogurl;
+ $writer->feed_url = $blogurl . "/feed/feed.atom";
+ $writer->author = array(
+ 'name' => $blogauthor,
+ 'url' => $blogurl,
+ 'email' => ''
+ );
+
+ $articles = scandir($art_dir, 1);
+
+ $amount = 0;
+
+ foreach ($articles as $article) {
+ if (strlen($article) >= 3 && substr($article, -3) == ".md") {
+ if ($amount == 10) {
+ break;
+ } else {
+ $writer->items[] = array(
+ 'title' => ArticleGenerator::getTitle($art_dir, $article),
+ 'updated' => strtotime(
+ ArticleGenerator::getDate($art_dir . $article)
+ ),
+ 'url' => $blogurl . "./?article=" .
+ substr($article, 0, strlen($article) - 3),
+ 'summary'=> ArticleGenerator::getSummary(
+ $art_dir, $articles
+ ),
+ 'content' => "
- The Rangitaki Control Center is disabled. You can enable it in your config file. But please read first
- the documentation.
+ The Rangitaki Control Center is disabled. You can enable it in
+ your config file. But please read first the documentation.
+
diff --git a/rcc/res/atom.js b/rcc/res/atom.js
new file mode 100644
index 0000000..b5873c2
--- /dev/null
+++ b/rcc/res/atom.js
@@ -0,0 +1,28 @@
+/**
+ * Created by mmk2410 on 2016-02-16.
+ *
+ * JavaScript for the ajax request to generate a atom feed
+ *
+ * Copyright (c) 2016 by mmk2410
+ * License: MIT License
+ */
+
+
+function main() {
+ // listener and function for calling the ajax request to create the
+ // requested atom feed
+ $("#generate_atom").click(function () {
+ var selectedBlog = $("#generate_atom_blog").val();
+ $.get("feed/index.php", {
+ blog: selectedBlog
+ }, function (data) {
+ if (data == "0") {
+ alert("Atom feed sucessfully created.");
+ } else {
+ alert("Failed to create atom feed.");
+ }
+ });
+ });
+}
+
+$(document).ready(main());
diff --git a/res/php/ArticleGenerator.php b/res/php/ArticleGenerator.php
index 1fc5a96..86f4fa5 100644
--- a/res/php/ArticleGenerator.php
+++ b/res/php/ArticleGenerator.php
@@ -1,5 +1,15 @@
+ * @license MIT License
+ * @link http://marcel-kapfer.de/rangitaki
+ *
* Rangitaki Project
*
* The MIT License
@@ -26,7 +36,8 @@
*/
/**
- * The article generator class is a collection of functions for generating the article of markdown
+ * The article generator class is a collection of functions for generating the
+ * article of markdown
*
* Since there is no initialize function, I recommend to use the short access syntay
*
@@ -42,9 +53,11 @@ 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
+ * @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
+ *
+ * @return Null
*/
function newArticle($directory, $articlefile, $blog)
{
@@ -172,6 +185,31 @@ class ArticleGenerator
}
}
+
+ /**
+ * A function to get a short summary of a text
+ *
+ * @param $directory The directory where the article is stored
+ * @param $articlefile The name of the article file
+ *
+ * @return string
+ */
+ static function getSummary($directory, $articlefile)
+ {
+ $text = getText($directory, $articlefile);
+
+ $pos = stripos($text, ".");
+
+ if ($pos) {
+ $offset = $pos + 1;
+ $pos = stripos($text, ".", $offset);
+ $summary = substr($text, 0, $pos) . ".";
+ return $summary;
+ } else {
+ return $text;
+ }
+ }
+
/**
* A function to get the author of an article
*