2016-03-11 18:54:58 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* PHP Version 7
|
|
|
|
*
|
|
|
|
* @category Blogging
|
|
|
|
* @package Rcc
|
|
|
|
* @author Marcel Kapfer (mmk2410) <marcelmichaelkapfer@yahoo.co.nz>
|
|
|
|
* @license MIT License
|
|
|
|
* @link https://mmk2410.org/rangitaki
|
|
|
|
*
|
|
|
|
* Main page of RCC (Rangitaki Control Center)
|
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*/
|
2016-05-17 22:34:33 +02:00
|
|
|
|
|
|
|
require '../vendor/autoload.php';
|
|
|
|
require '../res/php/Config.php';
|
2016-12-29 21:54:37 +01:00
|
|
|
require "./../res/php/BlogListGenerator.php";
|
2016-05-17 22:34:33 +02:00
|
|
|
|
|
|
|
use \mmk2410\rbe\config\Config as Config;
|
2016-12-29 21:54:37 +01:00
|
|
|
use mmk2410\rbe\BlogListGenerator\BlogListGenerator as BlogListGenerator;
|
2016-05-17 22:34:33 +02:00
|
|
|
|
|
|
|
$config = new Config("../config.yaml", '../vendor/autoload.php');
|
|
|
|
$settings = $config->getConfig();
|
|
|
|
|
|
|
|
include './ssl.php';
|
|
|
|
|
2016-03-11 18:54:58 +01:00
|
|
|
?>
|
|
|
|
|
2015-06-16 16:16:51 +02:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
2015-12-06 15:19:16 +01:00
|
|
|
<head>
|
|
|
|
<meta charset="UTF-8">
|
2016-02-16 14:19:17 +01:00
|
|
|
|
2015-12-06 15:19:16 +01:00
|
|
|
<title>Rangitaki Control Center</title>
|
2016-03-11 18:54:58 +01:00
|
|
|
|
|
|
|
<meta name="robots" content="nofollow, noindex, noarchive, nosnippet">
|
|
|
|
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0,
|
|
|
|
user-scalable=0" name="viewport"/>
|
|
|
|
|
|
|
|
<meta name="theme-color" content="#383838">
|
|
|
|
<meta name="description" content="Rangitaki Control Center (RCC)">
|
|
|
|
|
2015-12-06 15:19:16 +01:00
|
|
|
<link rel="stylesheet" href="./res/rcc.css"/>
|
2016-03-11 18:54:58 +01:00
|
|
|
|
|
|
|
<link href='//fonts.googleapis.com/css?family=Roboto:400,500,700,300,
|
|
|
|
400italic,100,100italic,900' rel='stylesheet'
|
|
|
|
type='text/css'> <!--Font-->
|
2015-12-06 15:19:16 +01:00
|
|
|
</head>
|
2016-03-11 18:54:58 +01:00
|
|
|
|
2015-12-06 15:19:16 +01:00
|
|
|
<body>
|
2016-03-11 18:54:58 +01:00
|
|
|
|
|
|
|
<div class="header">
|
|
|
|
<a href="./" class="title">Rangitaki Control Center</a>
|
|
|
|
<a href="../" class="back">Back to the blog</a>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="main">
|
|
|
|
<?php
|
2016-05-17 22:34:33 +02:00
|
|
|
$config = $settings;
|
2016-04-22 19:28:27 +02:00
|
|
|
|
|
|
|
if ($config["rcc"]["rcc"] == "on") {
|
2016-03-11 18:54:58 +01:00
|
|
|
include 'password.php';
|
|
|
|
session_start();
|
|
|
|
|
|
|
|
if (isset($_POST['passwd'])) {
|
|
|
|
$passwd = $_POST['passwd'];
|
|
|
|
$_SESSION['passwd'] = $_POST['passwd'];
|
2016-04-22 19:28:27 +02:00
|
|
|
} elseif (isset($_SESSION['passwd'])) {
|
2016-03-11 18:54:58 +01:00
|
|
|
$passwd = $_SESSION['passwd'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($passwd == "") {
|
|
|
|
?>
|
|
|
|
|
|
|
|
<!-- Login Card -->
|
|
|
|
<section class="card">
|
|
|
|
<div class="headline">Log In</div>
|
|
|
|
<form action="./" method="post">
|
|
|
|
<p>Password:
|
|
|
|
<br><br>
|
|
|
|
<input type="password" class="itextfield" name="passwd"/>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<input type="Submit" class="button" value="Log in"/>
|
|
|
|
</form>
|
|
|
|
</section>
|
|
|
|
|
2015-12-06 15:19:16 +01:00
|
|
|
<?php
|
2016-03-11 18:54:58 +01:00
|
|
|
} else {
|
2016-05-18 14:46:10 +02:00
|
|
|
if (password_verify($passwd, $password)) {
|
2016-03-11 18:54:58 +01:00
|
|
|
$_SESSION['login'] = true;
|
2016-12-29 21:54:37 +01:00
|
|
|
|
2016-03-11 18:54:58 +01:00
|
|
|
?>
|
|
|
|
|
|
|
|
<!-- Post Upload -->
|
|
|
|
<section class="card">
|
|
|
|
<div class="headline">Post Upload</div>
|
|
|
|
<form enctype="multipart/form-data" action="uploaded/"
|
|
|
|
method="POST">
|
|
|
|
|
|
|
|
<select name="blog">
|
|
|
|
<?php
|
|
|
|
$blogs = scandir("../blogs/");
|
|
|
|
foreach ($blogs as $blog) {
|
|
|
|
if (strlen($blog) >= 3 && substr($blog, -3) == ".md") {
|
2016-12-30 00:05:01 +01:00
|
|
|
if (BlogListGenerator::getExternalLink($blog, '../') == null) {
|
|
|
|
$blog = substr($blog, 0, -3);
|
|
|
|
echo "<option value='$blog'>$blog</option>";
|
|
|
|
}
|
2016-03-11 18:54:58 +01:00
|
|
|
}
|
|
|
|
}
|
2015-12-06 15:19:16 +01:00
|
|
|
?>
|
2016-03-11 18:54:58 +01:00
|
|
|
</select>
|
|
|
|
|
|
|
|
<input type="hidden" name="MAX_FILE_SIZE" value="100000"/>
|
|
|
|
<input id="" name="userfile" type="file" value="Choose a file"/>
|
|
|
|
<br><br>
|
|
|
|
|
|
|
|
<input id="button" type="submit" value="Upload" class="button"/>
|
|
|
|
</form>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<!-- New Post -->
|
|
|
|
<section class="card">
|
|
|
|
<div class="headline">New Post</div>
|
|
|
|
<form action="newpost/" method="POST">
|
|
|
|
<p>Blog:</p>
|
|
|
|
<select name="blog">
|
2015-06-16 16:16:51 +02:00
|
|
|
<?php
|
2016-03-11 18:54:58 +01:00
|
|
|
$blogs = scandir("../blogs/");
|
|
|
|
foreach ($blogs as $blog) {
|
|
|
|
if (strlen($blog) >= 3 && substr($blog, -3) == ".md") {
|
2016-12-30 00:05:01 +01:00
|
|
|
if (BlogListGenerator::getExternalLink($blog, '../') == null) {
|
|
|
|
$blog = substr($blog, 0, -3);
|
|
|
|
echo "<option value='$blog'>$blog</option>";
|
|
|
|
}
|
2016-03-11 18:54:58 +01:00
|
|
|
}
|
2015-06-16 16:16:51 +02:00
|
|
|
}
|
2016-03-11 18:54:58 +01:00
|
|
|
?>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<p>Title:
|
|
|
|
<br><br>
|
|
|
|
<input type="text" class="itextfield" name="title"/>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>Date:
|
|
|
|
<br><br>
|
|
|
|
<input type="text" class="itextfield" name="date"/>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>Author:
|
|
|
|
<br><br>
|
|
|
|
<input type="text" class="itextfield" name="author"/>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>Tags:
|
|
|
|
<br><br>
|
|
|
|
<input type="text" class="itextfield" name="tags"/>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>Text:</p>
|
|
|
|
<textarea class="itextarea" name="text"></textarea>
|
|
|
|
<br><br>
|
|
|
|
<input id="button" type="submit" value="Post"
|
|
|
|
class="button"/>
|
|
|
|
</form>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<!-- Edit post -->
|
2015-12-06 15:19:16 +01:00
|
|
|
<section class="card">
|
2016-03-11 18:54:58 +01:00
|
|
|
<div class="headline">Edit post</div>
|
2015-12-06 15:19:16 +01:00
|
|
|
<p>
|
2016-03-11 18:54:58 +01:00
|
|
|
First select the blog of the post you wan't to edit.
|
2015-12-06 15:19:16 +01:00
|
|
|
</p>
|
2016-03-11 18:54:58 +01:00
|
|
|
|
|
|
|
<p id="edit_select_blog">
|
|
|
|
<select name="blog" id="edit_selected_blog">
|
|
|
|
<?php
|
|
|
|
$blogs = scandir("../blogs/");
|
|
|
|
foreach ($blogs as $blog) {
|
|
|
|
if (strlen($blog) >= 3 && substr($blog, -3) == ".md") {
|
2016-12-30 00:05:01 +01:00
|
|
|
if (BlogListGenerator::getExternalLink($blog, '../') == null) {
|
|
|
|
$blog = substr($blog, 0, -3);
|
|
|
|
echo "<option value='$blog'>$blog</option>";
|
|
|
|
}
|
2016-03-11 18:54:58 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
</select>
|
|
|
|
</p>
|
|
|
|
<a class="button" id="edit_get_posts">GET POSTS</a>
|
2015-12-06 15:19:16 +01:00
|
|
|
</section>
|
2016-03-11 18:54:58 +01:00
|
|
|
|
|
|
|
<!-- Delete Post -->
|
|
|
|
<section class="card">
|
|
|
|
<div class="headline">Delete Post</div>
|
|
|
|
<p>
|
|
|
|
First select the subblog of the post you want to delete.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p id="delete_select_blog">
|
|
|
|
<select name="blog" id="delete_selected_blog">
|
|
|
|
<?php
|
|
|
|
$blogs = scandir("../blogs/");
|
|
|
|
foreach ($blogs as $blog) {
|
|
|
|
if (strlen($blog) >= 3 && substr($blog, -3) == ".md") {
|
2016-12-30 00:05:01 +01:00
|
|
|
if (BlogListGenerator::getExternalLink($blog, '../') == null) {
|
|
|
|
$blog = substr($blog, 0, -3);
|
|
|
|
echo "<option value='$blog'>$blog</option>";
|
|
|
|
}
|
2016-03-11 18:54:58 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
</select>
|
|
|
|
</p>
|
|
|
|
<a class="button" id="delete_get_posts">GET POSTS</a>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<!-- Media Upload -->
|
|
|
|
<section class="card">
|
|
|
|
<div class="headline">Media Upload</div>
|
|
|
|
<form enctype="multipart/form-data" action="media/" method="POST">
|
|
|
|
<input type="hidden" name="MAX_FILE_SIZE"
|
|
|
|
value="100000000000"/>
|
|
|
|
<input id="" name="userfile" type="file" value="Choose a file"/>
|
|
|
|
<br><br>
|
|
|
|
<input id="button" type="submit" value="Upload" class="button"/>
|
|
|
|
</form>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<!-- Atom Feed Generator -->
|
|
|
|
<section class="card">
|
|
|
|
<div class="headline">Atom Feed Generator</div>
|
|
|
|
<p>
|
|
|
|
<select name="blog" id="generate_atom_blog">
|
|
|
|
<?php
|
|
|
|
$blogs = scandir("../blogs/");
|
|
|
|
foreach ($blogs as $blog) {
|
|
|
|
if (strlen($blog) >= 3 && substr($blog, -3) == ".md") {
|
2016-12-30 00:05:01 +01:00
|
|
|
if (BlogListGenerator::getExternalLink($blog, '../') == null) {
|
|
|
|
$blog = substr($blog, 0, -3);
|
|
|
|
echo "<option value='$blog'>$blog</option>";
|
|
|
|
}
|
2016-03-11 18:54:58 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
</select>
|
|
|
|
</p>
|
|
|
|
<a class="button" id="generate_atom">GENERATE</a>
|
|
|
|
</section>
|
|
|
|
|
2015-12-06 15:19:16 +01:00
|
|
|
<?php
|
2016-03-11 18:54:58 +01:00
|
|
|
} else {
|
|
|
|
?>
|
|
|
|
|
|
|
|
<!-- Wrong Password -->
|
|
|
|
<section class="card">
|
|
|
|
<div class="headline">Wrong Password</div>
|
|
|
|
<p>
|
2016-03-11 18:58:26 +01:00
|
|
|
The entered password was wrong, please try again.
|
2016-03-11 18:54:58 +01:00
|
|
|
</p>
|
2016-03-11 18:58:26 +01:00
|
|
|
<form action="./" method="post">
|
|
|
|
<p>Password:
|
|
|
|
<br><br>
|
|
|
|
<input type="password" class="itextfield" name="passwd"/>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<input type="Submit" class="button" value="Log in"/>
|
|
|
|
</form>
|
2016-03-11 18:54:58 +01:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
}
|
2015-12-06 15:19:16 +01:00
|
|
|
}
|
2016-03-11 18:54:58 +01:00
|
|
|
} else {
|
|
|
|
?>
|
|
|
|
|
|
|
|
<!-- Not enabled -->
|
|
|
|
<section class="card">
|
|
|
|
<div class="headline">Rangitaki Control Center</div>
|
|
|
|
<p>
|
|
|
|
The Rangitaki Control Center is disabled. You can enable
|
|
|
|
it in your config file. But please read first the
|
|
|
|
documentation.
|
|
|
|
</p>
|
|
|
|
</section>
|
|
|
|
<?php
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
|
|
|
|
<!-- Back -->
|
|
|
|
<section class="card" id="back-card">
|
|
|
|
<div class="headline">Back</div>
|
|
|
|
<p>Go back to your blog.</p>
|
|
|
|
<a href="../" class="button">GO BACK</a>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
|
|
<script src="./res/rcc.js"></script>
|
|
|
|
<script src="../res/js/jquery-2.1.4.min.js"></script>
|
|
|
|
<script src="./res/delete.js"></script>
|
|
|
|
<script src="./res/edit.js"></script>
|
|
|
|
<script src="./res/atom.js"></script>
|
2015-12-06 15:19:16 +01:00
|
|
|
</body>
|
2015-06-16 16:16:51 +02:00
|
|
|
</html>
|