Merge branch 'release-1.4.4' into stable

This commit is contained in:
Marcel Kapfer (mmk2410) 2016-06-03 16:45:54 +02:00
commit 1d79aa4c21
15 changed files with 633 additions and 43 deletions

2
.gitignore vendored
View file

@ -1,5 +1,5 @@
nbproject/ nbproject/
.idea/ .idea/
completer.hist completer.hist
feed/ /feed/
node_modules/ node_modules/

View file

@ -4,8 +4,18 @@
- [B] = beta release - [B] = beta release
- [D] = development release - [D] = development release
- [S] release are always compared to the previous [S] release. - [S] release are always compared to the previous [S] release.
## Version 1.4.4 (2016-06-03) [S]
- **[FIX]** Error when trying to create a feed
## Version 1.4.3 (2016-05-21) [S]
- **[FIX]** Missing space in drawer between "Blogs on" and blogname
- **[FIX]** Background layer was not removed if drawer was closed
- **[FEATURE]** nextDESIGN theme added to delivered themes
- **[NOTE]** The update script to 1.4.3 works with 1.4.0, 1.4.1 and 1.4.2
## Version 1.4.2 (2016-05-18) [S] ## Version 1.4.2 (2016-05-18) [S]
- [FIX]: Password verification not implemented in RCC login page - [FIX]: Password verification not implemented in RCC login page

View file

@ -2,13 +2,8 @@
This is the Blog of the Blog Engine **Rangitaki** This is the Blog of the Blog Engine **Rangitaki**
Rangitaki is based on PHP, XML and Markdown. It is easy to install and to configure. Rangitaki is based on PHP and Markdown. It is easy to install and to configure.
The latest Version of the 0.2 series is **0.2.2** The latest version of Rangitaki is 1.4.3.
The latest Version of the development stream isn' ready yet. You can find the source code on [GitLab](https://gitlab.com/mmk2410/rangitaki).
** !IMPORTANT! Please read [this](index.php?article=About-the-Future-of-pBlog) for more information about the different versions of pBlog.**
You can find the source code on [GitHub](https://github.com/mmk2410/Rangitaki).

View file

@ -9,7 +9,7 @@ blog:
intro: 'on' intro: 'on'
disqus: rangitaki disqus: rangitaki
analytics: '' analytics: ''
footer: "Rangitaki 2016 <a href=\"https://github.com/mmk2410/Rangitaki\" target=\"blank\">\n github.com/mmk2410/Rangitaki</a>" footer: "Rangitaki 2016 <a href=\"https://gitlab.com/mmk2410/rangitaki\" target=\"blank\">\n gitlab.com/mmk2410/rangitaki</a>"
url: 'https://example.com/blog/' url: 'https://example.com/blog/'
design: design:
fab: 'on' fab: 'on'

View file

@ -183,7 +183,7 @@ if ($config["design"]["drawer"] == "on") {
echo "<section>"; echo "<section>";
// 1. Set localized string 2. Set blogtitle // 1. Set localized string 2. Set blogtitle
echo "<div class='nav-item-static'>" . echo "<div class='nav-item-static'>" .
$BLOGLANG['Blogs on'] . $config["blog"]["title"] . $BLOGLANG['Blogs on'] . " " . $config["blog"]["title"] .
":</div>"; ":</div>";
// iterating through the blogs/ directory // iterating through the blogs/ directory
foreach ($blogs as $navblog) { foreach ($blogs as $navblog) {

View file

@ -1,6 +1,6 @@
{ {
"name": "rangitaki", "name": "rangitaki",
"version": "1.4.2", "version": "1.4.4",
"description": "A simple PHP blogging engine without any database dependencies", "description": "A simple PHP blogging engine without any database dependencies",
"main": "index.php", "main": "index.php",
"scripts": { "scripts": {

View file

@ -6,13 +6,13 @@
* @package Rcc * @package Rcc
* @author Marcel Kapfer (mmk2410) <marcelmichaelkapfer@yahoo.co.nz> * @author Marcel Kapfer (mmk2410) <marcelmichaelkapfer@yahoo.co.nz>
* @license MIT License * @license MIT License
* @link https://github.com/mmk2410/rangitaki * @link https://gitlab.com/mmk2410/rangitaki
* *
* Feed Generator * Feed Generator
* *
* The MIT License * The MIT License
* *
* Copyright 2015 mmk2410. * Copyright 2015 - 2016 (c) mmk2410.
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
@ -36,27 +36,35 @@
date_default_timezone_set('UTC'); date_default_timezone_set('UTC');
require "../../vendor/autoload.php"; require "../../vendor/autoload.php";
require_once "../../config.php"; require "../../res/php/Config.php";
require_once "../../res/php/ArticleGenerator.php"; require_once "../../res/php/ArticleGenerator.php";
use PicoFeed\Syndication\Atom; use PicoFeed\Syndication\AtomFeedBuilder;
use PicoFeed\Syndication\AtomItemBuilder;
use \mmk2410\rbe\config\Config as Config;
$config = new Config('../../config.yaml', '../../vendor/autoload.php');
$settings = $config->getConfig();
include '../ssl.php';
session_start(); session_start();
if ($_SESSION['login']) { if ($_SESSION['login']) {
$art_dir = "./../../articles/" . $_GET['blog'] . "/"; $art_dir = "./../../articles/" . $_GET['blog'] . "/";
$feed_path = "./../../feed/" . $_GET['blog'] . ".atom"; $feed_path = "./../../feed/" . $_GET['blog'] . ".atom";
$writer = new Atom(); if ($_GET['blog'] == "main") {
$blogtitle = $settings['blog']['title'];
} else {
$blogtitl = $settings['blog']['title'] . " - " . ucwords($_GET['blog']);
}
$writer->title = $blogtitle; $feedBuilder = AtomFeedBuilder::create()
$writer->site_url = $blogurl; ->withTitle($blogtitle)
$writer->feed_url = $blogurl . "/feed/" . $_GET['blog'] . ".atom"; ->withAuthor($settings['blog']['author'])
$writer->author = array( ->withFeedUrl($settings['blog']['url'] . "/feed/" . $_GET['blog'] . ".atom")
'name' => $blogauthor, ->withSiteUrl($settings['blog']['url'])
'url' => $blogurl, ->withDate(new DateTime(date(DATE_ATOM)));
'email' => ''
);
$articles = scandir($art_dir, 1); $articles = scandir($art_dir, 1);
@ -71,25 +79,45 @@ if ($_SESSION['login']) {
$text = Parsedown::instance() $text = Parsedown::instance()
->setBreaksEnabled(true)// with linebreaks ->setBreaksEnabled(true)// with linebreaks
->text($file); ->text($file);
$writer->items[] = array( if (new DateTime(date(DATE_ATOM, strtotime($datestring))) != null) {
'title' => ArticleGenerator::getTitle($art_dir, $article), $date = new DateTime(
'updated' => strtotime( date(
ArticleGenerator::getDate($art_dir . $article) DATE_ATOM,
), strtotime($datestring)
'url' => $blogurl . "./?article=" . )
substr($article, 0, strlen($article) - 3), );
'summary'=> ArticleGenerator::getSummary( } else {
$art_dir, $article $date = new DateTime(date(DATE_ATOM));
), }
'content' => $text $date = new DateTime(date(DATE_ATOM));
); $feedBuilder
->withItem(AtomItemBuilder::create($feedBuilder)
->withTitle(
ArticleGenerator::getTitle($art_dir, $article)
)
->withUrl(
$settings['blog']['url'] . "./?article=" . substr($article, 0, strlen($article) - 3)
)
->withAuthor(
ArticleGenerator::getAuthor($art_dir, $article)
)
->withPublishedDate(
parseDate(ArticleGenerator::getDate($art_dir, $article))
)
->withUpdatedDate(
parseDate(ArticleGenerator::getDate($art_dir, $article))
)
->withSummary(
ArticleGenerator::getSummary($art_dir, $article)
)
->withContent($text));
$amount += 1; $amount += 1;
} }
} }
} }
$feed = $writer->execute(); $feed = $feedBuilder->build();
$file = fopen($feed_path, "w"); $file = fopen($feed_path, "w");
@ -102,4 +130,19 @@ if ($_SESSION['login']) {
echo "0"; echo "0";
} }
?>
function parseDate($datestring)
{
$datetime = new DateTime(date(DATE_ATOM));
try {
$datetime = new DateTime(
date(
DATE_ATOM,
strtotime($datestring)
)
);
} catch (Exception $e) {
$datetime = new DateTime(date(DATE_ATOM));
}
return $datetime;
}

View file

@ -3,7 +3,7 @@
// License: MIT License // License: MIT License
// SSL Verification // SSL Verification
if ($settings["rcc"]["debug"] != "on") { if (isset($settings["rcc"]["debug"]) && $settings["rcc"]["debug"] != "on") {
if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") { if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") {
header('HTTP/1.1 400 Bad Request'); header('HTTP/1.1 400 Bad Request');
exit(); exit();

View file

@ -1 +1 @@
(function(){var n,t,a,e,r;e=function(){var e,i;return e=!1,$(".fabmenu").click(function(){return e?(a(),e=!1):(t(),e=!0)}),i=!1,$(".nav-img, .overlay, .nav-close").click(function(){return i?(n(),i=!1):(r(),i=!0)}),$(document).keyup(function(t){return i&&27===t.which?(n(),i=!1):i||77!==t.which?void 0:(r(),i=!0)}),$(".articletext a").attr("target","_blank")},$(document).ready(e),t=function(){return $(".subfab").fadeIn(125),$(".fab-img").fadeOut(60,function(){return $(".fab-img").attr("src","./res/img/close.svg"),$(".fab-img").fadeIn(60)})},a=function(){return $(".subfab").fadeOut(125),$(".fab-img").fadeOut(60,function(){return $(".fab-img").attr("src","./res/img/share.svg"),$(".fab-img").fadeIn(60)})},r=function(){return $(".nav").animate({left:"0px"},125),$(".overlay").show(),$(".overlay").animate({opacity:"0.4"},125)},n=function(){return $(".nav").animate({left:"-301px"},125),$(".overlay").animate({opacity:"0.0"},125,function(){return $(".overlay").hide})}}).call(this); (function(){var n,t,a,e,r;e=function(){var e,i;return e=!1,$(".fabmenu").click(function(){return e?(a(),e=!1):(t(),e=!0)}),i=!1,$(".nav-img, .overlay, .nav-close").click(function(){return i?(n(),i=!1):(r(),i=!0)}),$(document).keyup(function(t){return i&&27===t.which?(n(),i=!1):i||77!==t.which?void 0:(r(),i=!0)}),$(".articletext a").attr("target","_blank")},$(document).ready(e),t=function(){return $(".subfab").fadeIn(125),$(".fab-img").fadeOut(60,function(){return $(".fab-img").attr("src","./res/img/close.svg"),$(".fab-img").fadeIn(60)})},a=function(){return $(".subfab").fadeOut(125),$(".fab-img").fadeOut(60,function(){return $(".fab-img").attr("src","./res/img/share.svg"),$(".fab-img").fadeIn(60)})},r=function(){return $(".nav").animate({left:"0px"},125),$(".overlay").show(),$(".overlay").animate({opacity:"0.4"},125)},n=function(){return $(".nav").animate({left:"-301px"},125),$(".overlay").animate({opacity:"0.0"},125,function(){return $(".overlay").css({display:"none"})})}}).call(this);

View file

@ -84,4 +84,4 @@ openNav = () ->
closeNav = () -> closeNav = () ->
$('.nav').animate {"left": "-301px"}, 125 $('.nav').animate {"left": "-301px"}, 125
$('.overlay').animate {"opacity": "0.0"}, 125, -> $('.overlay').animate {"opacity": "0.0"}, 125, ->
$('.overlay').hide $('.overlay').css {"display": "none"}

View file

@ -0,0 +1,194 @@
/*
*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.
/*
* Created on : Jun 18, 2015, 6:39:37 PM
* Author : mmk2410
$font: "Fira Sans", sans-serif
$background: #f0f0f0
$text-color: #383838
$primary-color: #4CAF50
$header-shadow: rgba(62, 62, 62, 0.45)
$white: #FFFFFF
$fadeout-color: rgba(30, 87, 153, 0)
$border: #e0e0e0
$active-color: #e2e2e2
$fab-shadow: rgba(62, 62, 62, 0.3)
$footer-background: #2D2D2D
body
font-family: $font
background: $background
color: $text-color
margin: 130px 0 0
::selection, ::-moz-selection
color: $background
background-color: $primary-color
.header
height: 55px
background-color: $primary-color
position: fixed
box-shadow: 2px 0 2px 2px $header-shadow
.title
line-height: 55px
color: $white
position: absolute
left: 0
margin-left: calc(20% + 24px)
> a
color: $white
text-decoration: none
.fadeout
height: 55px
background: -moz-linear-gradient(left, $fadeout-color 0%, $primary-color 100%)
background: -webkit-linear-gradient(left, $fadeout-color 0%, $primary-color 100%)
background: -o-linear-gradient(left, $fadeout-color 0%, $primary-color 100%)
background: -ms-linear-gradient(left, $fadeout-color 0%, $primary-color 100%)
background: linear-gradient(to right, $fadeout-color 0%, $primary-color 100%)
.nav-img
padding: 14px 19px
.nav
background-color: $white
border-right: 1px solid $border
.nav-item, .nav-item-static
color: $text-color
.nav-item
font-weight: 600
&:hover
color: $primary-color
&:active
background-color: $active-color
.divider
border-bottom: 1px solid $border
.card
background: none
border-radius: 0
box-shadow: none
margin: 0 20% 100px
width: auto
a
color: $primary-color
text-decoration: none
border-bottom: 1px solid transparent
transition: border-bottom-color 150ms ease-in-out 100ms
&:hover
border-bottom-color: #4CAF50
.headline
font-size: 30px
line-height: 50px
color: #383838 !important
text-decoration: none
border-bottom: none !important
&:hover
color: #4CAF50 !important
.date
font-size: 13px
.articletext
margin-top: 30px
font-size: 16px
line-height: 30px
.author, .tag
font-size: 13px
.fab
background-color: $primary-color
box-shadow: 0 1px 1.5px 1.5px $fab-shadow
.subfab
background-color: $white
box-shadow: 0 1px 1.5px 1.5px $fab-shadow
.button
color: $primary-color
border-bottom: 1px solid transparent
margin: 0
min-width: 0
padding: 0
line-height: 16px
height: 16px
transition-property: border-bottom-color
transition-delay: 50ms
transition-duration: 125ms
transition-timing-function: ease
-moz-transition-property: border-bottom-color
-moz-transition-delay: 50ms
-moz-transition-duration: 125ms
-moz-transition-timing-function: ease
-webkit-transition-property: border-bottom-color
-webkit-transition-delay: 50ms
-webkit-transition-duration: 125ms
-webkit-transition-timing-function: ease
&:hover
border-bottom-color: $primary-color
.pag_prev
float: left
.button:last-child
float: none
.footer
text-align: center
height: 60px
background-color: $footer-background
line-height: 60px
width: 100%
color: $white
a
color: $white
text-decoration: none
border-bottom: 1px solid transparent
&:hover
border-bottom-color: $white
.hljs
background: none
@media screen and (min-width: 1440px)
.title
margin-left: calc(20% - 40px)
.nav
padding-top: 55px
@media screen and (max-width: 800px)
body
margin-top: 80px
.title
margin-left: 20%
.card
margin: 0 5% 100px

207
themes/nextDESIGN.css Normal file
View file

@ -0,0 +1,207 @@
body {
font-family: "Fira Sans", sans-serif;
background: #f0f0f0;
color: #383838;
margin: 130px 0 0
}
::selection, ::-moz-selection {
color: #f0f0f0;
background-color: #4CAF50
}
.header {
height: 55px;
background-color: #4CAF50;
position: fixed;
box-shadow: 2px 0 2px 2px rgba(62, 62, 62, 0.45)
}
.title {
line-height: 55px;
color: #fff;
position: absolute;
left: 0;
margin-left: calc(20% + 24px)
}
.title > a {
color: #fff;
text-decoration: none
}
.fadeout {
height: 55px;
background: -moz-linear-gradient(left, rgba(30, 87, 153, 0) 0%, #4CAF50 100%);
background: -webkit-linear-gradient(left, rgba(30, 87, 153, 0) 0%, #4CAF50 100%);
background: -o-linear-gradient(left, rgba(30, 87, 153, 0) 0%, #4CAF50 100%);
background: -ms-linear-gradient(left, rgba(30, 87, 153, 0) 0%, #4CAF50 100%);
background: linear-gradient(to right, rgba(30, 87, 153, 0) 0%, #4CAF50 100%)
}
.nav-img {
padding: 14px 19px
}
.nav {
background-color: #fff;
border-right: 1px solid #e0e0e0
}
.nav-item, .nav-item-static {
color: #383838
}
.nav-item {
font-weight: 600
}
.nav-item:hover {
color: #4CAF50
}
.nav-item:active {
background-color: #e2e2e2
}
.divider {
border-bottom: 1px solid #e0e0e0
}
.card {
background: none;
border-radius: 0;
box-shadow: none;
margin: 0 20% 100px;
width: auto
}
.card a {
color: #4CAF50;
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-bottom-color 150ms ease-in-out 100ms
}
.card a:hover {
border-bottom-color: #4CAF50
}
.headline {
font-size: 30px;
line-height: 50px;
color: #383838 !important;
text-decoration: none;
border-bottom: none !important
}
.headline:hover {
color: #4CAF50 !important
}
.date {
font-size: 13px
}
.articletext {
margin-top: 30px;
font-size: 16px;
line-height: 30px
}
.author, .tag {
font-size: 13px
}
.fab {
background-color: #4CAF50;
box-shadow: 0 1px 1.5px 1.5px rgba(62, 62, 62, 0.3)
}
.subfab {
background-color: #fff;
box-shadow: 0 1px 1.5px 1.5px rgba(62, 62, 62, 0.3)
}
.button {
color: #4CAF50;
border-bottom: 1px solid transparent;
margin: 0;
min-width: 0;
padding: 0;
line-height: 16px;
height: 16px;
transition-property: border-bottom-color;
transition-delay: 50ms;
transition-duration: 125ms;
transition-timing-function: ease;
-moz-transition-property: border-bottom-color;
-moz-transition-delay: 50ms;
-moz-transition-duration: 125ms;
-moz-transition-timing-function: ease;
-webkit-transition-property: border-bottom-color;
-webkit-transition-delay: 50ms;
-webkit-transition-duration: 125ms;
-webkit-transition-timing-function: ease
}
.button:hover {
border-bottom-color: #4CAF50
}
.pag_prev {
float: left
}
.button:last-child {
float: none
}
.footer {
text-align: center;
height: 60px;
background-color: #2D2D2D;
line-height: 60px;
width: 100%;
color: #fff
}
.footer a {
color: #fff;
text-decoration: none;
border-bottom: 1px solid transparent
}
.footer a:hover {
border-bottom-color: #fff
}
.hljs {
background: none
}
@media screen and (min-width: 1440px) {
.title {
margin-left: calc(20% - 40px)
}
.nav {
padding-top: 55px
}
}
@media screen and (max-width: 800px) {
body {
margin-top: 80px
}
.title {
margin-left: 20%
}
.card {
margin: 0 5% 100px
}
}
/*# sourceMappingURL=nextDESIGN.css.map */

12
themes/nextDESIGN.css.map Normal file

File diff suppressed because one or more lines are too long

78
update-scripts/1-4-2_1-4-3.sh Executable file
View file

@ -0,0 +1,78 @@
#!/bin/bash
# Update script for Rangitaki from version 1.4.2 to 1.4.3
# Also works from 1.4.0 to 1.4.3
version="1.4.3"
new="./rbe-new"
echo -n "Downloading version $version from GitLab... "
git clone -q https://gitlab.com/mmk2410/rangitaki.git "$new"
if [[ $1 == "--debug" ]]; then
cd $new
git checkout -q master
cd ../
fi
echo "done"
echo -n "Updating ressources... "
rm -rf ./res/
mv $new/res/ ./
echo "done"
echo -n "Updating source files... "
rm ./src/coffee/app.coffee
mv $new/src/coffee/app.coffee ./src/coffee/
mv $new/src/sass-themes/nextDESIGN.sass ./src/sass-themes/
echo "done"
echo -n "Updating RCC... "
rm -rf ./rcc
mv $new/rcc ./
rm ./rcc/password.php
echo "done"
echo -n "Updating core... "
rm ./index.php
mv $new/index.php ./
echo "done"
echo -n "Updating binaries... "
rm -rf ./bin
mv $new/bin/ ./
echo "done"
echo -n "Updating themes... "
rm ./themes/material-light.css*
rm ./themes/material-dark.css*
rm ./themes/background-img.css*
mv $new/themes/* ./themes/
echo "done"
echo -n "Updating npm... "
mv $new/package.json ./
echo "done"
echo -n "Updating Changelog... "
if [ -f ./CHANGELOG.txt ]; then
rm CHANGELOG.txt
fi
mv $new/CHANGELOG.md ./
echo "done"
echo -n "Cleaning up... "
if [[ $1 != "--debug" ]]; then
echo -n "Cleaning up... "
rm -rf $new
echo "done"
fi
if [ -d "./update-scripts" ]; then
echo -n "Remove obsolete update scripts folder... "
rm -rf "./update-scripts"
echo "done"
fi
echo "Your Rangitaki installation is updated to version $version"

51
update-scripts/1-4-3_1-4-4.sh Executable file
View file

@ -0,0 +1,51 @@
#!/bin/bash
# Update script for Rangitaki from version 1.4.3 to 1.4.4
version="1.4.4"
new="./rbe-new"
echo -n "Downloading version $version from GitLab... "
git clone -q https://gitlab.com/mmk2410/rangitaki.git "$new"
if [[ $1 == "--debug" ]]; then
cd $new
git checkout -q master
cd ../
fi
echo "done"
echo -n "Updating RCC... "
mv ./rcc/password.php ./password.php
rm -rf ./rcc/
mv $new/rcc ./
rm ./rcc/password.php
mv ./password.php ./rcc/password.php
echo "done"
echo -n "Updating npm... "
mv $new/package.json ./
echo "done"
echo -n "Updating Changelog... "
if [ -f ./CHANGELOG.txt ]; then
rm CHANGELOG.txt
fi
mv $new/CHANGELOG.md ./
echo "done"
echo -n "Cleaning up... "
if [[ $1 != "--debug" ]]; then
echo -n "Cleaning up... "
rm -rf $new
echo "done"
fi
if [ -d "./update-scripts" ]; then
echo -n "Remove obsolete update scripts folder... "
rm -rf "./update-scripts"
echo "done"
fi
echo "Your Rangitaki installation is updated to version $version"