Merge pull request #6 from dignajar/master

Merge update from dignajar
This commit is contained in:
Ethan Chen 2015-11-05 20:49:48 +08:00
commit 2fed9ccec9
53 changed files with 639 additions and 239 deletions

View File

@ -1,9 +1,10 @@
[Bludit](http://www.bludit.com/) — Flat file CMS [Bludit](http://www.bludit.com/) — Flat file CMS
================================================ ================================================
Create your own Blog in seconds.
Bludit is a fast, simple, extensible and Flat file CMS. Fast, simple, extensible and Flat file CMS.
- [Documentation](http://docs.bludit.com/en/) - [Documentation](http://docs.bludit.com)
- [Help and Support](http://forum.bludit.com) - [Help and Support](http://forum.bludit.com)
- [Plugins](https://github.com/dignajar/bludit-plugins) - [Plugins](https://github.com/dignajar/bludit-plugins)
- [Themes](https://github.com/dignajar/bludit-themes) - [Themes](https://github.com/dignajar/bludit-themes)
@ -16,23 +17,26 @@ Social
- [Facebook](https://www.facebook.com/bluditcms) - [Facebook](https://www.facebook.com/bluditcms)
- [Google+](https://plus.google.com/+Bluditcms) - [Google+](https://plus.google.com/+Bluditcms)
[![Join the chat at https://gitter.im/dignajar/bludit](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dignajar/bludit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Requirements Requirements
------------ ------------
You only need a Webserver with PHP support. You only need a web server with PHP support.
- PHP 5.3 or higher. - PHP 5.3 or higher.
- PHP module [mbstring](http://php.net/manual/en/book.mbstring.php) for full UTF-8 support. - PHP [mbstring](http://php.net/manual/en/book.mbstring.php) module for full UTF-8 support.
- Webserver: - Webserver:
* Apache with module [mod_rewrite](http://httpd.apache.org/docs/current/mod/mod_rewrite.html) * Apache with [mod_rewrite](http://httpd.apache.org/docs/current/mod/mod_rewrite.html) module.
* Nginx with module [ngx_http_rewrite_module](http://nginx.org/en/docs/http/ngx_http_rewrite_module.html) * Lighttpd with [mod_rewrite](http://redmine.lighttpd.net/projects/1/wiki/docs_modrewrite) module.
* Nginx with [ngx_http_rewrite_module](http://nginx.org/en/docs/http/ngx_http_rewrite_module.html) module.
Installation guide Installation guide
------------------ ------------------
1. Download the latest version from http://www.bludit.com/bludit_latest.zip 1. Download the latest version from http://www.bludit.com/bludit_latest.zip
2. Extract the zip file into a directory like `bludit`. 2. Extract the zip file into a directory like `bludit`.
3. Upload the directory `bludit` on your hosting. 3. Upload the directory `bludit` to your hosting server.
4. Done! 4. Done!
License License

View File

@ -110,6 +110,10 @@ button.delete-button:hover {
z-index: 100; z-index: 100;
} }
#jscontent {
height: 400px;
}
/* ----------- LOGIN FORM ----------- */ /* ----------- LOGIN FORM ----------- */
div.login-box > h1 { div.login-box > h1 {

View File

@ -0,0 +1,2 @@
/*! UIkit 2.23.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
.uk-form-file{display:inline-block;vertical-align:middle;position:relative;overflow:hidden}.uk-form-file input[type=file]{position:absolute;top:0;z-index:1;width:100%;opacity:0;cursor:pointer;left:0;font-size:500px}

View File

@ -1,2 +0,0 @@
/*! UIkit 2.23.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
.uk-form-password{display:inline-block;position:relative;max-width:100%}.uk-form-password-toggle{display:block;position:absolute;top:50%;right:10px;margin-top:-6px;font-size:13px;line-height:13px;color:#999}.uk-form-password-toggle:hover{color:#999;text-decoration:none}.uk-form-password>input{padding-right:50px!important}

View File

@ -0,0 +1,2 @@
/*! UIkit 2.23.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
.uk-placeholder{margin-bottom:15px;padding:15px;border:1px dashed #ddd;background:#fafafa;color:#444}*+.uk-placeholder{margin-top:15px}.uk-placeholder>:last-child{margin-bottom:0}.uk-placeholder-large{padding-top:80px;padding-bottom:80px}

View File

@ -0,0 +1,2 @@
/*! UIkit 2.23.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
.uk-progress{box-sizing:border-box;height:20px;margin-bottom:15px;background:#eee;overflow:hidden;line-height:20px}*+.uk-progress{margin-top:15px}.uk-progress-bar{width:0;height:100%;background:#00a8e6;float:left;-webkit-transition:width .6s ease;transition:width .6s ease;font-size:12px;color:#fff;text-align:center}.uk-progress-mini{height:6px}.uk-progress-small{height:12px}.uk-progress-success .uk-progress-bar{background-color:#8cc14c}.uk-progress-warning .uk-progress-bar{background-color:#faa732}.uk-progress-danger .uk-progress-bar{background-color:#da314b}.uk-progress-striped .uk-progress-bar{background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:30px 30px}.uk-progress-striped.uk-active .uk-progress-bar{-webkit-animation:uk-progress-bar-stripes 2s linear infinite;animation:uk-progress-bar-stripes 2s linear infinite}@-webkit-keyframes uk-progress-bar-stripes{0%{background-position:0 0}100%{background-position:30px 0}}@keyframes uk-progress-bar-stripes{0%{background-position:0 0}100%{background-position:30px 0}}

View File

@ -0,0 +1,2 @@
/*! UIkit 2.23.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
.uk-dragover{box-shadow:0 0 20px rgba(100,100,100,.3)}

View File

@ -15,11 +15,16 @@
<link rel="stylesheet" type="text/css" href="./css/uikit.almost-flat.min.css?version=<?php echo BLUDIT_VERSION ?>"> <link rel="stylesheet" type="text/css" href="./css/uikit.almost-flat.min.css?version=<?php echo BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="./css/default.css?version=<?php echo BLUDIT_VERSION ?>"> <link rel="stylesheet" type="text/css" href="./css/default.css?version=<?php echo BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="./css/jquery.datetimepicker.css?version=<?php echo BLUDIT_VERSION ?>"> <link rel="stylesheet" type="text/css" href="./css/jquery.datetimepicker.css?version=<?php echo BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="./css/upload.min.css?version=<?php echo BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="./css/form-file.min.css?version=<?php echo BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="./css/placeholder.min.css?version=<?php echo BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="./css/progress.min.css?version=<?php echo BLUDIT_VERSION ?>">
<!-- Javascript --> <!-- Javascript -->
<script charset="utf-8" src="./js/jquery.min.js?version=<?php echo BLUDIT_VERSION ?>"></script> <script charset="utf-8" src="./js/jquery.min.js?version=<?php echo BLUDIT_VERSION ?>"></script>
<script charset="utf-8" src="./js/uikit.min.js?version=<?php echo BLUDIT_VERSION ?>"></script> <script charset="utf-8" src="./js/uikit.min.js?version=<?php echo BLUDIT_VERSION ?>"></script>
<script charset="utf-8" src="./js/jquery.datetimepicker.js?version=<?php echo BLUDIT_VERSION ?>"></script> <script charset="utf-8" src="./js/jquery.datetimepicker.js?version=<?php echo BLUDIT_VERSION ?>"></script>
<script charset="utf-8" src="./js/upload.min.js?version=<?php echo BLUDIT_VERSION ?>"></script>
<!-- Plugins --> <!-- Plugins -->
<?php Theme::plugins('adminHead') ?> <?php Theme::plugins('adminHead') ?>

View File

@ -125,4 +125,78 @@ class HTML {
$html = ''; $html = '';
} }
public static function uploader()
{
global $L;
$html = '
<div id="upload-drop" class="uk-placeholder uk-text-center">
<i class="uk-icon-cloud-upload uk-icon-medium uk-text-muted uk-margin-small-right"></i>'.$L->g('Upload Image').'<br><a class="uk-form-file">'.$L->g('Drag and drop or click here').'<input id="upload-select" type="file"></a>
</div>
<div id="progressbar" class="uk-progress uk-hidden">
<div class="uk-progress-bar" style="width: 0%;">0%</div>
</div>
';
$html .= '<select id="jsimageList" class="uk-width-1-1" size="10">';
$imagesList = Filesystem::listFiles(PATH_UPLOADS,'*','*',true);
foreach($imagesList as $file) {
$html .= '<option value="">'.basename($file).'</option>';
}
$html .= '</select>';
$html .= '
<div class="uk-form-row uk-margin-top">
<button id="jsaddImage" class="uk-button uk-button-primary" type="button"><i class="uk-icon-angle-double-left"></i> '.$L->g('Insert Image').'</button>
</div>
';
$html .= '
<script>
$(document).ready(function() {
$("#jsaddImage").on("click", function() {
var filename = $("#jsimageList option:selected").text();
var textareaValue = $("#jscontent").val();
$("#jscontent").val(textareaValue + "<img src=\""+filename+"\" alt=\"\">" + "\n");
});
$(function()
{
var progressbar = $("#progressbar");
var bar = progressbar.find(".uk-progress-bar");
var settings =
{
type: "json",
action: "'.HTML_PATH_ADMIN_ROOT.'ajax/uploader",
allow : "*.(jpg|jpeg|gif|png)",
loadstart: function() {
bar.css("width", "0%").text("0%");
progressbar.removeClass("uk-hidden");
},
progress: function(percent) {
percent = Math.ceil(percent);
bar.css("width", percent+"%").text(percent+"%");
},
allcomplete: function(response) {
bar.css("width", "100%").text("100%");
setTimeout(function() { progressbar.addClass("uk-hidden"); }, 250);
$("#jsimageList").prepend("<option value=\'"+response.filename+"\' selected=\'selected\'>"+response.filename+"</option>");
}
};
var select = UIkit.uploadSelect($("#upload-select"), settings);
var drop = UIkit.uploadDrop($("#upload-drop"), settings);
});
});
</script>';
echo $html;
}
} }

View File

@ -1,2 +0,0 @@
/*! UIkit 2.23.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var i;window.UIkit&&(i=t(UIkit)),"function"==typeof define&&define.amd&&define("uikit-form-password",["uikit"],function(){return i||t(UIkit)})}(function(t){"use strict";return t.component("formPassword",{defaults:{lblShow:"Show",lblHide:"Hide"},boot:function(){t.$html.on("click.formpassword.uikit","[data-uk-form-password]",function(i){var e=t.$(this);e.data("formPassword")||(i.preventDefault(),t.formPassword(e,t.Utils.options(e.attr("data-uk-form-password"))),e.trigger("click"))})},init:function(){var t=this;this.on("click",function(i){if(i.preventDefault(),t.input.length){var e=t.input.attr("type");t.input.attr("type","text"==e?"password":"text"),t.element.html(t.options["text"==e?"lblShow":"lblHide"])}}),this.input=this.element.next("input").length?this.element.next("input"):this.element.prev("input"),this.element.html(this.options[this.input.is("[type='password']")?"lblShow":"lblHide"]),this.element.data("formPassword",this)}}),t.formPassword});

2
admin/themes/default/js/upload.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
/*! UIkit 2.23.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(e){var t;window.UIkit&&(t=e(UIkit)),"function"==typeof define&&define.amd&&define("uikit-upload",["uikit"],function(){return t||e(UIkit)})}(function(e){"use strict";function t(o,a){function r(t,n){var o=new FormData,a=new XMLHttpRequest;if(n.before(n,t)!==!1){for(var r,i=0;r=t[i];i++)o.append(n.param,r);for(var l in n.params)o.append(l,n.params[l]);a.upload.addEventListener("progress",function(e){var t=e.loaded/e.total*100;n.progress(t,e)},!1),a.addEventListener("loadstart",function(e){n.loadstart(e)},!1),a.addEventListener("load",function(e){n.load(e)},!1),a.addEventListener("loadend",function(e){n.loadend(e)},!1),a.addEventListener("error",function(e){n.error(e)},!1),a.addEventListener("abort",function(e){n.abort(e)},!1),a.open(n.method,n.action,!0),"json"==n.type&&a.setRequestHeader("Accept","application/json"),a.onreadystatechange=function(){if(n.readystatechange(a),4==a.readyState){var t=a.responseText;if("json"==n.type)try{t=e.$.parseJSON(t)}catch(o){t=!1}n.complete(t,a)}},n.beforeSend(a),a.send(o)}}if(!e.support.ajaxupload)return this;if(a=e.$.extend({},t.defaults,a),o.length){if("*.*"!==a.allow)for(var i,l=0;i=o[l];l++)if(!n(a.allow,i.name))return"string"==typeof a.notallowed?alert(a.notallowed):a.notallowed(i,a),void 0;var s=a.complete;if(a.single){var d=o.length,f=0,p=!0;a.beforeAll(o),a.complete=function(e,t){f+=1,s(e,t),a.filelimit&&f>=a.filelimit&&(p=!1),p&&d>f?r([o[f]],a):a.allcomplete(e,t)},r([o[0]],a)}else a.complete=function(e,t){s(e,t),a.allcomplete(e,t)},r(o,a)}}function n(e,t){var n="^"+e.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")+"$";return n="^"+n+"$",null!==t.match(new RegExp(n,"i"))}return e.component("uploadSelect",{init:function(){var e=this;this.on("change",function(){t(e.element[0].files,e.options);var n=e.element.clone(!0).data("uploadSelect",e);e.element.replaceWith(n),e.element=n})}}),e.component("uploadDrop",{defaults:{dragoverClass:"uk-dragover"},init:function(){var e=this,n=!1;this.on("drop",function(n){n.dataTransfer&&n.dataTransfer.files&&(n.stopPropagation(),n.preventDefault(),e.element.removeClass(e.options.dragoverClass),e.element.trigger("dropped.uk.upload",[n.dataTransfer.files]),t(n.dataTransfer.files,e.options))}).on("dragenter",function(e){e.stopPropagation(),e.preventDefault()}).on("dragover",function(t){t.stopPropagation(),t.preventDefault(),n||(e.element.addClass(e.options.dragoverClass),n=!0)}).on("dragleave",function(t){t.stopPropagation(),t.preventDefault(),e.element.removeClass(e.options.dragoverClass),n=!1})}}),e.support.ajaxupload=function(){function e(){var e=document.createElement("INPUT");return e.type="file","files"in e}function t(){var e=new XMLHttpRequest;return!!(e&&"upload"in e&&"onprogress"in e.upload)}function n(){return!!window.FormData}return e()&&t()&&n()}(),e.support.ajaxupload&&e.$.event.props.push("dataTransfer"),t.defaults={action:"",single:!0,method:"POST",param:"files[]",params:{},allow:"*.*",type:"text",filelimit:!1,before:function(){},beforeSend:function(){},beforeAll:function(){},loadstart:function(){},load:function(){},loadend:function(){},error:function(){},abort:function(){},progress:function(){},complete:function(){},allcomplete:function(){},readystatechange:function(){},notallowed:function(e,t){alert("Only the following file types are allowed: "+t.allow)}},e.Utils.xhrupload=t,t});

View File

@ -57,6 +57,7 @@ echo '<div class="uk-width-large-3-10">';
// Tabs, general and advanced mode // Tabs, general and advanced mode
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">'; echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';
echo '<li><a href="">'.$L->g('General').'</a></li>'; echo '<li><a href="">'.$L->g('General').'</a></li>';
echo '<li><a href="">'.$L->g('Images').'</a></li>';
echo '<li><a href="">'.$L->g('Advanced').'</a></li>'; echo '<li><a href="">'.$L->g('Advanced').'</a></li>';
echo '</ul>'; echo '</ul>';
@ -86,6 +87,13 @@ echo '<div class="uk-width-large-3-10">';
echo '</li>'; echo '</li>';
// ---- IMAGES TAB ----
echo '<li>';
HTML::uploader();
echo '</li>';
// ---- ADVANCED TAB ---- // ---- ADVANCED TAB ----
echo '<li>'; echo '<li>';

View File

@ -51,6 +51,7 @@ echo '<div class="uk-width-large-3-10">';
// Tabs, general and advanced mode // Tabs, general and advanced mode
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">'; echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';
echo '<li><a href="">'.$L->g('General').'</a></li>'; echo '<li><a href="">'.$L->g('General').'</a></li>';
echo '<li><a href="">'.$L->g('Images').'</a></li>';
echo '<li><a href="">'.$L->g('Advanced').'</a></li>'; echo '<li><a href="">'.$L->g('Advanced').'</a></li>';
echo '</ul>'; echo '</ul>';
@ -80,6 +81,13 @@ echo '<div class="uk-width-large-3-10">';
echo '</li>'; echo '</li>';
// ---- IMAGES TAB ----
echo '<li>';
HTML::uploader();
echo '</li>';
// ---- ADVANCED TAB ---- // ---- ADVANCED TAB ----
echo '<li>'; echo '<li>';

View File

@ -27,7 +27,7 @@ echo '
} }
echo '<tr>'; echo '<tr>';
echo '<td>'.($Page->parentKey()?NO_PARENT_CHAR:'').'<a href="'.HTML_PATH_ADMIN_ROOT.'edit-page/'.$Page->key().'">'.($Page->published()?'':'<span class="label-draft">'.$Language->g('Draft').'</span> ').($Page->title()?$Page->title():'<span class="label-empty-title">'.$Language->g('Empty title').'</span> ').'</a></td>'; echo '<td>'.($Page->parentKey()?'- ':'').'<a href="'.HTML_PATH_ADMIN_ROOT.'edit-page/'.$Page->key().'">'.($Page->published()?'':'<span class="label-draft">'.$Language->g('Draft').'</span> ').($Page->title()?$Page->title():'<span class="label-empty-title">'.$Language->g('Empty title').'</span> ').'</a></td>';
echo '<td>'.$parentTitle.'</td>'; echo '<td>'.$parentTitle.'</td>';
echo '<td class="uk-text-center">'.$Page->position().'</td>'; echo '<td class="uk-text-center">'.$Page->position().'</td>';
echo '<td><a target="_blank" href="'.$Page->permalink().'">'.$Url->filters('page').'/'.$Page->key().'</a></td>'; echo '<td><a target="_blank" href="'.$Page->permalink().'">'.$Url->filters('page').'/'.$Page->key().'</a></td>';

View File

@ -44,8 +44,10 @@ echo '<div class="uk-width-large-3-10">';
// Tabs, general and advanced mode // Tabs, general and advanced mode
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">'; echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';
echo '<li><a href="">'.$L->g('General').'</a></li>'; echo '<li><a href="">'.$L->g('General').'</a></li>';
echo '<li><a href="">'.$L->g('Images').'</a></li>';
echo '<li><a href="">'.$L->g('Advanced').'</a></li>'; echo '<li><a href="">'.$L->g('Advanced').'</a></li>';
echo '</ul>'; echo '</ul>';
echo '<ul id="tab-options" class="uk-switcher uk-margin">'; echo '<ul id="tab-options" class="uk-switcher uk-margin">';
// ---- GENERAL TAB ---- // ---- GENERAL TAB ----
@ -72,6 +74,13 @@ echo '<div class="uk-width-large-3-10">';
echo '</li>'; echo '</li>';
// ---- IMAGES TAB ----
echo '<li>';
HTML::uploader();
echo '</li>';
// ---- ADVANCED TAB ---- // ---- ADVANCED TAB ----
echo '<li>'; echo '<li>';

View File

@ -44,6 +44,7 @@ echo '<div class="uk-width-large-3-10">';
// Tabs, general and advanced mode // Tabs, general and advanced mode
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">'; echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';
echo '<li><a href="">'.$L->g('General').'</a></li>'; echo '<li><a href="">'.$L->g('General').'</a></li>';
echo '<li><a href="">Images</a></li>';
echo '<li><a href="">'.$L->g('Advanced').'</a></li>'; echo '<li><a href="">'.$L->g('Advanced').'</a></li>';
echo '</ul>'; echo '</ul>';
@ -73,6 +74,13 @@ echo '<div class="uk-width-large-3-10">';
echo '</li>'; echo '</li>';
// ---- IMAGES TAB ----
echo '<li>';
HTML::uploader();
echo '</li>';
// ---- ADVANCED TAB ---- // ---- ADVANCED TAB ----
echo '<li>'; echo '<li>';

View File

@ -2,7 +2,7 @@
HTML::title(array('title'=>$L->g('Users'), 'icon'=>'users')); HTML::title(array('title'=>$L->g('Users'), 'icon'=>'users'));
echo '<a href="'.HTML_PATH_ADMIN_ROOT.'add-user"><i class="uk-icon-plus"></i> Add new user</a>'; echo '<a href="'.HTML_PATH_ADMIN_ROOT.'add-user"><i class="uk-icon-plus"></i> '.$L->g('add-a-new-user').'</a>';
echo ' echo '
<table class="uk-table uk-table-striped"> <table class="uk-table uk-table-striped">

View File

@ -309,10 +309,10 @@ function install($adminPassword, $email, $timezoneOffset)
file_put_contents(PATH_DATABASES.'site.php', $dataHead.json_encode($data, JSON_PRETTY_PRINT), LOCK_EX); file_put_contents(PATH_DATABASES.'site.php', $dataHead.json_encode($data, JSON_PRETTY_PRINT), LOCK_EX);
// File users.php
$salt = getRandomString(); $salt = getRandomString();
$passwordHash = sha1($adminPassword.$salt); $passwordHash = sha1($adminPassword.$salt);
// File users.php
$data = array( $data = array(
'admin'=>array( 'admin'=>array(
'firstName'=>'', 'firstName'=>'',
@ -329,7 +329,11 @@ function install($adminPassword, $email, $timezoneOffset)
file_put_contents(PATH_DATABASES.'users.php', $dataHead.json_encode($data, JSON_PRETTY_PRINT), LOCK_EX); file_put_contents(PATH_DATABASES.'users.php', $dataHead.json_encode($data, JSON_PRETTY_PRINT), LOCK_EX);
// File security.php // File security.php
$randomKey = getRandomString();
$randomKey = sha1($randomKey);
$data = array( $data = array(
'key1'=>$randomKey,
'minutesBlocked'=>5, 'minutesBlocked'=>5,
'numberFailuresAllowed'=>10, 'numberFailuresAllowed'=>10,
'blackList'=>array() 'blackList'=>array()
@ -408,7 +412,7 @@ Content:
### '.$Language->get('Whats next').' ### '.$Language->get('Whats next').'
- '.$Language->get('Manage your Bludit from the admin panel').' - '.$Language->get('Manage your Bludit from the admin panel').'
- '.$Language->get('Follow Bludit on').' [Twitter](https://twitter.com/bludit) / [Facebook](https://www.facebook.com/pages/Bludit/239255789455913) / [Google+](https://plus.google.com/+Bluditcms) - '.$Language->get('Follow Bludit on').' [Twitter](https://twitter.com/bludit) / [Facebook](https://www.facebook.com/bluditcms) / [Google+](https://plus.google.com/+Bluditcms)
- '.$Language->get('Visit the support forum').' - '.$Language->get('Visit the support forum').'
- '.$Language->get('Read the documentation for more information').' - '.$Language->get('Read the documentation for more information').'
- '.$Language->get('Share with your friends and enjoy'); - '.$Language->get('Share with your friends and enjoy');
@ -424,9 +428,9 @@ function checkPOST($args)
global $Language; global $Language;
// Check empty password // Check empty password
if(empty($args['password'])) if( strlen($args['password']) < 6 )
{ {
return '<div>'.$Language->g('The password field is empty').'</div>'; return '<div>'.$Language->g('Password must be at least 6 characters long').'</div>';
} }
// Check invalid email // Check invalid email
@ -484,14 +488,12 @@ if( $_SERVER['REQUEST_METHOD'] == 'POST' )
<link rel="shortcut icon" type="image/x-icon" href="./img/favicon.png"> <link rel="shortcut icon" type="image/x-icon" href="./img/favicon.png">
<!-- CSS --> <!-- CSS -->
<link rel="stylesheet" type="text/css" href="./css/uikit.almost-flat.min.css"> <link rel="stylesheet" type="text/css" href="./css/uikit.almost-flat.min.css?version=<?php echo time() ?>">
<link rel="stylesheet" type="text/css" href="./css/installer.css"> <link rel="stylesheet" type="text/css" href="./css/installer.css?version=<?php echo time() ?>">
<link rel="stylesheet" type="text/css" href="./css/form-password.almost-flat.min.css">
<!-- Javascript --> <!-- Javascript -->
<script charset="utf-8" src="./js/jquery.min.js"></script> <script charset="utf-8" src="./js/jquery.min.js?version=<?php echo time() ?>"></script>
<script charset="utf-8" src="./js/uikit.min.js"></script> <script charset="utf-8" src="./js/uikit.min.js?version=<?php echo time() ?>"></script>
<script charset="utf-8" src="./js/form-password.min.js"></script>
</head> </head>
<body class="uk-height-1-1"> <body class="uk-height-1-1">

35
kernel/ajax/uploader.php Normal file
View File

@ -0,0 +1,35 @@
<?php header('Content-Type: application/json');
// Source
$source = $_FILES['files']['tmp_name'][0];
// Filename
$filename = Text::lowercase($_FILES['files']['name'][0]);
$fileExtension = pathinfo($filename, PATHINFO_EXTENSION);
$filename = pathinfo($filename, PATHINFO_FILENAME);
$filename = Text::replace(' ', '', $filename);
$filename = Text::replace('_', '', $filename);
if( file_exists(PATH_UPLOADS.$filename.'.'.$fileExtension) )
{
$number = 0;
$tmpName = $filename.'_'.$number.'.'.$fileExtension;
while(file_exists(PATH_UPLOADS.$tmpName)) {
$number++;
$tmpName = $filename.'_'.$number.'.'.$fileExtension;
}
}
if(empty($tmpName)) {
$tmpName = $filename.'.'.$fileExtension;
}
move_uploaded_file($source, PATH_UPLOADS.$tmpName);
exit(json_encode(array(
'status'=>0,
'filename'=>$tmpName,
'date'=>date("F d Y H:i:s.", filemtime(PATH_UPLOADS.$tmpName))
)));
?>

View File

@ -54,8 +54,8 @@ define('SALT_LENGTH', 8);
// Page brake string // Page brake string
define('PAGE_BREAK', '<!-- pagebreak -->'); define('PAGE_BREAK', '<!-- pagebreak -->');
// No parent character // No parent character, md5('No parent')
define('NO_PARENT_CHAR', ''); define('NO_PARENT_CHAR', '3849abb4cb7abd24c2d8dac17b216f17');
// Post per page on Manage->Posts // Post per page on Manage->Posts
define('POSTS_PER_PAGE_ADMIN', 10); define('POSTS_PER_PAGE_ADMIN', 10);

View File

@ -4,7 +4,10 @@
// Variables // Variables
// ============================================================================ // ============================================================================
// Array with all pages.
$pages = array(); $pages = array();
// Array with all pages, order by parent.
$pagesParents = array(NO_PARENT_CHAR=>array()); $pagesParents = array(NO_PARENT_CHAR=>array());
// ============================================================================ // ============================================================================
@ -33,12 +36,14 @@ function build_page($key)
// Page object, content from FILE. // Page object, content from FILE.
$Page = new Page($key); $Page = new Page($key);
if( !$Page->isValid() ) { if( !$Page->isValid() ) {
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying build the page from file with key: '.$key);
return false; return false;
} }
// Page database, content from DATABASE JSON. // Page database, content from DATABASE JSON.
$db = $dbPages->getDb($key); $db = $dbPages->getDb($key);
if( !$db ) { if( !$db ) {
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying build the page from database with key: '.$key);
return false; return false;
} }
@ -63,7 +68,6 @@ function build_page($key)
$user = $dbUsers->getDb( $Page->username() ); $user = $dbUsers->getDb( $Page->username() );
$Page->setField('authorFirstName', $user['firstName'], false); $Page->setField('authorFirstName', $user['firstName'], false);
$Page->setField('authorLastName', $user['lastName'], false); $Page->setField('authorLastName', $user['lastName'], false);
} }
@ -86,9 +90,12 @@ function build_all_pages()
if($Page!==false) if($Page!==false)
{ {
// --- Order pages by parents ---
// Generate all posible parents. // Generate all posible parents.
if( $Page->parentKey()===false ) if( $Page->parentKey()===false )
{ {
// Add the parent key in the dbPages
$dbPages->addParentKey($Page->key()); $dbPages->addParentKey($Page->key());
$pagesParents[NO_PARENT_CHAR][$Page->key()] = $Page; $pagesParents[NO_PARENT_CHAR][$Page->key()] = $Page;
@ -98,38 +105,36 @@ function build_all_pages()
$pagesParents[$Page->parentKey()][$Page->key()] = $Page; $pagesParents[$Page->parentKey()][$Page->key()] = $Page;
} }
// $pages array // --- All pages in 1 array ---
$pages[$Page->key()] = $Page; $pages[$Page->key()] = $Page;
} }
} }
// ======== Order pages ======== // ======== Sort pages ========
// DEBUG: No me gusta esta forma de ordenar $tmpNoParents = $pagesParents[NO_PARENT_CHAR];
unset($pagesParents[NO_PARENT_CHAR]);
// Order children // Sort children
$tmpPageWithParent = array();
foreach($pagesParents as $parentKey=>$childrenPages)
{
$tmpPageWithParent[$parentKey] = $childrenPages;
uasort($tmpPageWithParent[$parentKey], 'orderChildren');
}
// Sort parents
$tmp = array(); $tmp = array();
foreach($pagesParents as $parentKey=>$childrenPages) foreach($tmpNoParents as $parentKey=>$childrenPages)
{
$tmp[$parentKey] = $childrenPages;
uasort($tmp[$parentKey], 'orderChildren');
}
if(isset($tmp[NO_PARENT_CHAR]))
{
$tmpNoParents = $tmp[NO_PARENT_CHAR];
unset($tmp[NO_PARENT_CHAR]);
}
$pagesParents = $tmp;
// Order parents.
foreach($pagesParents as $parentKey=>$childrenPages)
{ {
// DEBUG: Workaround, Esto es un bug, cuando se usa el Cli mode
// DEBUG: Se genera un padre sin index.txt y adentro hay un hijo
if(isset($pages[$parentKey])) {
$tmp = orderParent($tmp, array($parentKey=>$childrenPages), $pages[$parentKey]->position()); $tmp = orderParent($tmp, array($parentKey=>$childrenPages), $pages[$parentKey]->position());
} }
}
$pagesParents = array(NO_PARENT_CHAR=>$tmpNoParents) + $tmp; $pagesParents = array(NO_PARENT_CHAR=>$tmp) + $tmpPageWithParent;
} }
// ============================================================================ // ============================================================================

View File

@ -20,7 +20,7 @@ Paginator::set('postPerPage', $postPerPage);
// Number of posts // Number of posts
Paginator::set('numberOfPosts', $numberOfPosts); Paginator::set('numberOfPosts', $numberOfPosts);
$numberOfPages = (int) ceil($numberOfPosts / $postPerPage) -1; $numberOfPages = (int) max(ceil($numberOfPosts / $postPerPage) -1, 0);
Paginator::set('numberOfPages', $numberOfPages); Paginator::set('numberOfPages', $numberOfPages);
$showOlder = $numberOfPages > $currentPage; $showOlder = $numberOfPages > $currentPage;

View File

@ -289,7 +289,7 @@ class dbPages extends dbJSON
return $newKey; return $newKey;
} }
// Return an array with all page's databases. // Return an array with all databases.
public function getAll() public function getAll()
{ {
return $this->db; return $this->db;
@ -320,6 +320,14 @@ class dbPages extends dbJSON
return $tmp; return $tmp;
} }
public function count()
{
$count = parent::count();
// DEBUG: Less than - 1 because the error page.
return $count - 1;
}
public function regenerateCli() public function regenerateCli()
{ {
$db = $this->db; $db = $this->db;

View File

@ -96,7 +96,7 @@ class dbPosts extends dbJSON
// Generate the database key. // Generate the database key.
$key = $this->generateKey($args['slug']); $key = $this->generateKey($args['slug']);
// The user is always the who is loggued. // The user is always who is loggued.
$args['username'] = Session::get('username'); $args['username'] = Session::get('username');
if( Text::isEmpty($args['username']) ) { if( Text::isEmpty($args['username']) ) {
return false; return false;

View File

@ -15,9 +15,9 @@ class Email {
<head> <head>
<title>BLUDIT</title> <title>BLUDIT</title>
</head> </head>
<body> <body style="background-color: #f1f1f1;">
<div style="margin: 0px auto; border: 1px solid #2672ec; padding: 10px; font-size: 14px;"> <div style="margin: 0px auto; padding: 10px; font-size: 14px; width: 70%; max-width: 600px;">
<div style="font-size: 26px; padding: 10px; background-color: #2672ec; color: #FFFFFF;">BLUDIT</div> <div style="font-size: 26px;">BLUDIT</div>
'.$args['message'].' '.$args['message'].'
</div> </div>
</body> </body>

View File

@ -16,7 +16,7 @@ class Filesystem {
return $directories; return $directories;
} }
public static function listFiles($path, $regex='*', $extension) public static function listFiles($path, $regex='*', $extension='*', $sortByDate=false)
{ {
$files = glob($path.$regex.'.'.$extension); $files = glob($path.$regex.'.'.$extension);
@ -24,6 +24,10 @@ class Filesystem {
return array(); return array();
} }
if($sortByDate) {
usort($files, create_function('$a,$b', 'return filemtime($b) - filemtime($a);'));
}
return $files; return $files;
} }

View File

@ -5,6 +5,7 @@ echo '<script>'.PHP_EOL;
echo 'var HTML_PATH_ROOT = "'.HTML_PATH_ROOT.'";'.PHP_EOL; echo 'var HTML_PATH_ROOT = "'.HTML_PATH_ROOT.'";'.PHP_EOL;
echo 'var HTML_PATH_ADMIN_ROOT = "'.HTML_PATH_ADMIN_ROOT.'";'.PHP_EOL; echo 'var HTML_PATH_ADMIN_ROOT = "'.HTML_PATH_ADMIN_ROOT.'";'.PHP_EOL;
echo 'var HTML_PATH_ADMIN_THEME = "'.HTML_PATH_ADMIN_THEME.'";'.PHP_EOL; echo 'var HTML_PATH_ADMIN_THEME = "'.HTML_PATH_ADMIN_THEME.'";'.PHP_EOL;
echo 'var HTML_PATH_UPLOADS = "'.HTML_PATH_UPLOADS.'";'.PHP_EOL;
echo 'var NO_PARENT_CHAR = "'.NO_PARENT_CHAR.'";'.PHP_EOL; echo 'var NO_PARENT_CHAR = "'.NO_PARENT_CHAR.'";'.PHP_EOL;

View File

@ -3,6 +3,7 @@
class Security extends dbJSON class Security extends dbJSON
{ {
private $dbFields = array( private $dbFields = array(
'key1'=>'Where we go we dont need roads',
'minutesBlocked'=>5, 'minutesBlocked'=>5,
'numberFailuresAllowed'=>10, 'numberFailuresAllowed'=>10,
'blackList'=>array() 'blackList'=>array()

View File

@ -3,8 +3,8 @@
{ {
"native": "Deutsch (Deutschland)", "native": "Deutsch (Deutschland)",
"english-name": "German", "english-name": "German",
"last-update": "2015-10-25", "last-update": "2015-10-30",
"author": "Edi", "author": "Edi Goetschel",
"email": "egoetschel@clickwork.ch", "email": "egoetschel@clickwork.ch",
"website": "http://www.clickwork.ch" "website": "http://www.clickwork.ch"
}, },
@ -117,7 +117,7 @@
"select-your-sites-language": "Sprache der Website.", "select-your-sites-language": "Sprache der Website.",
"select-a-timezone-for-a-correct": "Zeitzone für die richtige Anzeige des Datums und der Zeit auf der Website.", "select-a-timezone-for-a-correct": "Zeitzone für die richtige Anzeige des Datums und der Zeit auf der Website.",
"you-can-use-this-field-to-define-a-set-of": "Parameter mit Bezug auf die verwendete Sprache und das Land. Beispielsweise: de_DE, de_CH usw.", "you-can-use-this-field-to-define-a-set-of": "Parameter mit Bezug auf die verwendete Sprache und das Land. Beispielsweise: de_DE, de_CH usw.",
"you-can-modify-the-url-which-identifies":"Der URL kann selbst angepasst werden. Möglich sind höchstens 150 Zeichen.", "you-can-modify-the-url-which-identifies":"Der URL kann selbst angepasst werden. Möglich sind bis zu 150 Zeichen.",
"this-field-can-help-describe-the-content": "Kurze Inhaltsbeschreibung. Möglich sind bis zu 150 Zeichen.", "this-field-can-help-describe-the-content": "Kurze Inhaltsbeschreibung. Möglich sind bis zu 150 Zeichen.",
"write-the-tags-separated-by-comma": "Schlagwörter getrennt durch Kommas. Beispielsweise: Schlagwort1, Schlagwort2, Schlagwort3", "write-the-tags-separated-by-comma": "Schlagwörter getrennt durch Kommas. Beispielsweise: Schlagwort1, Schlagwort2, Schlagwort3",
"delete-the-user-and-all-its-posts":"Benutzer und alle seine Beiträge löschen", "delete-the-user-and-all-its-posts":"Benutzer und alle seine Beiträge löschen",
@ -182,7 +182,7 @@
"email-account-settings":"E-Mail-Adresse", "email-account-settings":"E-Mail-Adresse",
"sender-email": "Absender", "sender-email": "Absender",
"emails-will-be-sent-from-this-address":"E-Mails werden mit dieser E-Mail-Adresse als Absender verschickt.", "emails-will-be-sent-from-this-address":"E-Mails werden mit dieser E-Mail-Adresse als Absender verschickt.",
"bludit-login-access-code": "BLUDIT - Login access code", "bludit-login-access-code": "BLUDIT - Zugangscode",
"check-your-inbox-for-your-login-access-code":"Der Zugangscoe wurde Dir geschickt.", "check-your-inbox-for-your-login-access-code":"Der Zugangscoe wurde Dir geschickt.",
"there-was-a-problem-sending-the-email":"There was a problem sending the email", "there-was-a-problem-sending-the-email":"There was a problem sending the email",
"back-to-login-form": "Zurück zum Login", "back-to-login-form": "Zurück zum Login",
@ -193,7 +193,7 @@
"show-password": "Passwort zeigen", "show-password": "Passwort zeigen",
"edit-or-remove-your=pages": "Seiten bearbeiten oder löschen.", "edit-or-remove-your=pages": "Seiten bearbeiten oder löschen.",
"edit-or-remove-your-blogs-posts": "Beiträge bearbeiten oder löschen.", "edit-or-remove-your-blogs-posts": "Beiträge bearbeiten oder löschen.",
"general-settings": "General settings", "general-settings": "Allgemeine Einnstellungen",
"advanced-settings": "Advanced settings", "advanced-settings": "Erweiterte Einnstellungen",
"manage-users": "Manage users" "manage-users": "Benutzerverwaltung"
} }

View File

@ -169,6 +169,7 @@
"cli-mode": "Cli mode", "cli-mode": "Cli mode",
"command-line-mode": "Command line mode", "command-line-mode": "Command line mode",
"enable-the-command-line-mode-if-you-add-edit": "Enable the command line mode if you add, edit or remove posts and pages from the filesystem", "enable-the-command-line-mode-if-you-add-edit": "Enable the command line mode if you add, edit or remove posts and pages from the filesystem",
"configure": "Configure", "configure": "Configure",
"uninstall": "Uninstall", "uninstall": "Uninstall",
"change-password": "Change password", "change-password": "Change password",
@ -196,5 +197,11 @@
"general-settings": "General settings", "general-settings": "General settings",
"advanced-settings": "Advanced settings", "advanced-settings": "Advanced settings",
"manage-users": "Manage users", "manage-users": "Manage users",
"view-and-edit-your-profile": "View and edit your profile." "view-and-edit-your-profile": "View and edit your profile.",
"password-must-be-at-least-6-characters-long": "Password must be at least 6 characters long",
"images": "Images",
"upload-image": "Upload image",
"drag-and-drop-or-click-here": "Drag and drop or click here",
"insert-image": "Insert image"
} }

View File

@ -85,7 +85,7 @@
"first-name": "Nombre", "first-name": "Nombre",
"last-name": "Apellido", "last-name": "Apellido",
"bludit-version": "Bludit versión", "bludit-version": "Bludit versión",
"powered-by": "Corriendo con", "powered-by": "Generado por",
"recent-posts": "Entradas recientes", "recent-posts": "Entradas recientes",
"manage-pages": "Administrar páginas", "manage-pages": "Administrar páginas",
"advanced-options": "Opciones avanzadas", "advanced-options": "Opciones avanzadas",
@ -129,14 +129,14 @@
"there-are-no-drafts": "No hay borradores.", "there-are-no-drafts": "No hay borradores.",
"create-a-new-article-for-your-blog":"Crear un nuevo articulo para su blog.", "create-a-new-article-for-your-blog":"Crear un nuevo articulo para su blog.",
"create-a-new-page-for-your-website":"Crear una nueva página para su sitio web.", "create-a-new-page-for-your-website":"Crear una nueva página para su sitio web.",
"invite-a-friend-to-collaborate-on-your-website":"Invite a un amigo para colaborar en el sitio web.", "invite-a-friend-to-collaborate-on-your-website":"Invite un amigo para colaborar en el sitio web.",
"change-your-language-and-region-settings":"Cambiar la configuración de idioma y región.", "change-your-language-and-region-settings":"Cambiar la configuración de idioma y región.",
"language-and-timezone":"Idioma y zona horaria", "language-and-timezone":"Idioma y zona horaria",
"author": "Autor", "author": "Autor",
"start-here": "Comience aquí", "start-here": "Comience aquí",
"install-theme": "Instalar tema", "install-theme": "Instalar tema",
"first-post": "Primer entrada", "first-post": "Primer entrada",
"congratulations-you-have-successfully-installed-your-bludit": "Felicitación, usted ha instalado **Bludit** exitosamente", "congratulations-you-have-successfully-installed-your-bludit": "Felicitación, se ha instalado **Bludit** exitosamente",
"whats-next": "Siguientes pasos", "whats-next": "Siguientes pasos",
"manage-your-bludit-from-the-admin-panel": "Administre su Bludit desde el [panel de administración](./admin/)", "manage-your-bludit-from-the-admin-panel": "Administre su Bludit desde el [panel de administración](./admin/)",
"follow-bludit-on": "Siga Bludit en", "follow-bludit-on": "Siga Bludit en",
@ -196,5 +196,8 @@
"edit-or-remove-your-blogs-posts": "Edite o elimine entradas de su blog.", "edit-or-remove-your-blogs-posts": "Edite o elimine entradas de su blog.",
"general-settings": "Ajustes generales", "general-settings": "Ajustes generales",
"advanced-settings": "Ajustes avanzados", "advanced-settings": "Ajustes avanzados",
"manage-users": "Administrar usuarios" "manage-users": "Administrar usuarios",
"view-and-edit-your-profile": "Modifique su perfil.",
"password-must-be-at-least-6-characters-long": "La contraseña debe tener al menos 6 carácteres."
} }

View File

@ -3,9 +3,9 @@
{ {
"native": "Français (France)", "native": "Français (France)",
"english-name": "French", "english-name": "French",
"last-update": "2015-10-03", "last-update": "2015-10-29",
"author": "Frédéric K.", "author": "Frédéric K.",
"email": "", "email": "stradfred@gmail.com",
"website": "" "website": ""
}, },
@ -119,7 +119,7 @@
"you-can-use-this-field-to-define-a-set-of": "Vous pouvez utiliser ce champ pour définir un ensemble de paramètres liés à la langue, le pays et les préférences particulières.", "you-can-use-this-field-to-define-a-set-of": "Vous pouvez utiliser ce champ pour définir un ensemble de paramètres liés à la langue, le pays et les préférences particulières.",
"you-can-modify-the-url-which-identifies":"Vous pouvez modifier l'URL qui identifie une page ou un article, en utilisant des mots-clés lisibles. Pas plus de 150 caractères.", "you-can-modify-the-url-which-identifies":"Vous pouvez modifier l'URL qui identifie une page ou un article, en utilisant des mots-clés lisibles. Pas plus de 150 caractères.",
"this-field-can-help-describe-the-content": "Ce champ peut aider à décrire le contenu en quelques mots. Pas plus de 150 caractères.", "this-field-can-help-describe-the-content": "Ce champ peut aider à décrire le contenu en quelques mots. Pas plus de 150 caractères.",
"write-the-tags-separated-by-comma": "Écrivez les tags en les séparant par une virgule. par exemple : tag1, tag2, tag3",
"delete-the-user-and-all-its-posts":"Supprimer lutilisateur et tous ses messages associés.", "delete-the-user-and-all-its-posts":"Supprimer lutilisateur et tous ses messages associés.",
"delete-the-user-and-associate-its-posts-to-admin-user": "Supprimez lutilisateur et associez ses messages à ladministrateur principal.", "delete-the-user-and-associate-its-posts-to-admin-user": "Supprimez lutilisateur et associez ses messages à ladministrateur principal.",
"read-more": "Lire la suite...", "read-more": "Lire la suite...",
@ -159,7 +159,7 @@
"ip-address-has-been-blocked": "Votre adresse IP a été bloquée.", "ip-address-has-been-blocked": "Votre adresse IP a été bloquée.",
"try-again-in-a-few-minutes": "Essayez de nouveau dans quelques minutes.", "try-again-in-a-few-minutes": "Essayez de nouveau dans quelques minutes.",
"date": "Date", "date": "Date",
"you-can-schedule-the-post-just-select-the-date-and-time": "Vous pouvez planifier une date de publication de vos articles, il suffit de sélectionner la date et lheure dans le calendrier qui souvre en pop-up.",
"scheduled": "Planification", "scheduled": "Planification",
"publish": "Publier", "publish": "Publier",
"please-check-your-theme-configuration": "Veuillez vérifier la configuration de votre thème.", "please-check-your-theme-configuration": "Veuillez vérifier la configuration de votre thème.",
@ -168,5 +168,33 @@
"disabled": "Désactivé", "disabled": "Désactivé",
"cli-mode": "Mode Cli", "cli-mode": "Mode Cli",
"command-line-mode": "Mode ligne de commande", "command-line-mode": "Mode ligne de commande",
"enable-the-command-line-mode-if-you-add-edit": "Activer le mode ligne de commande si vous créez, modifiez ou supprimez des articles ou des pages du système de fichiers." "enable-the-command-line-mode-if-you-add-edit": "Activer le mode ligne de commande si vous créez, modifiez ou supprimez des articles ou des pages du système de fichiers.",
"configure": "Configuration",
"uninstall": "Désinstaller",
"change-password": "Modifier le mot de passe",
"to-schedule-the-post-just-select-the-date-and-time": "Vous pouvez planifier une date de publication de vos articles, il suffit de sélectionner la date et lheure dans le calendrier qui souvre en pop-up.",
"write-the-tags-separated-by-commas": "Écrivez les tags en les séparant par une virgule. par exemple : tag1, tag2, tag3",
"status": "Statut",
"published": "Publié",
"scheduled-posts": "Articles planifiés",
"statics": "Statiques",
"name": "Nom",
"email-account-settings":"Paramètres de compte de messagerie",
"sender-email": "Email de lexpéditeur",
"emails-will-be-sent-from-this-address":"Les e-mails seront envoyés à cette adresse.",
"bludit-login-access-code": "BLUDIT - Code d'accès de connexion",
"check-your-inbox-for-your-login-access-code":"Vérifiez votre boîte de réception, il contient votre code daccès de connexion.",
"there-was-a-problem-sending-the-email":"Une erreur est survenue, lors de lenvoi de le-mail.",
"back-to-login-form": "Retour à la page de connexion",
"send-me-a-login-access-code": "Envoyez-moi un code daccès de connexion",
"get-login-access-code": "Obtenir le code daccès de connexion",
"email-notification-login-access-code": "<p>Ceci est une notification à partir de votre site {{WEBSITE_NAME}}</p><p>Vous avez demandé un code daccès de connexion, merci de suivre lien suivant :</p><p>{{LINK}}</p>",
"there-are-no-scheduled-posts": "Il ny a aucun article planifié.",
"show-password": "Afficher le mot de passe",
"edit-or-remove-your=pages": "Gérer vos pages.",
"edit-or-remove-your-blogs-posts": "Gérer vos articles.",
"general-settings": "Paramètres généraux",
"advanced-settings": "Paramètres avancés",
"manage-users": "Gestion des utilisateurs",
"view-and-edit-your-profile": "Modifier votre profil"
} }

View File

@ -1,22 +1,22 @@
{ {
"language-data": "language-data":
{ {
"native": "Polish - Polski", "native": "Polski (Polska)",
"english-name": "Polish", "english-name": "Polish",
"last-update": "2015-10-03", "last-update": "2015-11-01",
"author": "tom-asz", "author": "Dave",
"email": "", "email": "dawid.stawicki@windowslive.com",
"website": "tomektutoria.eu" "website": ""
}, },
"username": "Użytkownik", "username": "Użytkownik",
"password": "Hasło", "password": "Hasło",
"confirm-password": "Potwierdź hasło", "confirm-password": "Potwierdzenie hasła",
"editor": "Edytor", "editor": "Redaktor",
"dashboard": "Pulpit nawigacyjny", "dashboard": "Kokpit",
"role": "Rola", "role": "Rola",
"post": "Post", "post": "Wpis",
"posts": "Posty", "posts": "Wpisy",
"users": "Użytkownicy", "users": "Użytkownicy",
"administrator": "Administrator", "administrator": "Administrator",
"add": "Dodaj", "add": "Dodaj",
@ -25,55 +25,55 @@
"title": "Tytuł", "title": "Tytuł",
"no-parent": "Bez rodzica", "no-parent": "Bez rodzica",
"edit-page": "Edytuj stronę", "edit-page": "Edytuj stronę",
"edit-post": "Edytuj post", "edit-post": "Edytuj wpis",
"add-a-new-user": "Dodaj nowego użytkownika", "add-a-new-user": "Nowy użytkownik",
"parent": "Rodzic", "parent": "Rodzic",
"friendly-url": "Przyjazny URL", "friendly-url": "Przyjazny odnośnik URL",
"description": "Opis", "description": "Opis",
"posted-by": "Napisane przez", "posted-by": "Napisał(a)",
"tags": "Tagi", "tags": "Tagi",
"position": "Pozycja", "position": "Pozycja",
"save": "Zapisz", "save": "Zapisz",
"draft": "Projekt", "draft": "Szkic",
"delete": "Usuń", "delete": "Usuń",
"registered": "Zarejestrowany", "registered": "Data rejestracji",
"Notifications": "Powiadomienia", "Notifications": "Powiadomienia",
"profile": "Profil", "profile": "Profil",
"email": "Email", "email": "Email",
"settings": "Ustawienia", "settings": "Ustawienia",
"general": "Ogólne", "general": "Ogólne",
"advanced": "Zaawansowane", "advanced": "Zaawansowane",
"regional": "Regionalne", "regional": "Region",
"about": "O nas", "about": "O nas",
"login": "Zaloguj", "login": "Zaloguj",
"logout": "Wyloguj", "logout": "Wyloguj",
"manage": "Zarządzaj", "manage": "Zarządzanie",
"themes": "Motywy", "themes": "Motywy",
"prev-page": "Poprzednia strona", "prev-page": "Poprzednia strona",
"next-page": "Następna strona", "next-page": "Następna strona",
"configure-plugin": "Skonfiguruj plugin", "configure-plugin": "Konfiguracja wtyczki",
"confirm-delete-this-action-cannot-be-undone": "Potwierdź usunięcie, czynność ta nie może być cofnięta.", "confirm-delete-this-action-cannot-be-undone": "Potwierdzenie usunięcia. Ta operacja jest nieodwracalna.",
"site-title": "Nazwa strony", "site-title": "Nazwa strony",
"site-slogan": "Slogan strony", "site-slogan": "Slogan strony",
"site-description": "Opis strony", "site-description": "Opis strony",
"footer-text": "Tekst w stopce", "footer-text": "Tekst w stopce",
"posts-per-page": "Posty na stronie:", "posts-per-page": "Liczba wpisów na stronę",
"site-url": "Adres strony", "site-url": "Adres URL strony",
"writting-settings": "Ustawienie pisania", "writting-settings": "Ustawienia pisania",
"url-filters": "Filtr URL", "url-filters": "Filtry URL",
"page": "Strona", "page": "Strona",
"pages": "Strony", "pages": "Strony",
"home": "Home", "home": "Strona główna",
"welcome-back": "Witaj ponownie", "welcome-back": "Cześć, ",
"language": "Język", "language": "Język",
"website": "Strona WWW", "website": "Powrót do strony",
"timezone": "Strefa czasowa", "timezone": "Strefa czasowa",
"locale": "Ustawienia regionalne", "locale": "Lokalizacja",
"new-post": "Nowy post", "new-post": "Nowy wpis",
"new-page": "Nowa strona", "new-page": "Nowa strona",
"html-and-markdown-code-supported": "Kod HTML i Markdown obsługiwany", "html-and-markdown-code-supported": "Znaczniki HTML i Markdown są wspierane",
"manage-posts": "Zarządzaj postami", "manage-posts": "Zarządzanie wpisami",
"published-date": "Data opublikowania", "published-date": "Data publikacji",
"modified-date": "Data modyfikacji", "modified-date": "Data modyfikacji",
"empty-title": "Brak tytułu", "empty-title": "Brak tytułu",
"plugins": "Wtyczki", "plugins": "Wtyczki",
@ -85,116 +85,119 @@
"first-name": "Imię", "first-name": "Imię",
"last-name": "Nazwisko", "last-name": "Nazwisko",
"bludit-version": "Wersja Bludit", "bludit-version": "Wersja Bludit",
"powered-by": "Silnik", "powered-by": "Napędza",
"recent-posts": "Najnowsze posty", "recent-posts": "Ostatnie wpisy",
"manage-pages": "Zarządzaj stronami", "manage-pages": "Zarządzanie stronami",
"advanced-options": "Zaawansowane opcje", "advanced-options": "Zaawansowane",
"user-deleted": "Użytkownik usunięty", "user-deleted": "Użytkownik został usunięty",
"page-added-successfully": "Strona dodany pomyślnie", "page-added-successfully": "Strona została pomyślnie dodana",
"post-added-successfully": "Post dodany pomyślnie", "post-added-successfully": "Wpis został pomyślnie dodany",
"the-post-has-been-deleted-successfully": "Post został pomyślnie usunięty", "the-post-has-been-deleted-successfully": "Wpis został pomyślnie usunięty",
"the-page-has-been-deleted-successfully": "Strona została pomyślnie usunięta", "the-page-has-been-deleted-successfully": "Strona została pomyślnie usunięta",
"username-or-password-incorrect": "Nazwa użytkownika lub hasło nieprawidłowe", "username-or-password-incorrect": "Nazwa użytkownika lub hasło jest nieprawidłowe",
"database-regenerated": "Baza danych regenerowana", "database-regenerated": "Baza danych została naprawiona",
"the-changes-have-been-saved": "Zmiany zostały zapisane", "the-changes-have-been-saved": "Zmiany zostały zapisane",
"enable-more-features-at": "Włącz więcej funkcji w", "enable-more-features-at": "Włącz więcej możliwości w",
"username-already-exists": "Nazwa użytkownika już istnieje", "username-already-exists": "Nazwa użytkownika już istnieje",
"username-field-is-empty": "Pole nazwa użytkownika jest puste", "username-field-is-empty": "Nazwa użytkownika nie może być pusta",
"the-password-and-confirmation-password-do-not-match":"Hasło i potwierdzenie hasła nie pasują do siebie", "the-password-and-confirmation-password-do-not-match":"Wprowadzone hasła nie pasują do siebie",
"user-has-been-added-successfully": "Użytkownik został dodany pomyślnie", "user-has-been-added-successfully": "Użytkownik został pomyślnie dodany",
"you-do-not-have-sufficient-permissions": "Nie masz wystarczających uprawnień dostępu do tej strony, skontaktuj się z administratorem.", "you-do-not-have-sufficient-permissions": "Nie masz dostępu do tego. Prosimy o kontakt z administratorem strony.",
"settings-advanced-writting-settings": "Ustawienia->Zaawansowane->Ustawienia pisania", "settings-advanced-writting-settings": "Ustawienia->Zaawansowane->Ustawienia pisania",
"new-posts-and-pages-synchronized": "Nowe posty i strony zsynchronizowane.", "new-posts-and-pages-synchronized": "Nowe wpisy i strony zostały zsynchronizowane.",
"you-can-choose-the-users-privilege": "Możesz wybrać przywilej użytkownika. Edytor może tylko pisać strony i posty.", "you-can-choose-the-users-privilege": "Wybierz przywileje tego użytkownika. Rola redaktora zezwala wyłącznie na tworzenie nowych wpisów i stron.",
"email-will-not-be-publicly-displayed": "E-mail nie będzie wyświetlany publicznie. Zalecany dla odzyskiwania hasła i powiadomień.", "email-will-not-be-publicly-displayed": "Adres email nie zostanie opublikowany, jednak zaleca się jego wprowadzenie w celu odzyskania utraconego hasła oraz powiadomień dostarczanych ze strony.",
"use-this-field-to-name-your-site": "Pole to służy do nazwy witryny, pojawi się na górze każdej stronie.", "use-this-field-to-name-your-site": "Nazwa strony zostanie wyświetlona na każdej podstronie Twojej witryny.",
"use-this-field-to-add-a-catchy-phrase": "Pole to służy do dodawania chwytliwego tytułu na swojej stronie.", "use-this-field-to-add-a-catchy-phrase": "Krótki i chwytliwy slogan Twojej strony.",
"you-can-add-a-site-description-to-provide": "Możesz dodać opis witryny, aby zapewnić krótki życiorys lub opis swojej strony.", "you-can-add-a-site-description-to-provide": "Wprowadź opis strony, aby wyjaśnić jej przeznaczenie.",
"you-can-add-a-small-text-on-the-bottom": "Możesz dodać mały tekst na dole każdej strony. np: prawo autorskie, właściciel, daty, itp", "you-can-add-a-small-text-on-the-bottom": "Krótka informacja wyświetlająca się na każdej podstronie. Dla przykładu: prawa autorskie, właściciel, data, etc.",
"number-of-posts-to-show-per-page": "Wyświetlana iczba postów na stronie.", "number-of-posts-to-show-per-page": "Liczba wpisów wyświetlanych na jednej stronie.",
"the-url-of-your-site": "Adres URL witryny.", "the-url-of-your-site": "Adres URL Twojej strony.",
"add-or-edit-description-tags-or": "Dodać lub edytować opis, tagi lub zmodyfikować przyjazne URL.", "add-or-edit-description-tags-or": "Dodaj lub edytuj opis, tagi oraz zmodyfikuj przyjazne adresy URL.",
"select-your-sites-language": "Wybierz język witryny.", "select-your-sites-language": "Wybierz język strony",
"select-a-timezone-for-a-correct": "Wybierz strefę czasową, dla prawidłowego wyświetlania data / czas na swojej stronie.", "select-a-timezone-for-a-correct": "Wybierz strefę czasową by prawidłowo wyświetlać datę/czas na Twojej stronie.",
"you-can-use-this-field-to-define-a-set-of": "Możesz użyć tego pola, aby zdefiniować zestaw parametrów związanych z językiem, kraju i szczególnych preferencji.", "you-can-use-this-field-to-define-a-set-of": "Możesz użyć to pole, aby zdefiniować parametry związane z językiem, krajem i innymi ustawieniami.",
"you-can-modify-the-url-which-identifies":"Możesz zmienić adres URL, który identyfikuje stronę lub pisać przy użyciu słów kluczowych w postaci czytelnej dla człowieka. Nie więcej niż 150 znaków.", "you-can-modify-the-url-which-identifies":"Możesz zmieniń adres URL wpisu lub strony, aby wyglądał bardziej czytelnie dla człowieka. Nie więcej niż 150 znaków.",
"this-field-can-help-describe-the-content": "To pole może pomóc opisać zawartość w kilku słowach. Nie więcej niż 150 znaków.", "this-field-can-help-describe-the-content": "To pole pomoże krótko opisać Twój wpis w kilku słowach. Nie więcej niż 150 znaków.",
"delete-the-user-and-all-its-posts":"Usuń użytkownika i wszystkich jego posty", "delete-the-user-and-all-its-posts":"Usuń tego użytkownika i wszystkie jego wpisy",
"delete-the-user-and-associate-its-posts-to-admin-user": "Usuń użytkownika i powiązać jego posty do użytkownika administratora", "delete-the-user-and-associate-its-posts-to-admin-user": "Usuń tego użytkownika a wszystkie jego wpisy przypisz administratorowi",
"read-more": "Więcej", "read-more": "Czytaj więcej",
"show-blog": "Zobacz blog", "show-blog": "Blog z wpisami",
"default-home-page": "Domyślna strona główna", "default-home-page": "Domyślna strona główna",
"version": "Wersja", "version": "Wersja",
"there-are-no-drafts": "Brak projektów.", "there-are-no-drafts": "Brak szkiców.",
"create-a-new-article-for-your-blog":"Utwórz nowy artykuł na swoim blogu.", "create-a-new-article-for-your-blog":"Utwórz nowy wpis na Twoim blogu.",
"create-a-new-page-for-your-website":"Tworzenie nowej strony na swojej stronie internetowej.", "create-a-new-page-for-your-website":"Utwórz nową stronę na Twoim blogu.",
"invite-a-friend-to-collaborate-on-your-website":"Zaproś przyjaciół do współpracy na swojej stronie internetowej.", "invite-a-friend-to-collaborate-on-your-website":"Zaproś przyjaciela do współpracy",
"change-your-language-and-region-settings":"Zmień ustawienia języka i regionu.", "change-your-language-and-region-settings":"Zmień język i ustawienia regionu strony.",
"language-and-timezone":"Język i strefa czasowa", "language-and-timezone":"Język i czas",
"author": "Autor", "author": "Autor",
"start-here": "Zacznij tutaj", "start-here": "Start",
"install-theme": "Zainstaluj motyw", "install-theme": "Zainstaluj motyw",
"first-post": "Pierwszy post", "first-post": "Pierwszy wpis ",
"congratulations-you-have-successfully-installed-your-bludit": "Gratulacje pomyślnie zainstalowano **Bludit**", "congratulations-you-have-successfully-installed-your-bludit": "Gratulację, Twój **Bludit** został zainstalowany pomyślnie.",
"whats-next": "Co dalej", "whats-next": "Co teraz?",
"manage-your-bludit-from-the-admin-panel": "Zarządzaj Bludit z [obszaru administracyjnego](./admin/)", "manage-your-bludit-from-the-admin-panel": "Zarządzaj blogiem z poziomu [kokpitu](./admin/)",
"follow-bludit-on": "Śledź Bludit na", "follow-bludit-on": "Obserwuj Bludit w serwisach",
"visit-the-support-forum": "Odwiedź [forum](http://forum.bludit.com) wsparcia", "visit-the-support-forum": "•Zajrzyj na [forum wsparcia](http://forum.bludit.com) for support",
"read-the-documentation-for-more-information": "Przeczytaj [dokumentację](http://docs.bludit.com) po więcej informacji", "read-the-documentation-for-more-information": "•Przeczytaj [dokumentacje](http://docs.bludit.com) by dowiedzieć się więcej informacji",
"share-with-your-friends-and-enjoy": "Podziel się z przyjaciółmi i ciesz się z Bludit", "share-with-your-friends-and-enjoy": "•udostępnij tę stronę swoim znajomym i baw się dobrze",
"the-page-has-not-been-found": "Strona nie została odnaleziona.", "the-page-has-not-been-found": "Strona nie została odnaleziona.",
"error": "Błąd", "error": "Błąd",
"bludit-installer": "Bludit Instalator", "bludit-installer": "Instalator Bludit",
"welcome-to-the-bludit-installer": "Zapraszamy do instalatora Bludit", "welcome-to-the-bludit-installer": "Witamy w instalatorze Bludit",
"complete-the-form-choose-a-password-for-the-username-admin": "Wpisz hasło dla użytkownika « admin »", "complete-the-form-choose-a-password-for-the-username-admin": "Uzupełnij formularz, wybierz hasło dla użytkownika « admin »",
"password-visible-field": "Hasło, widoczne pola!", "password-visible-field": "Password, visible field!",
"install": "Instaluj", "install": "Zainlstauj",
"choose-your-language": "Wybierz język", "choose-your-language": "Wybierz swój język",
"next": "Dalej", "next": "Dalej",
"the-password-field-is-empty": "Pole hasło jest puste", "the-password-field-is-empty": "Proszę wprowadzić hasło",
"your-email-address-is-invalid":"Twój adres e-mail jest nieprawidłowy.", "your-email-address-is-invalid":"Wprowadzony adres email jest nieprawidłowy.",
"proceed-anyway": "Kontynuuj mimo to!", "proceed-anyway": "Kontynnuj mimo to!",
"drafts":"Projekt", "drafts":"Szkice",
"ip-address-has-been-blocked": "Adres IP został zablokowany.", "ip-address-has-been-blocked": "Adres IP został zablokowany.",
"try-again-in-a-few-minutes": "Spróbuj ponownie za kilka minut.", "try-again-in-a-few-minutes": "Spróbuj ponownie za kilka minut.",
"date": "Data", "date": "Data",
"scheduled": "Zaplanowane", "scheduled": "Zaplanowany",
"publish": "Opublikuj", "publish": "Opublikuj",
"please-check-your-theme-configuration": "Proszę sprawdzić konfigurację szablonu.", "please-check-your-theme-configuration": "Proszę sprawdzić ustawienia motywu.",
"plugin-label": "Etykieta pluginu", "plugin-label": "Etykieta wtyczki",
"enabled": "Włączony", "enabled": "Włączony",
"disabled": "Wyłączony", "disabled": "Wyłączony",
"cli-mode": "Tryb Cli", "cli-mode": "Tryb Cli",
"command-line-mode": "Tryb wiersza poleceń", "command-line-mode": "Wiersz poleceń",
"enable-the-command-line-mode-if-you-add-edit": "Włącz tryb linii poleceń, jeśli dodajesz, edytujesz lub usuwasz posty i strony z systemu plików", "enable-the-command-line-mode-if-you-add-edit": "Włącz wiersz poleceń, kiedy dodajesz, edytujesz lub usuwasz wpisy oraz strony poprzez system plików.",
"configure": "Konfiguruj", "configure": "Konfiguruj",
"uninstall": "Odinstaluj", "uninstall": "Odinstaluj",
"change-password": "Zmień hasło", "change-password": "Zmień hasło",
"to-schedule-the-post-just-select-the-date-and-time": "Aby zaplanować post, po prostu wybierz date i czas.", "to-schedule-the-post-just-select-the-date-and-time": "Aby zaplanować wpis, po prostu wybierz datę i czas.",
"write-the-tags-separated-by-commas": "Dodaj tagi oddzielając je przecinkami.", "write-the-tags-separated-by-commas": "Wprowadź tagi oddzielone przecinkiem.",
"status": "Status", "status": "Status",
"published": "Opublikowane", "published": "Opublikowany",
"scheduled-posts": "Zaplanowane posty", "scheduled-posts": "Zaplanowane wpisy",
"statics": "Statyki", "statistics": "Statystyki",
"name": "Nazwa", "name": "Nazwa",
"email-account-settings":"Ustawienia konta e-mail", "email-account-settings":"Ustawienia konta email",
"sender-email": "E-mail nadawcy", "sender-email": "Adres nadawcy",
"emails-will-be-sent-from-this-address":"Wiadomości e-mail będą wysyłane z tego adresu.", "emails-will-be-sent-from-this-address":"Wszystkie wiadomości email będą wysyłane z tego adresu.",
"bludit-login-access-code": "BLUDIT - Logowanie do kodu dostępu", "bludit-login-access-code": "BLUDIT - kod dostępu logowania",
"check-your-inbox-for-your-login-access-code":"Sprawdź swoją skrzynkę odbiorczą dla kodu dostępu do logowania", "check-your-inbox-for-your-login-access-code":"Sprawdź swoją skrzynkę odbiorczą",
"there-was-a-problem-sending-the-email":"Wystąpił problem podczas wysyłania wiadomości e-mail", "there-was-a-problem-sending-the-email":"Wystąpił problem z wysłaniem wiadomości",
"back-to-login-form": "Powrót do formularza logowania", "back-to-login-form": "Powrót do logowania",
"send-me-a-login-access-code": "Wyślij mi kod dostępu do logowania", "send-me-a-login-access-code": "Wyślij kod dostępu do logowania",
"get-login-access-code": "Pobierz kod dostępu do logowania", "get-login-access-code": "Otrzymaj kod dostępu logowania",
"email-notification-login-access-code": "<p>To jest powiadomienie z twojej strony {{WEBSITE_NAME}}</p><p>Poprosiłeś o kod dostępu do logowania, należy do kliknąć w link:</p><p>{{LINK}}</p>", "email-notification-login-access-code": "<p>Powiadomienie ze strony {{WEBSITE_NAME}}</p><p>Jeśli zarządałeś kodu dostępu do logowania, zajrzyj na stronę:</p><p>{{LINK}}</p>",
"there-are-no-scheduled-posts": "Nie ma zaplanowanych postów.", "there-are-no-scheduled-posts": "Brak zaplanowanych wpisów.",
"show-password": "Pokaż Hasło", "show-password": "Pokaż hasło",
"edit-or-remove-your=pages": "Edytuj lub usuń swoje strony.", "edit-or-remove-your=pages": "Edytuj lub usuń strony na Twoim blogu.",
"edit-or-remove-your-blogs-posts": "Edytuj lub usuń posty bloga.", "edit-or-remove-your-blogs-posts": "Edytuj lub usuń wpisy na Twoim blogu.",
"general-settings": "Ustawienia ogólne", "general-settings": "Ustawienia",
"advanced-settings": "Ustawienia zaawansowane", "advanced-settings": "Zaawansowane",
"manage-users": "Zarządzaj użytkownikami" "manage-users": "Zarządzanie użytkownikami",
"view-and-edit-your-profile": "Zobacz i edytuj swój profil.",
"password-must-be-at-least-6-characters-long": "Hasło musi zawierać przynajmniej 6 znaków"
} }

View File

@ -3,7 +3,7 @@
{ {
"native": "Русский (Россия)", "native": "Русский (Россия)",
"english-name": "Russian", "english-name": "Russian",
"last-update": "2015-09-29", "last-update": "2015-11-03",
"author": "Сергей Ворон", "author": "Сергей Ворон",
"email": "sergey@voron.pw", "email": "sergey@voron.pw",
"website": "voron.pw" "website": "voron.pw"
@ -70,8 +70,8 @@
"timezone": "Часовой пояс", "timezone": "Часовой пояс",
"locale": "Локализация", "locale": "Локализация",
"new-post": "Добавить запись", "new-post": "Добавить запись",
"html-and-markdown-code-supported": "Поддерживается код HTML и Markdown",
"new-page": "Добавить страницу", "new-page": "Добавить страницу",
"html-and-markdown-code-supported": "Поддерживается код HTML и Markdown",
"manage-posts": "Управление записями", "manage-posts": "Управление записями",
"published-date": "Дата публикации", "published-date": "Дата публикации",
"modified-date": "Дата изменения", "modified-date": "Дата изменения",
@ -119,7 +119,6 @@
"you-can-use-this-field-to-define-a-set-of": "Вы можете использовать это поле, чтобы определить набор параметров, связанных с языком, страной и особых предпочтений.", "you-can-use-this-field-to-define-a-set-of": "Вы можете использовать это поле, чтобы определить набор параметров, связанных с языком, страной и особых предпочтений.",
"you-can-modify-the-url-which-identifies":"Вы можете изменить URL, который идентифицирует страницу или запись с помощью удобочитаемых ключевых слов. Не более 150 символов.", "you-can-modify-the-url-which-identifies":"Вы можете изменить URL, который идентифицирует страницу или запись с помощью удобочитаемых ключевых слов. Не более 150 символов.",
"this-field-can-help-describe-the-content": "Это поле может помочь описать содержимое в нескольких словах. Не более 150 символов.", "this-field-can-help-describe-the-content": "Это поле может помочь описать содержимое в нескольких словах. Не более 150 символов.",
"write-the-tags-separated-by-comma": "Укажите теги через запятую. Например: тег1, тег2, тег3",
"delete-the-user-and-all-its-posts":"Удалить пользователя и все его записи", "delete-the-user-and-all-its-posts":"Удалить пользователя и все его записи",
"delete-the-user-and-associate-its-posts-to-admin-user": "Удалить пользователя и связать его записи с администратором", "delete-the-user-and-associate-its-posts-to-admin-user": "Удалить пользователя и связать его записи с администратором",
"read-more": "Читать далее", "read-more": "Читать далее",
@ -159,7 +158,6 @@
"ip-address-has-been-blocked": "IP адрес заблокирован.", "ip-address-has-been-blocked": "IP адрес заблокирован.",
"try-again-in-a-few-minutes": "Попробуйте еще раз через несколько минут.", "try-again-in-a-few-minutes": "Попробуйте еще раз через несколько минут.",
"date": "Дата", "date": "Дата",
"you-can-schedule-the-post-just-select-the-date-and-time": "Вы можете запланировать запись, просто выберите дату и время.",
"scheduled": "Запланировано", "scheduled": "Запланировано",
"publish": "Опубликовать", "publish": "Опубликовать",
"please-check-your-theme-configuration": "Пожалуйста, проверьте конфигурацию вашей темы.", "please-check-your-theme-configuration": "Пожалуйста, проверьте конфигурацию вашей темы.",
@ -168,5 +166,33 @@
"disabled": "Отключен", "disabled": "Отключен",
"cli-mode": "Режим CLI", "cli-mode": "Режим CLI",
"command-line-mode": "Режим командной строки", "command-line-mode": "Режим командной строки",
"enable-the-command-line-mode-if-you-add-edit": "Включите режим командной строки, если вы добавляете, изменяете или удаляете записи и страницы из файловой системы" "enable-the-command-line-mode-if-you-add-edit": "Включите режим командной строки, если вы добавляете, изменяете или удаляете записи и страницы из файловой системы",
"configure": "Настройка",
"uninstall": "Удалить",
"change-password": "Смена пароля",
"to-schedule-the-post-just-select-the-date-and-time": "Чтобы запланировать запись, просто выберите дату и время.",
"write-the-tags-separated-by-commas": "Напишите теги, разделенные запятыми.",
"status": "Статус",
"published": "Опубликовано",
"scheduled-posts": "Запланированные записи",
"statistics": "Статистика",
"name": "Имя",
"email-account-settings":"Настройки учетной записи электронной почты",
"sender-email": "Email отправителя",
"emails-will-be-sent-from-this-address":"Письма будут отправляться с этого адреса.",
"bludit-login-access-code": "BLUDIT - Код доступа для входа",
"check-your-inbox-for-your-login-access-code":"Проверьте ваш почтовый ящик на наличие кода доступа для входа",
"there-was-a-problem-sending-the-email":"Возникла проблема с отправкой электронной почты",
"back-to-login-form": "Назад к форме входа",
"send-me-a-login-access-code": "Пришлите мне код доступа для входа",
"get-login-access-code": "Получить код доступа для входа",
"email-notification-login-access-code": "<p>Это уведомление с вашего сайта {{WEBSITE_NAME}}</p><p>Вы запросили код доступа для входа, перейдите по следующей ссылке:</p><p>{{LINK}}</p>",
"there-are-no-scheduled-posts": "Нет никаких запланированных записей.",
"show-password": "Показать пароль",
"edit-or-remove-your=pages": "Редактирование или удаление ваших страниц.",
"edit-or-remove-your-blogs-posts": "Редактирование или удаление записей вашего блога.",
"general-settings": "Общие настройки",
"advanced-settings": "Дополнительные настройки",
"manage-users": "Управление пользователями",
"view-and-edit-your-profile": "Просмотр и редактирование своего профиля."
} }

View File

@ -3,7 +3,7 @@
{ {
"native": "Українська (Україна)", "native": "Українська (Україна)",
"english-name": "Ukrainian", "english-name": "Ukrainian",
"last-update": "2015-10-03", "last-update": "2015-10-30",
"author": "Allec Bernz", "author": "Allec Bernz",
"email": "admin@allec.info", "email": "admin@allec.info",
"website": "allec.info" "website": "allec.info"
@ -15,8 +15,8 @@
"editor": "Редактор", "editor": "Редактор",
"dashboard": "Панель управління", "dashboard": "Панель управління",
"role": "Роль", "role": "Роль",
"post": "Запис", "post": "Публікація",
"posts": "Записи", "posts": "Публікації",
"users": "Користувачі", "users": "Користувачі",
"administrator": "Адміністратор", "administrator": "Адміністратор",
"add": "Додати", "add": "Додати",
@ -25,7 +25,7 @@
"title": "Назва", "title": "Назва",
"no-parent": "Немає джерела", "no-parent": "Немає джерела",
"edit-page": "Редагувати сторінку", "edit-page": "Редагувати сторінку",
"edit-post": "Редагувати запис", "edit-post": "Редагувати публікацію",
"add-a-new-user": "Додати нового користувача", "add-a-new-user": "Додати нового користувача",
"parent": "Джерело", "parent": "Джерело",
"friendly-url": "Дружні URL", "friendly-url": "Дружні URL",
@ -57,7 +57,7 @@
"site-slogan": "Слоган сайту", "site-slogan": "Слоган сайту",
"site-description": "Опис сайту", "site-description": "Опис сайту",
"footer-text": "Текст нижнього колонтитулу", "footer-text": "Текст нижнього колонтитулу",
"posts-per-page": "Записів на сторінці", "posts-per-page": "Публікацій на сторінці",
"site-url": "URL-адреса сайту", "site-url": "URL-адреса сайту",
"writting-settings": "Параметри написання", "writting-settings": "Параметри написання",
"url-filters": "URL-фільтри", "url-filters": "URL-фільтри",
@ -69,10 +69,10 @@
"website": "Веб-сайт", "website": "Веб-сайт",
"timezone": "Часовий пояс", "timezone": "Часовий пояс",
"locale": "Локаль", "locale": "Локаль",
"new-post": "Новий запис", "new-post": "Нова публікація",
"html-and-markdown-code-supported": "Підтримується код HTML і Markdown",
"new-page": "Нова сторінка", "new-page": "Нова сторінка",
"manage-posts": "Керувати записами", "html-and-markdown-code-supported": "Підтримується код HTML і Markdown",
"manage-posts": "Керування публікаціями",
"published-date": "Дата публікації", "published-date": "Дата публікації",
"modified-date": "Дата редагування", "modified-date": "Дата редагування",
"empty-title": "Порожній заголовок", "empty-title": "Порожній заголовок",
@ -91,8 +91,8 @@
"advanced-options": "Додаткові параметри", "advanced-options": "Додаткові параметри",
"user-deleted": "Користувач видалений", "user-deleted": "Користувач видалений",
"page-added-successfully": "Сторінку успішно додано", "page-added-successfully": "Сторінку успішно додано",
"post-added-successfully": "Запис успішно додано", "post-added-successfully": "Публікацію успішно додано",
"the-post-has-been-deleted-successfully": "Запис успішно видалено", "the-post-has-been-deleted-successfully": "Публікацію успішно видалено",
"the-page-has-been-deleted-successfully": "Сторінку успішно видалено", "the-page-has-been-deleted-successfully": "Сторінку успішно видалено",
"username-or-password-incorrect": "Неправильне ім'я користувача або пароль", "username-or-password-incorrect": "Неправильне ім'я користувача або пароль",
"database-regenerated": "База даних регенерована", "database-regenerated": "База даних регенерована",
@ -104,24 +104,23 @@
"user-has-been-added-successfully": "Користувача додано успішно", "user-has-been-added-successfully": "Користувача додано успішно",
"you-do-not-have-sufficient-permissions": "Ви не маєте прав на доступ до цієї сторінки, зверніться до адміністратора.", "you-do-not-have-sufficient-permissions": "Ви не маєте прав на доступ до цієї сторінки, зверніться до адміністратора.",
"settings-advanced-writting-settings": "Параметри->Додаткові параметри->Параметри написання", "settings-advanced-writting-settings": "Параметри->Додаткові параметри->Параметри написання",
"new-posts-and-pages-synchronized": "Нові записи та сторінки синхронізовані.", "new-posts-and-pages-synchronized": "Нові публікації та сторінки синхронізовані.",
"you-can-choose-the-users-privilege": "Ви можете вибрати привілей користувача. Роль редактора дозволяє тільки додавати сторінки та записи.", "you-can-choose-the-users-privilege": "Ви можете вибрати привілей користувача. Роль редактора дозволяє тільки додавати сторінки та публікації.",
"email-will-not-be-publicly-displayed": "E-mail не буде відображатися публічно. Рекомендується для відновлення пароля та повідомлень.", "email-will-not-be-publicly-displayed": "E-mail не буде відображатися публічно. Рекомендується для відновлення пароля та повідомлень.",
"use-this-field-to-name-your-site": "Використовуйте це поле для назви свого сайту, яка буде відображатися у верхній частині кожної сторінки вашого сайту.", "use-this-field-to-name-your-site": "Використовуйте це поле для назви свого сайту, яка буде відображатися у верхній частині кожної сторінки вашого сайту.",
"use-this-field-to-add-a-catchy-phrase": "Використовуйте це поле, щоб додати яскраву фразу на вашому сайті.", "use-this-field-to-add-a-catchy-phrase": "Використовуйте це поле, щоб додати яскраву фразу на вашому сайті.",
"you-can-add-a-site-description-to-provide": "Ви можете додати опис сайту, щоб забезпечити коротку біографію чи опис вашого сайту.", "you-can-add-a-site-description-to-provide": "Ви можете додати опис сайту, щоб забезпечити коротку біографію чи опис вашого сайту.",
"you-can-add-a-small-text-on-the-bottom": "Ви можете додати невеликий текст внизу кожної сторінки, наприклад: авторські права, власник, дати і т.д.", "you-can-add-a-small-text-on-the-bottom": "Ви можете додати невеликий текст внизу кожної сторінки, наприклад: авторські права, власник, дати і т.д.",
"number-of-posts-to-show-per-page": "Кількість записів на сторінці.", "number-of-posts-to-show-per-page": "Кількість публікацій на сторінці.",
"the-url-of-your-site": "URL-адреса Вашого сайту.", "the-url-of-your-site": "URL-адреса Вашого сайту.",
"add-or-edit-description-tags-or": "Додати чи редагувати опис, теги або змінити дружні URL.", "add-or-edit-description-tags-or": "Додати чи редагувати опис, теги або змінити дружні URL.",
"select-your-sites-language": "Виберіть мову вашого сайту.", "select-your-sites-language": "Виберіть мову вашого сайту.",
"select-a-timezone-for-a-correct": "Виберіть часовий пояс для правильного відображення дати/часу на вашому сайті.", "select-a-timezone-for-a-correct": "Виберіть часовий пояс для правильного відображення дати/часу на вашому сайті.",
"you-can-use-this-field-to-define-a-set-of": "Ви можете використовувати це поле для визначення набору параметрів, що відносяться до мови, країни та особливих переваг.", "you-can-use-this-field-to-define-a-set-of": "Ви можете використовувати це поле для визначення набору параметрів, що відносяться до мови, країни та особливих переваг.",
"you-can-modify-the-url-which-identifies":"Ви можете змінити URL, який ідентифікує сторінку чи запис за допомогою легких для розуміння ключових слів. Не більше 150 символів.", "you-can-modify-the-url-which-identifies":"Ви можете змінити URL, який ідентифікує сторінку чи публікацію за допомогою легких для розуміння ключових слів. Не більше 150 символів.",
"this-field-can-help-describe-the-content": "Це поле може допомогти описати зміст у декількох словах. Не більше 150 символів.", "this-field-can-help-describe-the-content": "Це поле може допомогти описати зміст у декількох словах. Не більше 150 символів.",
"write-the-tags-separated-by-comma": "Напишіть теги через кому. Наприклад: тег1, тег2, тег3", "delete-the-user-and-all-its-posts":"Видалити користувача та всі його публікації",
"delete-the-user-and-all-its-posts":"Видалити користувача та всі його записи", "delete-the-user-and-associate-its-posts-to-admin-user": "Видалити користувача та зв'язати його публікації з користувачем admin",
"delete-the-user-and-associate-its-posts-to-admin-user": "Видалити користувача та зв'язати його записи з користувачем admin",
"read-more": "Читати далі", "read-more": "Читати далі",
"show-blog": "Показати блог", "show-blog": "Показати блог",
"default-home-page": "Домашня сторінка за промовчанням", "default-home-page": "Домашня сторінка за промовчанням",
@ -135,7 +134,7 @@
"author": "Автор", "author": "Автор",
"start-here": "Почніть тут", "start-here": "Почніть тут",
"install-theme": "Встановити тему", "install-theme": "Встановити тему",
"first-post": "Перший запис", "first-post": "Перша стаття",
"congratulations-you-have-successfully-installed-your-bludit": "Вітаємо, Ви успішно встановили ваш **Bludit**", "congratulations-you-have-successfully-installed-your-bludit": "Вітаємо, Ви успішно встановили ваш **Bludit**",
"whats-next": "Що далі", "whats-next": "Що далі",
"manage-your-bludit-from-the-admin-panel": "Керуйте вашим Bludit через [панель управління](./admin/)", "manage-your-bludit-from-the-admin-panel": "Керуйте вашим Bludit через [панель управління](./admin/)",
@ -159,14 +158,41 @@
"ip-address-has-been-blocked": "IP-адресу заблоковано.", "ip-address-has-been-blocked": "IP-адресу заблоковано.",
"try-again-in-a-few-minutes": "Повторіть спробу через декілька хвилин.", "try-again-in-a-few-minutes": "Повторіть спробу через декілька хвилин.",
"date": "Дата", "date": "Дата",
"you-can-schedule-the-post-just-select-the-date-and-time": "Ви можете запланувати запис, просто виберіть дату та час.",
"scheduled": "Заплановано", "scheduled": "Заплановано",
"publish": "Опублікувати", "publish": "Опублікувати",
"please-check-your-theme-configuration": "Будь ласка, перевірте конфігурацію вашої теми.", "please-check-your-theme-configuration": "Будь ласка, перевірте конфігурацію вашої теми.",
"plugin-label": "Мітка плагіна", "plugin-label": "Мітка плагіна",
"enabled": "Включено", "enabled": "Увімкнено",
"disabled": "Вимкнено", "disabled": "Вимкнено",
"cli-mode": "Режим CLI", "cli-mode": "Режим CLI",
"command-line-mode": "Режим командного рядка", "command-line-mode": "Режим командного рядка",
"enable-the-command-line-mode-if-you-add-edit": "Включіть режим командного рядка, якщо ви додаєте, редагуєте або видаляєте записи та сторінки з файлової системи" "enable-the-command-line-mode-if-you-add-edit": "Увімкніть режим командного рядка, якщо ви додаєте, редагуєте або видаляєте публікації та сторінки з файлової системи",
"configure": "Налаштування",
"uninstall": "Видалити",
"change-password": "Зміна пароля",
"to-schedule-the-post-just-select-the-date-and-time": "Щоб запланувати публікацію, просто виберіть дату та час.",
"write-the-tags-separated-by-commas": "Напишіть теги, розділені комами.",
"status": "Статус",
"published": "Опубліковано",
"scheduled-posts": "Заплановані публікації",
"statistics": "Статистика",
"name": "Ім'я",
"email-account-settings":"Налаштування облікового запису електронної пошти",
"sender-email": "Email відправника",
"emails-will-be-sent-from-this-address":"Листи будуть відправлятися з цієї адреси.",
"bludit-login-access-code": "BLUDIT - Код доступу для входу",
"check-your-inbox-for-your-login-access-code":"Перевірте вашу поштову скриньку на наявність коду доступу для входу",
"there-was-a-problem-sending-the-email":"Виникла проблема з відправкою електронної пошти",
"back-to-login-form": "Назад до форми входу",
"send-me-a-login-access-code": "Надішліть мені код доступу для входу",
"get-login-access-code": "Отримати код доступу для входу",
"email-notification-login-access-code": "<p>Це повідомлення з вашого сайту {{WEBSITE_NAME}}</p><p>Ви запросили код доступу для входу, перейдіть за наступним посиланням:</p><p>{{LINK}}</p>",
"there-are-no-scheduled-posts": "Немає жодних запланованих публікацій.",
"show-password": "Показати пароль",
"edit-or-remove-your=pages": "Редагування або видалення ваших сторінок.",
"edit-or-remove-your-blogs-posts": "Редагування або видалення публікацій вашого блогу.",
"general-settings": "Загальні налаштування",
"advanced-settings": "Додаткові налаштування",
"manage-users": "Управління користувачами",
"view-and-edit-your-profile": "Перегляд і редагування свого профілю."
} }

View File

@ -0,0 +1,16 @@
{
"plugin-data":
{
"name": "System komentarzy - Disqus",
"description": "System komentarzy Disqus przechowuje komentarze dla serwisów internetowych. Korzystanie z tej wtyczki wymaga rejestracji w serwisie disqus.com.",
"author": "Bludit",
"email": "",
"website": "https://github.com/dignajar/bludit-plugins",
"version": "0.3",
"releaseDate": "2015-10-02"
},
"disqus-shortname": "Nazwa użytkownika Disqus",
"enable-disqus-on-pages": "Włącz Disqus na wszystkich stronach",
"enable-disqus-on-posts": "Włącz Disqus we wszystkich wpisach",
"enable-disqus-on-default-home-page": "Włącz Disqus na domyślnej stronie głównej"
}

View File

@ -18,9 +18,9 @@ class pluginDisqus extends Plugin {
{ {
parent::__construct(); parent::__construct();
// Disable the plugin IF ...
global $Url; global $Url;
// Disable the plugin IF ...
$this->disable = false; $this->disable = false;
if( (!$this->getDbField('enablePosts')) && ($Url->whereAmI()=='post') ) { if( (!$this->getDbField('enablePosts')) && ($Url->whereAmI()=='post') ) {

View File

@ -0,0 +1,16 @@
{
"plugin-data":
{
"name": "Narzędzia Google",
"description": "Wtyczka ta generuje kod metatagów pozwalający zweryfikować stronę z serwisem Narzędzia Google Dla Webmasterów oraz wygenerować kod JavaScript monitorujący ruch z usługą Google Analytics.",
"author": "Bludit",
"email": "",
"website": "https://github.com/dignajar/bludit-plugins",
"version": "0.3",
"releaseDate": "2015-10-02"
},
"google-webmasters-tools": "Google Webmasters tools",
"google-analytics-tracking-id": "Google Analytics Tracking ID",
"complete-this-field-with-the-google-site-verification": "Complete this field with the Google Site verification to verify the site owner.",
"complete-this-field-with-the-tracking-id": "Complete this field with the Tracking ID to generate the Javascript tracking code for Google Analytics."
}

View File

@ -0,0 +1,15 @@
{
"plugin-data":
{
"name": "Tryb konserwacji",
"description": "Przełącz stronę w tryb konwersacji (wówczas działać będzie tylko kokpit).",
"author": "Bludit",
"email": "",
"website": "https://github.com/dignajar/bludit-plugins",
"version": "0.3",
"releaseDate": "2015-10-02"
},
"enable-maintence-mode": "Włącz tryb konwersacji",
"message": "Wiadomość"
}

View File

@ -0,0 +1,12 @@
{
"plugin-data":
{
"name": "Open Graph",
"description": "Protokół Open Graph zezwala stronie na stosowanie meta tagów używanych w serwisach społecznościowych.",
"author": "Bludit",
"email": "",
"website": "https://github.com/dignajar/bludit-plugins",
"version": "0.3",
"releaseDate": "2015-10-02"
}
}

View File

@ -0,0 +1,15 @@
{
"plugin-data":
{
"name": "Lista stron",
"description": "Wyświetla listę stron znajdujących się w witrynie.",
"author": "Bludit",
"email": "",
"website": "https://github.com/dignajar/bludit-plugins",
"version": "0.3",
"releaseDate": "2015-10-02"
},
"home": "Strona główna",
"show-home-link": "Pokaż odnośnik do strony głównek"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,9 @@
This version of SimpleMDE have a little changes for Bludit.
--- Image preview hack ---
Original
<img src="'+e+'"
Bludit hack
<img src="'+HTML_PATH_UPLOADS+e+'"

File diff suppressed because one or more lines are too long

View File

@ -6,8 +6,8 @@
"author": "NextStepWebs", "author": "NextStepWebs",
"email": "", "email": "",
"website": "https://github.com/NextStepWebs/simplemde-markdown-editor", "website": "https://github.com/NextStepWebs/simplemde-markdown-editor",
"version": "1.7.4", "version": "1.8.0",
"releaseDate": "2015-10-02" "releaseDate": "2015-10-29"
}, },
"toolbar": "Toolbar", "toolbar": "Toolbar",
"tab-size": "Tab size" "tab-size": "Tab size"

View File

@ -2,7 +2,7 @@
"plugin-data": "plugin-data":
{ {
"name": "SimpleMDE", "name": "SimpleMDE",
"description": "Simple, facil y hermoso editor Markdown desarrollado por @WesCossick. Adaptado por Diego Najar para Bludit." "description": "Simple y facil editor Markdown desarrollado por @WesCossick. Adaptado por Diego Najar para Bludit."
}, },
"toolbar": "Barra de herramientas", "toolbar": "Barra de herramientas",
"tab-size": "Tamaño de la tabulación" "tab-size": "Tamaño de la tabulación"

View File

@ -0,0 +1,14 @@
{
"plugin-data":
{
"name": "Edytor SimpleMDE",
"description": "Prosty, piękny i osadzony w JavaScript edytor markdown stworzony przez @WesCossick. Na potrzeby Bludit dostosowany przez Diego Najara.",
"author": "NextStepWebs",
"email": "",
"website": "https://github.com/NextStepWebs/simplemde-markdown-editor",
"version": "1.7.4",
"releaseDate": "2015-10-02"
},
"toolbar": "Pasek narzędzi",
"tab-size": "Rozmiar wcięcia"
}

View File

@ -46,10 +46,13 @@ class pluginsimpleMDE extends Plugin {
// Path plugin. // Path plugin.
$pluginPath = $this->htmlPath(); $pluginPath = $this->htmlPath();
// Load CSS // SimpleMDE css
$html .= '<link rel="stylesheet" href="'.$pluginPath.'css/simplemde.min.css">'; $html .= '<link rel="stylesheet" href="'.$pluginPath.'css/simplemde.min.css">';
// Load Javascript // Font-awesome is a dependency of SimpleMDE
$html .= '<link rel="stylesheet" href="'.$pluginPath.'css/font-awesome.min.css">';
// SimpleMDE js
$html .= '<script src="'.$pluginPath.'js/simplemde.min.js"></script>'; $html .= '<script src="'.$pluginPath.'js/simplemde.min.js"></script>';
// Hack for Bludit // Hack for Bludit
@ -85,11 +88,19 @@ class pluginsimpleMDE extends Plugin {
toolbarGuideIcon: true, toolbarGuideIcon: true,
autofocus: false, autofocus: false,
lineWrapping: true, lineWrapping: true,
autoDownloadFontAwesome: false,
indentWithTabs: true, indentWithTabs: true,
tabSize: '.$this->getDbField('tabSize').', tabSize: '.$this->getDbField('tabSize').',
spellChecker: false, spellChecker: false,
toolbar: ['.Sanitize::htmlDecode($this->getDbField('toolbar')).'] toolbar: ['.Sanitize::htmlDecode($this->getDbField('toolbar')).']
});'; });';
$html .= '$("#jsaddImage").on("click", function() {
var filename = $("#jsimageList option:selected" ).text();
var text = simplemde.value();
simplemde.value(text + "![alt text]("+filename+")" + "\n");
});';
$html .= '}); </script>'; $html .= '}); </script>';
} }

View File

@ -0,0 +1,12 @@
{
"plugin-data":
{
"name": "Lista tagów",
"description": "Wyświetla wszystkie tagi w postaci listy.",
"author": "Bludit",
"email": "",
"website": "https://github.com/dignajar/bludit-plugins",
"version": "0.3",
"releaseDate": "2015-10-02"
}
}