Post scheduler
This commit is contained in:
parent
0c5b90521b
commit
66bcaa33e3
|
@ -0,0 +1,7 @@
|
||||||
|
# Bludit
|
||||||
|
|
||||||
|
If you are reading this, you must enable rewrite module.
|
||||||
|
|
||||||
|
Documentation:
|
||||||
|
- http://docs.bludit.com/en/getting-started/requirements
|
||||||
|
- http://docs.bludit.com/en/troubleshooting/browser-returns-not-found
|
|
@ -18,10 +18,6 @@ function setSettings($args)
|
||||||
global $Site;
|
global $Site;
|
||||||
global $Language;
|
global $Language;
|
||||||
|
|
||||||
if(!isset($args['advancedOptions'])) {
|
|
||||||
$args['advancedOptions'] = 'false';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add slash at the begin and end.
|
// Add slash at the begin and end.
|
||||||
// This fields are in the settings->advanced mode
|
// This fields are in the settings->advanced mode
|
||||||
if(isset($args['advanced'])) {
|
if(isset($args['advanced'])) {
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Bludit - Test rewrite module</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<p>Error, enable rewrite module.</p>
|
|
||||||
<p>
|
|
||||||
<b>Documentation:</b><br>
|
|
||||||
<a href="http://docs.bludit.com/en/getting-started/requirements">http://docs.bludit.com/en/getting-started/requirements</a> <br>
|
|
||||||
<a href="http://docs.bludit.com/en/troubleshooting/browser-returns-not-found">http://docs.bludit.com/en/troubleshooting/browser-returns-not-found</a><br>
|
|
||||||
</p>
|
|
||||||
</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -20,6 +20,10 @@ div.unit-80 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span.label {
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------- FONTS AWESOME ----------- */
|
/* ----------- FONTS AWESOME ----------- */
|
||||||
.fa-right {
|
.fa-right {
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
|
@ -201,7 +205,6 @@ div.dashboardBox ul.menu li.description:last-child {
|
||||||
|
|
||||||
|
|
||||||
/* ----------- FORMS ----------- */
|
/* ----------- FORMS ----------- */
|
||||||
|
|
||||||
form h4 {
|
form h4 {
|
||||||
border-bottom: 1px solid #e2e2e2;
|
border-bottom: 1px solid #e2e2e2;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
@ -210,9 +213,27 @@ form h4 {
|
||||||
width: 60%;
|
width: 60%;
|
||||||
}
|
}
|
||||||
|
|
||||||
p.advOptions {
|
#jsadvancedButton {
|
||||||
color: #777;
|
display: block;
|
||||||
font-size: 0.8em;
|
margin-bottom: 1.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#jsadvancedOptions {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
color: #fff;
|
||||||
|
background: #999999;
|
||||||
|
padding: 0.3em 1.3em !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-blue {
|
||||||
|
background: #2672ec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-red {
|
||||||
|
background: #EC2626;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.btn:hover {
|
a.btn:hover {
|
||||||
|
|
|
@ -0,0 +1,568 @@
|
||||||
|
.xdsoft_datetimepicker {
|
||||||
|
box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.506);
|
||||||
|
background: #fff;
|
||||||
|
border-bottom: 1px solid #bbb;
|
||||||
|
border-left: 1px solid #ccc;
|
||||||
|
border-right: 1px solid #ccc;
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
color: #333;
|
||||||
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
padding: 8px;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-top: 2px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9999;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker.xdsoft_rtl {
|
||||||
|
padding: 8px 0 8px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker iframe {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 75px;
|
||||||
|
height: 210px;
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*For IE8 or lower*/
|
||||||
|
.xdsoft_datetimepicker button {
|
||||||
|
border: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_noselect {
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
-o-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_noselect::selection { background: transparent }
|
||||||
|
.xdsoft_noselect::-moz-selection { background: transparent }
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_inline {
|
||||||
|
display: inline-block;
|
||||||
|
position: static;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker * {
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_datepicker {
|
||||||
|
width: 224px;
|
||||||
|
float: left;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_datepicker {
|
||||||
|
float: right;
|
||||||
|
margin-right: 8px;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker {
|
||||||
|
width: 256px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker {
|
||||||
|
width: 58px;
|
||||||
|
float: left;
|
||||||
|
text-align: center;
|
||||||
|
margin-left: 8px;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker {
|
||||||
|
float: right;
|
||||||
|
margin-right: 8px;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker {
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-bottom: 3px
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_mounthpicker {
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label i,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_prev,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_next,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_today_button {
|
||||||
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC);
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label i {
|
||||||
|
opacity: 0.5;
|
||||||
|
background-position: -92px -19px;
|
||||||
|
display: inline-block;
|
||||||
|
width: 9px;
|
||||||
|
height: 20px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_prev {
|
||||||
|
float: left;
|
||||||
|
background-position: -20px 0;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker .xdsoft_today_button {
|
||||||
|
float: left;
|
||||||
|
background-position: -70px 0;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_next {
|
||||||
|
float: right;
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_next,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_prev ,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_today_button {
|
||||||
|
background-color: transparent;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
border: 0 none;
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
height: 30px;
|
||||||
|
opacity: 0.5;
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||||
|
outline: medium none;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: relative;
|
||||||
|
text-indent: 100%;
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 20px;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next {
|
||||||
|
float: none;
|
||||||
|
background-position: -40px -15px;
|
||||||
|
height: 15px;
|
||||||
|
width: 30px;
|
||||||
|
display: block;
|
||||||
|
margin-left: 14px;
|
||||||
|
margin-top: 7px;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_prev,
|
||||||
|
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_next {
|
||||||
|
float: none;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev {
|
||||||
|
background-position: -40px 0;
|
||||||
|
margin-bottom: 7px;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box {
|
||||||
|
height: 151px;
|
||||||
|
overflow: hidden;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div {
|
||||||
|
background: #f5f5f5;
|
||||||
|
border-top: 1px solid #ddd;
|
||||||
|
color: #666;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
border-collapse: collapse;
|
||||||
|
cursor: pointer;
|
||||||
|
border-bottom-width: 0;
|
||||||
|
height: 25px;
|
||||||
|
line-height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child {
|
||||||
|
border-top-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_today_button:hover,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_next:hover,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_prev:hover {
|
||||||
|
opacity: 1;
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label {
|
||||||
|
display: inline;
|
||||||
|
position: relative;
|
||||||
|
z-index: 9999;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 3px;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #fff;
|
||||||
|
float: left;
|
||||||
|
width: 182px;
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label:hover>span {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label:hover i {
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select {
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 30px;
|
||||||
|
z-index: 101;
|
||||||
|
display: none;
|
||||||
|
background: #fff;
|
||||||
|
max-height: 160px;
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{ right: -7px }
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{ right: 2px }
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover {
|
||||||
|
color: #fff;
|
||||||
|
background: #ff8000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option {
|
||||||
|
padding: 2px 10px 2px 5px;
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current {
|
||||||
|
background: #33aaff;
|
||||||
|
box-shadow: #178fe5 0 1px 3px 0 inset;
|
||||||
|
color: #fff;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_month {
|
||||||
|
width: 100px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_year{
|
||||||
|
width: 48px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td > div {
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar th {
|
||||||
|
height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th {
|
||||||
|
width: 14.2857142%;
|
||||||
|
background: #f5f5f5;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
color: #666;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: right;
|
||||||
|
vertical-align: middle;
|
||||||
|
padding: 0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
cursor: pointer;
|
||||||
|
height: 25px;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th {
|
||||||
|
width: 12.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar th {
|
||||||
|
background: #f1f1f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today {
|
||||||
|
color: #33aaff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_default {
|
||||||
|
background: #ffe9d2;
|
||||||
|
box-shadow: #ffb871 0 1px 4px 0 inset;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_mint {
|
||||||
|
background: #c1ffc9;
|
||||||
|
box-shadow: #00dd1c 0 1px 4px 0 inset;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current {
|
||||||
|
background: #33aaff;
|
||||||
|
box-shadow: #178fe5 0 1px 3px 0 inset;
|
||||||
|
color: #fff;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled {
|
||||||
|
opacity: 0.5;
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled {
|
||||||
|
opacity: 0.2;
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td:hover,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover {
|
||||||
|
color: #fff !important;
|
||||||
|
background: #ff8000 !important;
|
||||||
|
box-shadow: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover {
|
||||||
|
background: #33aaff !important;
|
||||||
|
box-shadow: #178fe5 0 1px 3px 0 inset !important;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,
|
||||||
|
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover {
|
||||||
|
color: inherit !important;
|
||||||
|
background: inherit !important;
|
||||||
|
box-shadow: inherit !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_calendar th {
|
||||||
|
font-weight: 700;
|
||||||
|
text-align: center;
|
||||||
|
color: #999;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_copyright {
|
||||||
|
color: #ccc !important;
|
||||||
|
font-size: 10px;
|
||||||
|
clear: both;
|
||||||
|
float: none;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker .xdsoft_copyright a { color: #eee !important }
|
||||||
|
.xdsoft_datetimepicker .xdsoft_copyright a:hover { color: #aaa !important }
|
||||||
|
|
||||||
|
.xdsoft_time_box {
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
.xdsoft_scrollbar >.xdsoft_scroller {
|
||||||
|
background: #ccc !important;
|
||||||
|
height: 20px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.xdsoft_scrollbar {
|
||||||
|
position: absolute;
|
||||||
|
width: 7px;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_scrollbar {
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
.xdsoft_scroller_box {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark {
|
||||||
|
box-shadow: 0 5px 15px -5px rgba(255, 255, 255, 0.506);
|
||||||
|
background: #000;
|
||||||
|
border-bottom: 1px solid #444;
|
||||||
|
border-left: 1px solid #333;
|
||||||
|
border-right: 1px solid #333;
|
||||||
|
border-top: 1px solid #333;
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box {
|
||||||
|
border-bottom: 1px solid #222;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div {
|
||||||
|
background: #0a0a0a;
|
||||||
|
border-top: 1px solid #222;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label {
|
||||||
|
background-color: #000;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select {
|
||||||
|
border: 1px solid #333;
|
||||||
|
background: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover {
|
||||||
|
color: #000;
|
||||||
|
background: #007fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current {
|
||||||
|
background: #cc5500;
|
||||||
|
box-shadow: #b03e00 0 1px 3px 0 inset;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i,
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev,
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next,
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button {
|
||||||
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==);
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td,
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th {
|
||||||
|
background: #0a0a0a;
|
||||||
|
border: 1px solid #222;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th {
|
||||||
|
background: #0e0e0e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today {
|
||||||
|
color: #cc5500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_default {
|
||||||
|
background: #ffe9d2;
|
||||||
|
box-shadow: #ffb871 0 1px 4px 0 inset;
|
||||||
|
color:#000;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_mint {
|
||||||
|
background: #c1ffc9;
|
||||||
|
box-shadow: #00dd1c 0 1px 4px 0 inset;
|
||||||
|
color:#000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default,
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current,
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current {
|
||||||
|
background: #cc5500;
|
||||||
|
box-shadow: #b03e00 0 1px 3px 0 inset;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover,
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover {
|
||||||
|
color: #000 !important;
|
||||||
|
background: #007fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright { color: #333 !important }
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a { color: #111 !important }
|
||||||
|
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover { color: #555 !important }
|
||||||
|
|
||||||
|
.xdsoft_dark .xdsoft_time_box {
|
||||||
|
border: 1px solid #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller {
|
||||||
|
background: #333 !important;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker .xdsoft_save_selected {
|
||||||
|
display: block;
|
||||||
|
border: 1px solid #dddddd !important;
|
||||||
|
margin-top: 5px;
|
||||||
|
width: 100%;
|
||||||
|
color: #454551;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker .blue-gradient-button {
|
||||||
|
font-family: "museo-sans", "Book Antiqua", sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 300;
|
||||||
|
color: #82878c;
|
||||||
|
height: 28px;
|
||||||
|
position: relative;
|
||||||
|
padding: 4px 17px 4px 33px;
|
||||||
|
border: 1px solid #d7d8da;
|
||||||
|
background: -moz-linear-gradient(top, #fff 0%, #f4f8fa 73%);
|
||||||
|
/* FF3.6+ */
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(73%, #f4f8fa));
|
||||||
|
/* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, #fff 0%, #f4f8fa 73%);
|
||||||
|
/* Chrome10+,Safari5.1+ */
|
||||||
|
background: -o-linear-gradient(top, #fff 0%, #f4f8fa 73%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background: -ms-linear-gradient(top, #fff 0%, #f4f8fa 73%);
|
||||||
|
/* IE10+ */
|
||||||
|
background: linear-gradient(to bottom, #fff 0%, #f4f8fa 73%);
|
||||||
|
/* W3C */
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fff', endColorstr='#f4f8fa',GradientType=0 );
|
||||||
|
/* IE6-9 */
|
||||||
|
}
|
||||||
|
.xdsoft_datetimepicker .blue-gradient-button:hover, .xdsoft_datetimepicker .blue-gradient-button:focus, .xdsoft_datetimepicker .blue-gradient-button:hover span, .xdsoft_datetimepicker .blue-gradient-button:focus span {
|
||||||
|
color: #454551;
|
||||||
|
background: -moz-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
|
||||||
|
/* FF3.6+ */
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f4f8fa), color-stop(73%, #FFF));
|
||||||
|
/* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
|
||||||
|
/* Chrome10+,Safari5.1+ */
|
||||||
|
background: -o-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background: -ms-linear-gradient(top, #f4f8fa 0%, #FFF 73%);
|
||||||
|
/* IE10+ */
|
||||||
|
background: linear-gradient(to bottom, #f4f8fa 0%, #FFF 73%);
|
||||||
|
/* W3C */
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f8fa', endColorstr='#FFF',GradientType=0 );
|
||||||
|
/* IE6-9 */
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -9,10 +9,12 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="./css/kube.min.css?version=<?php echo BLUDIT_VERSION ?>">
|
<link rel="stylesheet" href="./css/kube.min.css?version=<?php echo BLUDIT_VERSION ?>">
|
||||||
<link rel="stylesheet" href="./css/default.css?version=<?php echo BLUDIT_VERSION ?>">
|
<link rel="stylesheet" href="./css/default.css?version=<?php echo BLUDIT_VERSION ?>">
|
||||||
|
<link rel="stylesheet" href="./css/jquery.datetimepicker.css?version=<?php echo BLUDIT_VERSION ?>">
|
||||||
<link rel="stylesheet" href="./css/css/font-awesome.css?version=<?php echo BLUDIT_VERSION ?>">
|
<link rel="stylesheet" href="./css/css/font-awesome.css?version=<?php echo BLUDIT_VERSION ?>">
|
||||||
|
|
||||||
<script src="./js/jquery.min.js"></script>
|
<script src="./js/jquery.min.js?version=<?php echo BLUDIT_VERSION ?>"></script>
|
||||||
<script src="./js/kube.min.js"></script>
|
<script src="./js/kube.min.js?version=<?php echo BLUDIT_VERSION ?>"></script>
|
||||||
|
<script src="./js/jquery.datetimepicker.js?version=<?php echo BLUDIT_VERSION ?>"></script>
|
||||||
|
|
||||||
<!-- Plugins -->
|
<!-- Plugins -->
|
||||||
<?php Theme::plugins('adminHead') ?>
|
<?php Theme::plugins('adminHead') ?>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -14,18 +14,9 @@
|
||||||
<textarea id="jscontent" name="content" rows="15" class="width-80"><?php echo $_Page->contentRaw(false) ?></textarea>
|
<textarea id="jscontent" name="content" rows="15" class="width-80"><?php echo $_Page->contentRaw(false) ?></textarea>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<?php
|
<button id="jsadvancedButton" class="btn btn-smaller"><?php $Language->p('Advanced options') ?></button>
|
||||||
if($Site->advancedOptions()) {
|
|
||||||
echo '<div id="jsadvancedOptions">';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo '<p class="advOptions">'.$Language->g('Enable more features at').' <a href="'.HTML_PATH_ADMIN_ROOT.'settings#advanced">'.$Language->g('settings-advanced-writting-settings').'</a></p>';
|
|
||||||
echo '<div id="jsadvancedOptions" style="display:none">';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<h4><?php $Language->p('Advanced options') ?></h4>
|
<div id="jsadvancedOptions">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
// Remove setting pages parents if the page is a parent.
|
// Remove setting pages parents if the page is a parent.
|
||||||
|
@ -121,11 +112,16 @@ $(document).ready(function()
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#jsdelete").click(function() {
|
$("#jsdelete").click(function() {
|
||||||
if(!confirm("<?php $Language->p('confirm-delete-this-action-cannot-be-undone') ?>")) {
|
if(confirm("<?php $Language->p('confirm-delete-this-action-cannot-be-undone') ?>")==false) {
|
||||||
event.preventDefault();
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#jsadvancedButton").click(function() {
|
||||||
|
$("#jsadvancedOptions").slideToggle();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
|
@ -2,56 +2,54 @@
|
||||||
|
|
||||||
<form method="post" action="" class="forms">
|
<form method="post" action="" class="forms">
|
||||||
|
|
||||||
<input type="hidden" id="jskey" name="key" value="<?php echo $_Post->key() ?>">
|
<input type="hidden" id="jskey" name="key" value="<?php echo $_Post->key() ?>">
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Title') ?>
|
<?php $Language->p('Title') ?>
|
||||||
<input id="jstitle" name="title" type="text" class="width-80" value="<?php echo $_Post->title() ?>">
|
<input id="jstitle" name="title" type="text" class="width-80" value="<?php echo $_Post->title() ?>">
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Content') ?> <span class="forms-desc"><?php $Language->p('HTML and Markdown code supported') ?></span>
|
<?php $Language->p('Content') ?> <span class="forms-desc"><?php $Language->p('HTML and Markdown code supported') ?></span>
|
||||||
<textarea id="jscontent" name="content" rows="15" class="width-80"><?php echo $_Post->contentRaw(false) ?></textarea>
|
<textarea id="jscontent" name="content" rows="15" class="width-80"><?php echo $_Post->contentRaw(false) ?></textarea>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<?php
|
<button id="jsadvancedButton" class="btn btn-smaller"><?php $Language->p('Advanced options') ?></button>
|
||||||
if($Site->advancedOptions()) {
|
|
||||||
echo '<div id="jsadvancedOptions">';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo '<p class="advOptions">'.$Language->g('Enable more features at').' <a href="'.HTML_PATH_ADMIN_ROOT.'settings#advanced">'.$Language->g('settings-advanced-writting-settings').'</a></p>';
|
|
||||||
echo '<div id="jsadvancedOptions" style="display:none">';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<h4><?php $Language->p('Advanced options') ?></h4>
|
<div id="jsadvancedOptions">
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Friendly Url') ?>
|
<?php $Language->p('Date') ?>
|
||||||
<div class="input-groups width-50">
|
<input name="date" id="jsdate" type="text" value="<?php echo $_Post->date() ?>">
|
||||||
<span class="input-prepend"><?php echo $Site->urlPost() ?><span id="jsparentExample"></span></span>
|
<span class="forms-desc"><?php $Language->p('You can schedule the post just select the date and time') ?></span>
|
||||||
<input id="jsslug" type="text" name="slug" value="<?php echo $_Post->slug() ?>">
|
</label>
|
||||||
</div>
|
|
||||||
<span class="forms-desc"><?php $Language->p('you-can-modify-the-url-which-identifies') ?></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Description') ?>
|
<?php $Language->p('Friendly Url') ?>
|
||||||
<input id="jsdescription" type="text" name="description" class="width-50" value="<?php echo $_Post->description() ?>">
|
<div class="input-groups width-50">
|
||||||
<span class="forms-desc"><?php $Language->p('this-field-can-help-describe-the-content') ?></span>
|
<span class="input-prepend"><?php echo $Site->urlPost() ?><span id="jsparentExample"></span></span>
|
||||||
</label>
|
<input id="jsslug" type="text" name="slug" value="<?php echo $_Post->slug() ?>">
|
||||||
|
</div>
|
||||||
|
<span class="forms-desc"><?php $Language->p('you-can-modify-the-url-which-identifies') ?></span>
|
||||||
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Tags') ?>
|
<?php $Language->p('Description') ?>
|
||||||
<input id="jstags" name="tags" type="text" class="width-50" value="<?php echo $_Post->tags() ?>">
|
<input id="jsdescription" type="text" name="description" class="width-50" value="<?php echo $_Post->description() ?>">
|
||||||
<span class="forms-desc"><?php $Language->p('write-the-tags-separeted-by-comma') ?></span>
|
<span class="forms-desc"><?php $Language->p('this-field-can-help-describe-the-content') ?></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
|
||||||
|
|
||||||
<button class="btn btn-blue" name="publish"><?php echo ($_Post->published()?$Language->p('Save'):$Language->p('Publish now')) ?></button>
|
<label>
|
||||||
<button class="btn" name="draft"><?php $Language->p('Draft') ?></button>
|
<?php $Language->p('Tags') ?>
|
||||||
<button id="jsdelete" class="btn" name="delete"><?php $Language->p('Delete') ?></button>
|
<input id="jstags" name="tags" type="text" class="width-50" value="<?php echo $_Post->tags() ?>">
|
||||||
|
<span class="forms-desc"><?php $Language->p('write-the-tags-separeted-by-comma') ?></span>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button class="btn btn-blue" name="publish"><?php echo ($_Post->published()?$Language->p('Save'):$Language->p('Publish')) ?></button>
|
||||||
|
<button class="btn" name="draft"><?php $Language->p('Draft') ?></button>
|
||||||
|
<button id="jsdelete" class="btn" name="delete"><?php $Language->p('Delete') ?></button>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
@ -59,25 +57,30 @@
|
||||||
|
|
||||||
$(document).ready(function()
|
$(document).ready(function()
|
||||||
{
|
{
|
||||||
var key = $("#jskey").val();
|
var key = $("#jskey").val();
|
||||||
|
|
||||||
$("#jstitle").keyup(function() {
|
$("#jsdate").datetimepicker({format:"<?php echo DB_DATE_FORMAT ?>"});
|
||||||
var slug = $(this).val();
|
|
||||||
|
|
||||||
checkSlugPost(slug, key, $("#jsslug"));
|
$("#jstitle").keyup(function() {
|
||||||
});
|
var slug = $(this).val();
|
||||||
|
checkSlugPost(slug, key, $("#jsslug"));
|
||||||
|
});
|
||||||
|
|
||||||
$("#jsslug").keyup(function() {
|
$("#jsslug").keyup(function() {
|
||||||
var slug = $("#jsslug").val();
|
var slug = $("#jsslug").val();
|
||||||
|
checkSlugPost(slug, key, $("#jsslug"));
|
||||||
|
});
|
||||||
|
|
||||||
checkSlugPost(slug, key, $("#jsslug"));
|
$("#jsdelete").click(function() {
|
||||||
});
|
if(confirm("<?php $Language->p('confirm-delete-this-action-cannot-be-undone') ?>")==false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$("#jsdelete").click(function() {
|
$("#jsadvancedButton").click(function() {
|
||||||
if(!confirm("<?php $Language->p('confirm-delete-this-action-cannot-be-undone') ?>")) {
|
$("#jsadvancedOptions").slideToggle();
|
||||||
event.preventDefault();
|
return false;
|
||||||
}
|
});
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th><?php $Language->p('Title') ?></th>
|
<th><?php $Language->p('Title') ?></th>
|
||||||
<th><?php $Language->p('Published date') ?></th>
|
<th><?php $Language->p('Published date') ?></th>
|
||||||
<th><?php $Language->p('Modified date') ?></th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -15,10 +14,17 @@
|
||||||
|
|
||||||
foreach($posts as $Post)
|
foreach($posts as $Post)
|
||||||
{
|
{
|
||||||
|
$status = false;
|
||||||
|
if($Post->scheduled()) {
|
||||||
|
$status = $Language->g('Scheduled');
|
||||||
|
}
|
||||||
|
elseif(!$Post->published()) {
|
||||||
|
$status = $Language->g('Draft');
|
||||||
|
}
|
||||||
|
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo '<td><a href="'.HTML_PATH_ADMIN_ROOT.'edit-post/'.$Post->key().'">'.($Post->published()?'':'<span class="label label-outline label-red smaller">'.$Language->g('Draft').'</span> ').($Post->title()?$Post->title():'<span class="label label-outline label-blue smaller">'.$Language->g('Empty title').'</span> ').'</a></td>';
|
echo '<td><a href="'.HTML_PATH_ADMIN_ROOT.'edit-post/'.$Post->key().'">'.($status?'<span class="label label-outline label-red smaller">'.$status.'</span>':'').($Post->title()?$Post->title():'<span class="label label-outline label-blue smaller">'.$Language->g('Empty title').'</span> ').'</a></td>';
|
||||||
echo '<td>'.$Post->dateCreated().'</td>';
|
echo '<td>'.$Post->date().'</td>';
|
||||||
echo '<td>'.$Post->timeago().'</td>';
|
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,18 +12,9 @@
|
||||||
<textarea id="jscontent" name="content" rows="15" class="width-80"></textarea>
|
<textarea id="jscontent" name="content" rows="15" class="width-80"></textarea>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<?php
|
<button id="jsadvancedButton" class="btn btn-smaller"><?php $Language->p('Advanced options') ?></button>
|
||||||
if($Site->advancedOptions()) {
|
|
||||||
echo '<div id="jsadvancedOptions">';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo '<p class="advOptions">'.$Language->g('Enable more features at').' <a href="'.HTML_PATH_ADMIN_ROOT.'settings#advanced">'.$Language->g('settings-advanced-writting-settings').'</a></p>';
|
|
||||||
echo '<div id="jsadvancedOptions" style="display:none">';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<h4><?php $Language->p('Advanced options') ?></h4>
|
<div id="jsadvancedOptions">
|
||||||
|
|
||||||
<label for="jsparent">
|
<label for="jsparent">
|
||||||
<?php $Language->p('Parent') ?>
|
<?php $Language->p('Parent') ?>
|
||||||
|
@ -104,6 +95,11 @@ $(document).ready(function()
|
||||||
checkSlugPage(text, parent, "", $("#jsslug"));
|
checkSlugPage(text, parent, "", $("#jsslug"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#jsadvancedButton").click(function() {
|
||||||
|
$("#jsadvancedOptions").slideToggle();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
|
@ -2,54 +2,51 @@
|
||||||
|
|
||||||
<form method="post" action="" class="forms">
|
<form method="post" action="" class="forms">
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Title') ?>
|
<?php $Language->p('Title') ?>
|
||||||
<input id="jstitle" name="title" type="text" class="width-80">
|
<input id="jstitle" name="title" type="text" class="width-80">
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Content') ?> <span class="forms-desc"><?php $Language->p('HTML and Markdown code supported') ?></span>
|
<?php $Language->p('Content') ?> <span class="forms-desc"><?php $Language->p('HTML and Markdown code supported') ?></span>
|
||||||
<textarea id="jscontent" name="content" rows="15" class="width-80"></textarea>
|
<textarea id="jscontent" name="content" rows="15" class="width-80"></textarea>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<?php
|
<button id="jsadvancedButton" class="btn btn-smaller"><?php $Language->p('Advanced options') ?></button>
|
||||||
if($Site->advancedOptions()) {
|
|
||||||
echo '<div id="jsadvancedOptions">';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo '<p class="advOptions">'.$Language->g('Enable more features at').' <a href="'.HTML_PATH_ADMIN_ROOT.'settings#advanced">'.$Language->g('settings-advanced-writting-settings').'</a></p>';
|
|
||||||
echo '<div id="jsadvancedOptions" style="display:none">';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<h4><?php $Language->p('Advanced options') ?></h4>
|
<div id="jsadvancedOptions">
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Friendly Url') ?>
|
<?php $Language->p('Date') ?>
|
||||||
<div class="input-groups width-50">
|
<input name="date" id="jsdate" type="text">
|
||||||
<span class="input-prepend"><?php echo $Site->urlPost() ?><span id="jsparentExample"></span></span>
|
<span class="forms-desc"><?php $Language->p('You can schedule the post just select the date and time') ?></span>
|
||||||
<input id="jsslug" name="slug" type="text">
|
</label>
|
||||||
</div>
|
|
||||||
<span class="forms-desc"><?php $Language->p('you-can-modify-the-url-which-identifies') ?></span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Description') ?>
|
<?php $Language->p('Friendly Url') ?>
|
||||||
<input id="jsdescription" name="description" type="text" class="width-50">
|
<div class="input-groups width-50">
|
||||||
<span class="forms-desc"><?php $Language->p('this-field-can-help-describe-the-content') ?></span>
|
<span class="input-prepend"><?php echo $Site->urlPost() ?><span id="jsparentExample"></span></span>
|
||||||
</label>
|
<input id="jsslug" name="slug" type="text">
|
||||||
|
</div>
|
||||||
|
<span class="forms-desc"><?php $Language->p('you-can-modify-the-url-which-identifies') ?></span>
|
||||||
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
<?php $Language->p('Tags') ?>
|
<?php $Language->p('Description') ?>
|
||||||
<input id="jstags" name="tags" type="text" class="width-50">
|
<input id="jsdescription" name="description" type="text" class="width-50">
|
||||||
<span class="forms-desc"><?php $Language->p('write-the-tags-separeted-by-comma') ?></span>
|
<span class="forms-desc"><?php $Language->p('this-field-can-help-describe-the-content') ?></span>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
</div>
|
<label>
|
||||||
|
<?php $Language->p('Tags') ?>
|
||||||
|
<input id="jstags" name="tags" type="text" class="width-50">
|
||||||
|
<span class="forms-desc"><?php $Language->p('write-the-tags-separeted-by-comma') ?></span>
|
||||||
|
</label>
|
||||||
|
|
||||||
<button class="btn btn-blue" name="publish"><?php $Language->p('Publish now') ?></button>
|
</div>
|
||||||
<button class="btn" name="draft"><?php $Language->p('Draft') ?></button>
|
|
||||||
|
<button class="btn btn-blue" name="publish"><?php $Language->p('Publish') ?></button>
|
||||||
|
<button class="btn" name="draft"><?php $Language->p('Draft') ?></button>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
@ -57,18 +54,24 @@
|
||||||
|
|
||||||
$(document).ready(function()
|
$(document).ready(function()
|
||||||
{
|
{
|
||||||
|
$("#jsdate").datetimepicker({format:"<?php echo DB_DATE_FORMAT ?>"});
|
||||||
|
|
||||||
$("#jstitle").keyup(function() {
|
$("#jstitle").keyup(function() {
|
||||||
var slug = $(this).val();
|
var slug = $(this).val();
|
||||||
|
|
||||||
checkSlugPost(slug, "", $("#jsslug"));
|
checkSlugPost(slug, "", $("#jsslug"));
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#jsslug").keyup(function() {
|
$("#jsslug").keyup(function() {
|
||||||
var slug = $("#jsslug").val();
|
var slug = $("#jsslug").val();
|
||||||
|
|
||||||
checkSlugPost(slug, "", $("#jsslug"));
|
checkSlugPost(slug, "", $("#jsslug"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#jsadvancedButton").click(function() {
|
||||||
|
$("#jsadvancedOptions").slideToggle();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -81,16 +81,6 @@
|
||||||
<div class="forms-desc"><?php $Language->p('the-url-of-your-site') ?></div>
|
<div class="forms-desc"><?php $Language->p('the-url-of-your-site') ?></div>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<h4><?php $Language->p('Writting settings') ?></h4>
|
|
||||||
|
|
||||||
<ul class="forms-list">
|
|
||||||
<li>
|
|
||||||
<input type="checkbox" name="advancedOptions" id="advancedOptions" value="true" <?php echo $Site->advancedOptions()?'checked':'' ?>>
|
|
||||||
<label for="advancedOptions"><?php $Language->p('Advanced options') ?></label>
|
|
||||||
<div class="forms-desc"><?php $Language->p('add-or-edit-description-tags-or') ?></div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h4><?php $Language->p('URL Filters') ?></h4>
|
<h4><?php $Language->p('URL Filters') ?></h4>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
echo '<td>'.$field['lastName'].'</td>';
|
echo '<td>'.$field['lastName'].'</td>';
|
||||||
echo '<td>'.$field['role'].'</td>';
|
echo '<td>'.$field['role'].'</td>';
|
||||||
echo '<td>'.$field['email'].'</td>';
|
echo '<td>'.$field['email'].'</td>';
|
||||||
echo '<td>'.Date::format($field['registered'], '%d %B').'</td>';
|
echo '<td>'.Date::format($field['registered'], DB_DATE_FORMAT, DB_DATE_FORMAT).'</td>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1,2 +1,6 @@
|
||||||
|
# Bludit
|
||||||
|
|
||||||
Set the correct permissions on this directory.
|
Set the correct permissions on this directory.
|
||||||
Check the documentation: http://docs.bludit.com/en/troubleshooting/writing-test-failure-err205
|
|
||||||
|
Documentation:
|
||||||
|
- http://docs.bludit.com/en/troubleshooting/writing-test-failure-err205
|
32
install.php
32
install.php
|
@ -42,6 +42,9 @@ if(!defined('JSON_PRETTY_PRINT')) {
|
||||||
// Check if JSON encode and decode are enabled.
|
// Check if JSON encode and decode are enabled.
|
||||||
define('JSON', function_exists('json_encode'));
|
define('JSON', function_exists('json_encode'));
|
||||||
|
|
||||||
|
// Database format date
|
||||||
|
define('DB_DATE_FORMAT', 'Y-m-d H:i');
|
||||||
|
|
||||||
// Charset, default UTF-8.
|
// Charset, default UTF-8.
|
||||||
define('CHARSET', 'UTF-8');
|
define('CHARSET', 'UTF-8');
|
||||||
|
|
||||||
|
@ -64,6 +67,7 @@ include(PATH_HELPERS.'text.class.php');
|
||||||
include(PATH_ABSTRACT.'dbjson.class.php');
|
include(PATH_ABSTRACT.'dbjson.class.php');
|
||||||
include(PATH_KERNEL.'dblanguage.class.php');
|
include(PATH_KERNEL.'dblanguage.class.php');
|
||||||
include(PATH_HELPERS.'log.class.php');
|
include(PATH_HELPERS.'log.class.php');
|
||||||
|
include(PATH_HELPERS.'date.class.php');
|
||||||
|
|
||||||
// Load language
|
// Load language
|
||||||
$localeFromHTTP = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
|
$localeFromHTTP = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
|
||||||
|
@ -164,6 +168,8 @@ function install($adminPassword, $email)
|
||||||
|
|
||||||
$stdOut = array();
|
$stdOut = array();
|
||||||
|
|
||||||
|
$currentDate = Date::current(DB_DATE_FORMAT);
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Create directories
|
// Create directories
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
@ -190,12 +196,6 @@ function install($adminPassword, $email)
|
||||||
error_log($errorText, 0);
|
error_log($errorText, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!mkdir(PATH_PLUGINS_DATABASES.'tinymce', $dirpermissions, true))
|
|
||||||
{
|
|
||||||
$errorText = 'Error when trying to created the directory=>'.PATH_PLUGINS_DATABASES;
|
|
||||||
error_log($errorText, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!mkdir(PATH_UPLOADS, $dirpermissions, true))
|
if(!mkdir(PATH_UPLOADS, $dirpermissions, true))
|
||||||
{
|
{
|
||||||
$errorText = 'Error when trying to created the directory=>'.PATH_UPLOADS;
|
$errorText = 'Error when trying to created the directory=>'.PATH_UPLOADS;
|
||||||
|
@ -215,8 +215,7 @@ function install($adminPassword, $email)
|
||||||
'username'=>'admin',
|
'username'=>'admin',
|
||||||
'tags'=>'',
|
'tags'=>'',
|
||||||
'status'=>'published',
|
'status'=>'published',
|
||||||
'unixTimeCreated'=>1430686755,
|
'date'=>$currentDate,
|
||||||
'unixTimeModified'=>0,
|
|
||||||
'position'=>0
|
'position'=>0
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -229,10 +228,9 @@ function install($adminPassword, $email)
|
||||||
'description'=>'Welcome to Bludit',
|
'description'=>'Welcome to Bludit',
|
||||||
'username'=>'admin',
|
'username'=>'admin',
|
||||||
'status'=>'published',
|
'status'=>'published',
|
||||||
'tags'=>'welcome, bludit, cms',
|
'tags'=>'bludit, cms, flat-file',
|
||||||
'allowComments'=>false,
|
'allowComments'=>false,
|
||||||
'unixTimeCreated'=>1430875199,
|
'date'=>$currentDate
|
||||||
'unixTimeModified'=>0
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
file_put_contents(PATH_DATABASES.'posts.php', $dataHead.json_encode($data, JSON_PRETTY_PRINT), LOCK_EX);
|
file_put_contents(PATH_DATABASES.'posts.php', $dataHead.json_encode($data, JSON_PRETTY_PRINT), LOCK_EX);
|
||||||
|
@ -253,7 +251,6 @@ function install($adminPassword, $email)
|
||||||
'uriPost'=>'/post/',
|
'uriPost'=>'/post/',
|
||||||
'uriPage'=>'/',
|
'uriPage'=>'/',
|
||||||
'uriTag'=>'/tag/',
|
'uriTag'=>'/tag/',
|
||||||
'advancedOptions'=>'false',
|
|
||||||
'url'=>'http://'.DOMAIN.HTML_PATH_ROOT
|
'url'=>'http://'.DOMAIN.HTML_PATH_ROOT
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -261,7 +258,6 @@ function install($adminPassword, $email)
|
||||||
|
|
||||||
$salt = getRandomString();
|
$salt = getRandomString();
|
||||||
$passwordHash = sha1($adminPassword.$salt);
|
$passwordHash = sha1($adminPassword.$salt);
|
||||||
$registered = time();
|
|
||||||
|
|
||||||
// File users.php
|
// File users.php
|
||||||
$data = array(
|
$data = array(
|
||||||
|
@ -273,7 +269,7 @@ function install($adminPassword, $email)
|
||||||
'password'=>$passwordHash,
|
'password'=>$passwordHash,
|
||||||
'salt'=>$salt,
|
'salt'=>$salt,
|
||||||
'email'=>$email,
|
'email'=>$email,
|
||||||
'registered'=>$registered
|
'registered'=>$currentDate
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -297,14 +293,6 @@ function install($adminPassword, $email)
|
||||||
|
|
||||||
file_put_contents(PATH_PLUGINS_DATABASES.'pages'.DS.'db.php', $dataHead.json_encode($data, JSON_PRETTY_PRINT), LOCK_EX);
|
file_put_contents(PATH_PLUGINS_DATABASES.'pages'.DS.'db.php', $dataHead.json_encode($data, JSON_PRETTY_PRINT), LOCK_EX);
|
||||||
|
|
||||||
// File plugins/tinymce/db.php
|
|
||||||
$data = array(
|
|
||||||
'plugins'=>'autoresize, fullscreen, pagebreak, link, textcolor, code',
|
|
||||||
'toolbar'=>'bold italic underline strikethrough | alignleft aligncenter alignright | bullist numlist | styleselect | link forecolor backcolor removeformat | pagebreak code fullscreen',
|
|
||||||
'position'=>'0'
|
|
||||||
);
|
|
||||||
|
|
||||||
file_put_contents(PATH_PLUGINS_DATABASES.'tinymce'.DS.'db.php', $dataHead.json_encode($data, JSON_PRETTY_PRINT), LOCK_EX);
|
|
||||||
|
|
||||||
// File index.txt for error page
|
// File index.txt for error page
|
||||||
$data = 'Title: '.$Language->get('Error').'
|
$data = 'Title: '.$Language->get('Error').'
|
||||||
|
|
|
@ -1,105 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
class Content
|
|
||||||
{
|
|
||||||
public $vars;
|
|
||||||
public $path;
|
|
||||||
|
|
||||||
function __construct($slug)
|
|
||||||
{
|
|
||||||
if($this->build($slug)===false)
|
|
||||||
$this->vars = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return true if valid post
|
|
||||||
public function valid()
|
|
||||||
{
|
|
||||||
return($this->vars!==false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function get_field($field)
|
|
||||||
{
|
|
||||||
if(isset($this->vars[$field]))
|
|
||||||
return $this->vars[$field];
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// $notoverwrite true if you don't want to replace the value if are set previusly
|
|
||||||
public function setField($field, $value, $overwrite=true)
|
|
||||||
{
|
|
||||||
if($overwrite || empty($this->vars[$field]))
|
|
||||||
{
|
|
||||||
$this->vars[$field] = $value;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// DEBUG, se puede borrar
|
|
||||||
public function show()
|
|
||||||
{
|
|
||||||
print_r($this->vars);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function build($slug)
|
|
||||||
{
|
|
||||||
// Check if directory exists for the slug
|
|
||||||
/*$path = glob($this->path.$slug, GLOB_ONLYDIR);
|
|
||||||
if(empty($path))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
|
|
||||||
// Get the first element from the directories array
|
|
||||||
//$path = $path[0];
|
|
||||||
*/
|
|
||||||
|
|
||||||
$path = $this->path.$slug;
|
|
||||||
if(!is_dir($path))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Path
|
|
||||||
$this->setField('path', $path);
|
|
||||||
|
|
||||||
// Slug
|
|
||||||
$this->setField('slug', $slug);
|
|
||||||
|
|
||||||
// Check if file exists
|
|
||||||
$file = $path.'/index.txt';
|
|
||||||
if(!file_exists($file))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
$tmp = 0;
|
|
||||||
$lines = file($file);
|
|
||||||
foreach($lines as $lineNumber=>$line)
|
|
||||||
{
|
|
||||||
$parts = array_map('trim', explode(':', $line, 2));
|
|
||||||
|
|
||||||
// Lowercase variable
|
|
||||||
$parts[0] = Text::lowercase($parts[0]);
|
|
||||||
|
|
||||||
if($parts[0]==='content')
|
|
||||||
{
|
|
||||||
$tmp = $lineNumber;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !empty($parts[0]) && !empty($parts[1]) )
|
|
||||||
$this->vars[$parts[0]] = $parts[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Content
|
|
||||||
if($tmp!=0)
|
|
||||||
{
|
|
||||||
$tmp++; // Next line after Content:
|
|
||||||
$output = array_slice($lines, $tmp); // Lines after Content
|
|
||||||
$this->vars['content'] = implode($output);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,78 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
// Database serialize
|
|
||||||
class DB_SERIALIZE
|
|
||||||
{
|
|
||||||
public $vars;
|
|
||||||
public $file;
|
|
||||||
public $firstLine;
|
|
||||||
|
|
||||||
function __construct($file, $firstLine=true)
|
|
||||||
{
|
|
||||||
$this->file = $file;
|
|
||||||
|
|
||||||
$lines = file($file);
|
|
||||||
|
|
||||||
$this->firstLine = $firstLine;
|
|
||||||
|
|
||||||
if($firstLine)
|
|
||||||
{
|
|
||||||
// Remove the first line.
|
|
||||||
unset($lines[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$implode = implode($lines);
|
|
||||||
|
|
||||||
$this->vars = $this->unserialize($implode);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function save()
|
|
||||||
{
|
|
||||||
if($this->firstLine)
|
|
||||||
$data = "<?php defined('BLUDIT') or die('Bludit CMS.'); ?>".PHP_EOL;
|
|
||||||
else
|
|
||||||
$data = '';
|
|
||||||
|
|
||||||
$data .= $this->serialize($this->vars);
|
|
||||||
|
|
||||||
// LOCK_EX flag to prevent anyone else writing to the file at the same time.
|
|
||||||
return file_put_contents($this->file, $data, LOCK_EX);
|
|
||||||
}
|
|
||||||
|
|
||||||
// DEBUG, ver si sirve para la instalacion, sino borrar
|
|
||||||
public function setDb($db)
|
|
||||||
{
|
|
||||||
$this->vars = $db;
|
|
||||||
|
|
||||||
return $this->save();
|
|
||||||
}
|
|
||||||
|
|
||||||
private function serialize($data)
|
|
||||||
{
|
|
||||||
// DEBUG: La idea es siempre serializar en json, habria que ver si siempre esta cargado json_enconde y decode
|
|
||||||
if(JSON)
|
|
||||||
return json_encode($data, JSON_PRETTY_PRINT);
|
|
||||||
|
|
||||||
return serialize($data);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function unserialize($data)
|
|
||||||
{
|
|
||||||
// DEBUG: La idea es siempre serializar en json, habria que ver si siempre esta cargado json_enconde y decode
|
|
||||||
if(JSON)
|
|
||||||
return json_decode($data, true);
|
|
||||||
|
|
||||||
return unserialize($data);
|
|
||||||
}
|
|
||||||
|
|
||||||
// DEBUG, se puede borrar
|
|
||||||
function show()
|
|
||||||
{
|
|
||||||
var_dump($this->vars);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
|
@ -64,7 +64,10 @@ define('POSTS_PER_PAGE_ADMIN', 10);
|
||||||
define('JSON', function_exists('json_encode'));
|
define('JSON', function_exists('json_encode'));
|
||||||
|
|
||||||
// TRUE if new posts hand-made set published, or FALSE for draft.
|
// TRUE if new posts hand-made set published, or FALSE for draft.
|
||||||
define('HANDMADE_PUBLISHED', true);
|
define('CLI_STATUS', 'published');
|
||||||
|
|
||||||
|
// Database format date
|
||||||
|
define('DB_DATE_FORMAT', 'Y-m-d H:i');
|
||||||
|
|
||||||
// Charset, default UTF-8.
|
// Charset, default UTF-8.
|
||||||
define('CHARSET', 'UTF-8');
|
define('CHARSET', 'UTF-8');
|
||||||
|
|
|
@ -45,18 +45,11 @@ function build_page($key)
|
||||||
// Foreach field from database.
|
// Foreach field from database.
|
||||||
foreach($db as $field=>$value)
|
foreach($db as $field=>$value)
|
||||||
{
|
{
|
||||||
if($field=='unixTimeCreated')
|
// Not overwrite the value from file.
|
||||||
{
|
$Page->setField($field, $value, false);
|
||||||
// Format dates, not overwrite from file fields.
|
|
||||||
$Page->setField('unixTimeCreated', $value, false);
|
// Overwrite the value on the db.
|
||||||
$Page->setField('date', Date::format($value, '%d %B'), false);
|
//$dbPages->setDb($key, $field, $value);
|
||||||
$Page->setField('timeago', Date::timeago($value), false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Other fields, not overwrite from file fields.
|
|
||||||
$Page->setField($field, $value, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Content in raw format
|
// Content in raw format
|
||||||
|
|
|
@ -17,14 +17,14 @@ function buildPost($key)
|
||||||
global $Parsedown;
|
global $Parsedown;
|
||||||
global $Site;
|
global $Site;
|
||||||
|
|
||||||
// Post object.
|
// Post object, this get the content from the file.
|
||||||
$Post = new Post($key);
|
$Post = new Post($key);
|
||||||
if( !$Post->isValid() ) {
|
if( !$Post->isValid() ) {
|
||||||
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying build the post from file with key: '.$key);
|
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying build the post from file with key: '.$key);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Page database.
|
// Page database, this get the contente from the database json.
|
||||||
$db = $dbPosts->getDb($key);
|
$db = $dbPosts->getDb($key);
|
||||||
if( !$db ) {
|
if( !$db ) {
|
||||||
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying build the post from database with key: '.$key);
|
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying build the post from database with key: '.$key);
|
||||||
|
@ -34,18 +34,8 @@ function buildPost($key)
|
||||||
// Foreach field from database.
|
// Foreach field from database.
|
||||||
foreach($db as $field=>$value)
|
foreach($db as $field=>$value)
|
||||||
{
|
{
|
||||||
if($field=='unixTimeCreated')
|
// Not overwrite the value from file.
|
||||||
{
|
$Post->setField($field, $value, false);
|
||||||
// Format dates, not overwrite from file fields.
|
|
||||||
$Post->setField('unixTimeCreated', $value, false);
|
|
||||||
$Post->setField('date', Date::format($value, '%d %B'), false);
|
|
||||||
$Post->setField('timeago', Date::timeago($value), false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Other fields, not overwrite from file fields.
|
|
||||||
$Post->setField($field, $value, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Content in raw format
|
// Content in raw format
|
||||||
|
@ -99,6 +89,8 @@ function build_posts_per_page($pageNumber=0, $amount=5, $draftPosts=false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Main
|
// Main
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
|
@ -11,8 +11,7 @@ class dbPages extends dbJSON
|
||||||
'username'=> array('inFile'=>false, 'value'=>''),
|
'username'=> array('inFile'=>false, 'value'=>''),
|
||||||
'tags'=> array('inFile'=>false, 'value'=>''),
|
'tags'=> array('inFile'=>false, 'value'=>''),
|
||||||
'status'=> array('inFile'=>false, 'value'=>'draft'),
|
'status'=> array('inFile'=>false, 'value'=>'draft'),
|
||||||
'unixTimeCreated'=> array('inFile'=>false, 'value'=>0),
|
'date'=> array('inFile'=>false, 'value'=>0),
|
||||||
'unixTimeModified'=> array('inFile'=>false, 'value'=>0),
|
|
||||||
'position'=> array('inFile'=>false, 'value'=>0)
|
'position'=> array('inFile'=>false, 'value'=>0)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -27,18 +26,21 @@ class dbPages extends dbJSON
|
||||||
$dataForFile = array(); // This data will be saved in the file
|
$dataForFile = array(); // This data will be saved in the file
|
||||||
|
|
||||||
$key = $this->generateKey($args['slug'], $args['parent']);
|
$key = $this->generateKey($args['slug'], $args['parent']);
|
||||||
|
/*
|
||||||
if($key===false) {
|
if($key===false) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
// The user is always the one loggued.
|
// The user is always the one 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The current unix time stamp.
|
// Current date.
|
||||||
$args['unixTimeCreated'] = Date::unixTime();
|
if(empty($args['date'])) {
|
||||||
|
$args['date'] = Date::current(DB_DATE_FORMAT);
|
||||||
|
}
|
||||||
|
|
||||||
// Verify arguments with the database fields.
|
// Verify arguments with the database fields.
|
||||||
foreach($this->dbFields as $field=>$options)
|
foreach($this->dbFields as $field=>$options)
|
||||||
|
@ -109,14 +111,12 @@ class dbPages extends dbJSON
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unix time created and modified.
|
// If the page is draft then the time created is now.
|
||||||
// If the page is a draft then the time created is now.
|
|
||||||
if( $this->db[$args['key']]['status']=='draft' ) {
|
if( $this->db[$args['key']]['status']=='draft' ) {
|
||||||
$args['unixTimeCreated'] = Date::unixTime();
|
$args['date'] = Date::current(DB_DATE_FORMAT);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$args['unixTimeCreated'] = $this->db[$args['key']]['unixTimeCreated'];
|
$args['date'] = $this->db[$args['key']]['date'];
|
||||||
$args['unixTimeModified'] = Date::unixTime();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify arguments with the database fields.
|
// Verify arguments with the database fields.
|
||||||
|
@ -289,6 +289,80 @@ class dbPages extends dbJSON
|
||||||
return $this->db;
|
return $this->db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function regenerate()
|
||||||
|
{
|
||||||
|
$db = $this->db;
|
||||||
|
$newPaths = array();
|
||||||
|
$fields = array();
|
||||||
|
|
||||||
|
// Default fields and value
|
||||||
|
foreach($this->dbFields as $field=>$options) {
|
||||||
|
if(!$options['inFile']) {
|
||||||
|
$fields[$field] = $options['value'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$fields['status'] = CLI_STATUS;
|
||||||
|
$fields['date'] = Date::current(DB_DATE_FORMAT);
|
||||||
|
|
||||||
|
$tmpPaths = glob(PATH_PAGES.'*', GLOB_ONLYDIR);
|
||||||
|
foreach($tmpPaths as $directory)
|
||||||
|
{
|
||||||
|
$key = basename($directory);
|
||||||
|
|
||||||
|
if(file_exists($directory.DS.'index.txt')) {
|
||||||
|
// The key is the directory name
|
||||||
|
$newPaths[$key] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Recovery pages from subdirectories
|
||||||
|
$subPaths = glob($directory.DS.'*', GLOB_ONLYDIR);
|
||||||
|
foreach($subPaths as $subDirectory)
|
||||||
|
{
|
||||||
|
$subKey = basename($subDirectory);
|
||||||
|
|
||||||
|
if(file_exists($subDirectory.DS.'index.txt')) {
|
||||||
|
// The key is composed by the directory/subdirectory
|
||||||
|
$newPaths[$key.'/'.$subKey] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($newPaths as $key=>$value)
|
||||||
|
{
|
||||||
|
if(!isset($this->db[$key])) {
|
||||||
|
$this->db[$key] = $fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
$Page = new Page($key);
|
||||||
|
|
||||||
|
// Update all fields from FILE to DATABASE.
|
||||||
|
foreach($fields as $f=>$v)
|
||||||
|
{
|
||||||
|
if($Page->getField($f)) {
|
||||||
|
// DEBUG: Validar/Sanitizar valores, ej: validar formato fecha
|
||||||
|
$this->db[$key][$f] = $Page->getField($f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DEBUG: Update tags
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove old pages from db
|
||||||
|
foreach( array_diff_key($db, $newPaths) as $key=>$data ) {
|
||||||
|
unset($this->db[$key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the database.
|
||||||
|
if( $this->save() === false ) {
|
||||||
|
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to save the database file.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->db!=$db;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
public function regenerate()
|
public function regenerate()
|
||||||
{
|
{
|
||||||
$db = $this->db;
|
$db = $this->db;
|
||||||
|
@ -355,5 +429,5 @@ class dbPages extends dbJSON
|
||||||
|
|
||||||
return $this->db!=$db;
|
return $this->db!=$db;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,7 @@ class dbPosts extends dbJSON
|
||||||
'status'=> array('inFile'=>false, 'value'=>'draft'),
|
'status'=> array('inFile'=>false, 'value'=>'draft'),
|
||||||
'tags'=> array('inFile'=>false, 'value'=>''),
|
'tags'=> array('inFile'=>false, 'value'=>''),
|
||||||
'allowComments'=> array('inFile'=>false, 'value'=>false),
|
'allowComments'=> array('inFile'=>false, 'value'=>false),
|
||||||
'unixTimeCreated'=> array('inFile'=>false, 'value'=>0),
|
'date'=> array('inFile'=>false, 'value'=>'')
|
||||||
'unixTimeModified'=> array('inFile'=>false, 'value'=>0)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
private $numberPosts = array(
|
private $numberPosts = array(
|
||||||
|
@ -45,6 +44,15 @@ class dbPosts extends dbJSON
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setDb($key, $field, $value)
|
||||||
|
{
|
||||||
|
if($this->postExists($key)) {
|
||||||
|
$this->db[$key][$field] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Return TRUE if the post exists, FALSE otherwise.
|
// Return TRUE if the post exists, FALSE otherwise.
|
||||||
public function postExists($key)
|
public function postExists($key)
|
||||||
{
|
{
|
||||||
|
@ -87,15 +95,14 @@ 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 one loggued.
|
// The user is always the 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The current unix time stamp.
|
if(!Valid::date($args['date'], DB_DATE_FORMAT)) {
|
||||||
if(empty($args['unixTimeCreated'])) {
|
$args['date'] = Date::current(DB_DATE_FORMAT);
|
||||||
$args['unixTimeCreated'] = Date::unixTime();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify arguments with the database fields.
|
// Verify arguments with the database fields.
|
||||||
|
@ -156,14 +163,8 @@ class dbPosts extends dbJSON
|
||||||
|
|
||||||
public function edit($args)
|
public function edit($args)
|
||||||
{
|
{
|
||||||
// Unix time created and modified.
|
if( !Valid::date($args['date'], DB_DATE_FORMAT) ) {
|
||||||
// If the page is a draft then the time created is now.
|
$args['date'] = Date::current(DB_DATE_FORMAT);
|
||||||
if( $this->db[$args['key']]['status']=='draft' ) {
|
|
||||||
$args['unixTimeCreated'] = Date::unixTime();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$args['unixTimeCreated'] = $this->db[$args['key']]['unixTimeCreated'];
|
|
||||||
$args['unixTimeModified'] = Date::unixTime();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( $this->delete($args['key']) ) {
|
if( $this->delete($args['key']) ) {
|
||||||
|
@ -202,6 +203,69 @@ class dbPosts extends dbJSON
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function regenerate()
|
||||||
|
{
|
||||||
|
$db = $this->db;
|
||||||
|
$newPaths = array();
|
||||||
|
$fields = array();
|
||||||
|
|
||||||
|
// Default fields and value
|
||||||
|
foreach($this->dbFields as $field=>$options) {
|
||||||
|
if(!$options['inFile']) {
|
||||||
|
$fields[$field] = $options['value'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$fields['status'] = CLI_STATUS;
|
||||||
|
$fields['date'] = Date::current(DB_DATE_FORMAT);
|
||||||
|
|
||||||
|
// Recovery pages from the first level of directories
|
||||||
|
$tmpPaths = glob(PATH_POSTS.'*', GLOB_ONLYDIR);
|
||||||
|
foreach($tmpPaths as $directory)
|
||||||
|
{
|
||||||
|
$key = basename($directory);
|
||||||
|
|
||||||
|
if(file_exists($directory.DS.'index.txt')) {
|
||||||
|
// The key is the directory name
|
||||||
|
$newPaths[$key] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($newPaths as $key=>$value)
|
||||||
|
{
|
||||||
|
if(!isset($this->db[$key])) {
|
||||||
|
$this->db[$key] = $fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
$Post = new Post($key);
|
||||||
|
|
||||||
|
// Update all fields from FILE to DATABASE.
|
||||||
|
foreach($fields as $f=>$v)
|
||||||
|
{
|
||||||
|
if($Post->getField($f)) {
|
||||||
|
// DEBUG: Validar/Sanitizar valores, ej: validar formato fecha
|
||||||
|
$this->db[$key][$f] = $Post->getField($f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DEBUG: Update tags
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove old posts from db
|
||||||
|
foreach( array_diff_key($db, $newPaths) as $key=>$data ) {
|
||||||
|
unset($this->db[$key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the database.
|
||||||
|
if( $this->save() === false ) {
|
||||||
|
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to save the database file.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->db!=$db;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
public function regenerate()
|
public function regenerate()
|
||||||
{
|
{
|
||||||
$db = $this->db;
|
$db = $this->db;
|
||||||
|
@ -216,7 +280,7 @@ class dbPosts extends dbJSON
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unix time stamp
|
// Unix time stamp
|
||||||
$fields['unixTimeCreated'] = Date::unixTime();
|
$fields['date'] = Date::current(DB_DATE_FORMAT);
|
||||||
|
|
||||||
// Username
|
// Username
|
||||||
$fields['username'] = 'admin';
|
$fields['username'] = 'admin';
|
||||||
|
@ -255,7 +319,7 @@ class dbPosts extends dbJSON
|
||||||
|
|
||||||
return $this->db!=$db;
|
return $this->db!=$db;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
public function getPage($pageNumber, $postPerPage, $draftPosts=false)
|
public function getPage($pageNumber, $postPerPage, $draftPosts=false)
|
||||||
{
|
{
|
||||||
// DEBUG: Ver una mejor manera de eliminar draft post antes de ordenarlos
|
// DEBUG: Ver una mejor manera de eliminar draft post antes de ordenarlos
|
||||||
|
@ -317,15 +381,17 @@ class dbPosts extends dbJSON
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Remove the posts not published, status != published and date grater than current date.
|
||||||
// DEBUG: Ver una mejor manera de eliminar draft post antes de ordenarlos
|
// DEBUG: Ver una mejor manera de eliminar draft post antes de ordenarlos
|
||||||
private function removeUnpublished()
|
private function removeUnpublished()
|
||||||
{
|
{
|
||||||
$tmp = array();
|
$tmp = array();
|
||||||
|
$currentDate = Date::current(DB_DATE_FORMAT);
|
||||||
|
|
||||||
foreach($this->db as $key=>$value)
|
foreach($this->db as $key=>$values)
|
||||||
{
|
{
|
||||||
if($value['status']==='published') {
|
if( ($values['status']==='published') && ($values['date']<=$currentDate) ) {
|
||||||
$tmp[$key]=$value;
|
$tmp[$key]=$values;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,12 +402,12 @@ class dbPosts extends dbJSON
|
||||||
{
|
{
|
||||||
// high to low
|
// high to low
|
||||||
function high_to_low($a, $b) {
|
function high_to_low($a, $b) {
|
||||||
return $a['unixTimeCreated']<$b['unixTimeCreated'];
|
return $a['date']<$b['date'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// low to high
|
// low to high
|
||||||
function low_to_high($a, $b) {
|
function low_to_high($a, $b) {
|
||||||
return $a['unixTimeCreated']>$b['unixTimeCreated'];
|
return $a['date']>$b['date'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$tmp = $this->db;
|
$tmp = $this->db;
|
||||||
|
|
|
@ -3,22 +3,21 @@
|
||||||
class dbSite extends dbJSON
|
class dbSite extends dbJSON
|
||||||
{
|
{
|
||||||
private $dbFields = array(
|
private $dbFields = array(
|
||||||
'title'=> array('inFile'=>false, 'value'=>''),
|
'title'=> array('inFile'=>false, 'value'=>'I am Guybrush Threepwood, mighty developer'),
|
||||||
'slogan'=> array('inFile'=>false, 'value'=>''),
|
'slogan'=> array('inFile'=>false, 'value'=>''),
|
||||||
'description'=> array('inFile'=>false, 'value'=>''),
|
'description'=> array('inFile'=>false, 'value'=>''),
|
||||||
'footer'=> array('inFile'=>false, 'value'=>''),
|
'footer'=> array('inFile'=>false, 'value'=>'I wanna be a pirate!'),
|
||||||
'postsperpage'=>array('inFile'=>false, 'value'=>''),
|
'postsperpage'=> array('inFile'=>false, 'value'=>''),
|
||||||
'language'=> array('inFile'=>false, 'value'=>'en'),
|
'language'=> array('inFile'=>false, 'value'=>'en'),
|
||||||
'locale'=> array('inFile'=>false, 'value'=>'en_US'),
|
'locale'=> array('inFile'=>false, 'value'=>'en_US'),
|
||||||
'timezone'=> array('inFile'=>false, 'value'=>'America/Argentina/Buenos_Aires'),
|
'timezone'=> array('inFile'=>false, 'value'=>'America/Argentina/Buenos_Aires'),
|
||||||
'theme'=> array('inFile'=>false, 'value'=>'pure'),
|
'theme'=> array('inFile'=>false, 'value'=>'pure'),
|
||||||
'adminTheme'=> array('inFile'=>false, 'value'=>'kure'),
|
'adminTheme'=> array('inFile'=>false, 'value'=>'default'),
|
||||||
'homepage'=> array('inFile'=>false, 'value'=>''),
|
'homepage'=> array('inFile'=>false, 'value'=>''),
|
||||||
'uriPage'=> array('inFile'=>false, 'value'=>'/'),
|
'uriPage'=> array('inFile'=>false, 'value'=>'/'),
|
||||||
'uriPost'=> array('inFile'=>false, 'value'=>'/post/'),
|
'uriPost'=> array('inFile'=>false, 'value'=>'/post/'),
|
||||||
'uriTag'=> array('inFile'=>false, 'value'=>'/tag/'),
|
'uriTag'=> array('inFile'=>false, 'value'=>'/tag/'),
|
||||||
'url'=> array('inFile'=>false, 'value'=>''),
|
'url'=> array('inFile'=>false, 'value'=>'')
|
||||||
'advancedOptions'=> array('inFile'=>false, 'value'=>'false')
|
|
||||||
);
|
);
|
||||||
|
|
||||||
function __construct()
|
function __construct()
|
||||||
|
|
|
@ -6,11 +6,11 @@ class dbUsers extends dbJSON
|
||||||
'firstName'=> array('inFile'=>false, 'value'=>''),
|
'firstName'=> array('inFile'=>false, 'value'=>''),
|
||||||
'lastName'=> array('inFile'=>false, 'value'=>''),
|
'lastName'=> array('inFile'=>false, 'value'=>''),
|
||||||
'username'=> array('inFile'=>false, 'value'=>''),
|
'username'=> array('inFile'=>false, 'value'=>''),
|
||||||
'role'=> array('inFile'=>false, 'value'=>'editor'),
|
'role'=> array('inFile'=>false, 'value'=>'editor'),
|
||||||
'password'=> array('inFile'=>false, 'value'=>''),
|
'password'=> array('inFile'=>false, 'value'=>''),
|
||||||
'salt'=> array('inFile'=>false, 'value'=>'!Pink Floyd!Welcome to the machine!'),
|
'salt'=> array('inFile'=>false, 'value'=>'!Pink Floyd!Welcome to the machine!'),
|
||||||
'email'=> array('inFile'=>false, 'value'=>''),
|
'email'=> array('inFile'=>false, 'value'=>''),
|
||||||
'registered'=> array('inFile'=>false, 'value'=>0)
|
'registered'=> array('inFile'=>false, 'value'=>'1985-03-15 10:00')
|
||||||
);
|
);
|
||||||
|
|
||||||
function __construct()
|
function __construct()
|
||||||
|
@ -138,8 +138,8 @@ class dbUsers extends dbJSON
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The current unix time stamp.
|
// Current date.
|
||||||
$dataForDb['registered'] = Date::unixTime();
|
$dataForDb['registered'] = Date::current(DB_DATE_FORMAT);
|
||||||
|
|
||||||
// Password
|
// Password
|
||||||
$dataForDb['salt'] = Text::randomText(SALT_LENGTH);
|
$dataForDb['salt'] = Text::randomText(SALT_LENGTH);
|
||||||
|
|
|
@ -8,12 +8,19 @@ class Date {
|
||||||
return time();
|
return time();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Format a local time/date according to locale settings
|
// Return the local time/date according to locale settings.
|
||||||
public static function format($time, $format)
|
public static function current($format)
|
||||||
{
|
{
|
||||||
$date = strftime($format, $time);
|
$Date = new DateTime();
|
||||||
|
return $Date->format($format);
|
||||||
|
}
|
||||||
|
|
||||||
return $date;
|
// Format a local time/date according to locale settings.
|
||||||
|
public static function format($date, $currentFormat, $outputFormat)
|
||||||
|
{
|
||||||
|
$Date = DateTime::createFromFormat($currentFormat, $date);
|
||||||
|
|
||||||
|
return $Date->format($outputFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function timeago($time)
|
public static function timeago($time)
|
||||||
|
|
|
@ -24,4 +24,11 @@ class Valid {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Thanks, http://php.net/manual/en/function.checkdate.php#113205
|
||||||
|
public static function date($date, $format='Y-m-d H:i:s')
|
||||||
|
{
|
||||||
|
$tmp = DateTime::createFromFormat($format, $date);
|
||||||
|
return $tmp && $tmp->format($format) == $date;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -65,44 +65,17 @@ class Page extends fileContent
|
||||||
return $this->getField('position');
|
return $this->getField('position');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the post date in unix timestamp format, UTC-0.
|
|
||||||
public function unixTimeCreated()
|
|
||||||
{
|
|
||||||
return $this->getField('unixTimeCreated');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function unixTimeModified()
|
|
||||||
{
|
|
||||||
return $this->getField('unixTimeModified');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns the post date according to locale settings and format settings.
|
// Returns the post date according to locale settings and format settings.
|
||||||
public function dateCreated($format=false)
|
public function date($format=false)
|
||||||
{
|
{
|
||||||
if($format===false) {
|
$date = $this->getField('date');
|
||||||
return $this->getField('date');
|
|
||||||
|
if($format) {
|
||||||
|
// En %d %b deberia ir el formato definido por el usuario
|
||||||
|
return Date::format($date, DB_DATE_FORMAT, '%d %B');
|
||||||
}
|
}
|
||||||
|
|
||||||
$unixTimeCreated = $this->unixTimeCreated();
|
return $date;
|
||||||
|
|
||||||
return Date::format($unixTimeCreated, $format);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function dateModified($format=false)
|
|
||||||
{
|
|
||||||
if($format===false) {
|
|
||||||
return $this->getField('date');
|
|
||||||
}
|
|
||||||
|
|
||||||
$unixTimeModified = $this->unixTimeModified();
|
|
||||||
|
|
||||||
return Date::format($unixTimeModified, $format);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns the time ago
|
|
||||||
public function timeago()
|
|
||||||
{
|
|
||||||
return $this->getField('timeago');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the page slug.
|
// Returns the page slug.
|
||||||
|
|
|
@ -63,7 +63,15 @@ class Post extends fileContent
|
||||||
// Returns TRUE if the post is published, FALSE otherwise.
|
// Returns TRUE if the post is published, FALSE otherwise.
|
||||||
public function published()
|
public function published()
|
||||||
{
|
{
|
||||||
return ($this->getField('status')==='published');
|
$currentDate = Date::current(DB_DATE_FORMAT);
|
||||||
|
return ( ($this->getField('status')==='published') && ($this->getField('date')<=$currentDate) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns TRUE if the post is scheduled, FALSE otherwise.
|
||||||
|
public function scheduled()
|
||||||
|
{
|
||||||
|
$currentDate = Date::current(DB_DATE_FORMAT);
|
||||||
|
return ( ($this->getField('status')==='published') && ($this->getField('date')>$currentDate) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function username()
|
public function username()
|
||||||
|
@ -86,41 +94,17 @@ class Post extends fileContent
|
||||||
return $this->getField('description');
|
return $this->getField('description');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function unixTimeCreated()
|
// Returns the post date according to locale settings and format settings.
|
||||||
|
public function date($format=false)
|
||||||
{
|
{
|
||||||
return $this->getField('unixTimeCreated');
|
$date = $this->getField('date');
|
||||||
}
|
|
||||||
|
|
||||||
public function unixTimeModified()
|
if($format) {
|
||||||
{
|
// En %d %b deberia ir el formato definido por el usuario
|
||||||
return $this->getField('unixTimeModified');
|
return Date::format($date, DB_DATE_FORMAT, '%d %B');
|
||||||
}
|
|
||||||
|
|
||||||
public function dateCreated($format=false)
|
|
||||||
{
|
|
||||||
if($format===false) {
|
|
||||||
return $this->getField('date');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$unixTimeCreated = $this->unixTimeCreated();
|
return $date;
|
||||||
|
|
||||||
return Date::format($unixTimeCreated, $format);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function dateModified($format=false)
|
|
||||||
{
|
|
||||||
if($format===false) {
|
|
||||||
return $this->getField('date');
|
|
||||||
}
|
|
||||||
|
|
||||||
$unixTimeModified = $this->unixTimeModified();
|
|
||||||
|
|
||||||
return Date::format($unixTimeModified, $format);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function timeago()
|
|
||||||
{
|
|
||||||
return $this->getField('timeago');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function tags()
|
public function tags()
|
||||||
|
|
|
@ -0,0 +1,148 @@
|
||||||
|
{
|
||||||
|
"language-data":
|
||||||
|
{
|
||||||
|
"native": "Czech (Czech Republik)",
|
||||||
|
"english-name": "Czech",
|
||||||
|
"last-update": "2015-06-14",
|
||||||
|
"author": "honigp",
|
||||||
|
"email": "honigp@seznam.cz",
|
||||||
|
"website": "honigp.cz"
|
||||||
|
},
|
||||||
|
|
||||||
|
"username": "Jméno",
|
||||||
|
"password": "Heslo",
|
||||||
|
"confirm-password": "Heslo znovu",
|
||||||
|
"editor": "Editor",
|
||||||
|
"dashboard": "Nástěnka",
|
||||||
|
"role": "Úroveň",
|
||||||
|
"post": "Zveřejnit",
|
||||||
|
"posts": "Počet příspěvků",
|
||||||
|
"users": "Počet uživatelů",
|
||||||
|
"administrator": "Administrátor",
|
||||||
|
"add": "Přidat",
|
||||||
|
"cancel": "Zrušit",
|
||||||
|
"content": "Obsah",
|
||||||
|
"title": "Nadpis",
|
||||||
|
"no-parent": "Bez zdroje",
|
||||||
|
"edit-page": "Upravit stránku",
|
||||||
|
"edit-post": "Upravit příspěvek",
|
||||||
|
"add-a-new-user": "Přidání nového uživatele",
|
||||||
|
"parent": "Zdroj",
|
||||||
|
"friendly-url": "Pěkné URL",
|
||||||
|
"description": "Popis",
|
||||||
|
"posted-by": "Přidat",
|
||||||
|
"tags": "Štítky",
|
||||||
|
"position": "Umístit",
|
||||||
|
"save": "Uložit",
|
||||||
|
"draft": "Návrh",
|
||||||
|
"delete": "Smazat",
|
||||||
|
"registered": "Registrace",
|
||||||
|
"Notifications": "Oznámení",
|
||||||
|
"profile": "Profil",
|
||||||
|
"email": "Email",
|
||||||
|
"settings": "Nastavení",
|
||||||
|
"general": "Obecné",
|
||||||
|
"advanced": "Pokročilé",
|
||||||
|
"regional": "Region",
|
||||||
|
"about": "O systému",
|
||||||
|
"login": "Přihlásit",
|
||||||
|
"logout": "Odhlásit",
|
||||||
|
"manage": "Správa obsahu",
|
||||||
|
"themes": "Motiv",
|
||||||
|
"prev-page": "Předchozí stránka",
|
||||||
|
"next-page": "Následující stránka",
|
||||||
|
"configure-plugin": "nastavení pluginů",
|
||||||
|
"confirm-delete-this-action-cannot-be-undone": "Potvrdit odstranění,tato akce nelze vrátit zpět.",
|
||||||
|
"site-title": "Název webu",
|
||||||
|
"site-slogan": "Slogan webu",
|
||||||
|
"site-description": "Popis webu",
|
||||||
|
"footer-text": "Patička text",
|
||||||
|
"posts-per-page": "Příspěvků na stránku",
|
||||||
|
"site-url": "Adresa webu",
|
||||||
|
"writting-settings": "Nastavení psaní",
|
||||||
|
"url-filters": "URL filtr",
|
||||||
|
"page": "Stránka",
|
||||||
|
"pages": "Stránky",
|
||||||
|
"home": "Domů",
|
||||||
|
"welcome-back": "Vítejte",
|
||||||
|
"language": "Jazyk",
|
||||||
|
"website": "Stránka",
|
||||||
|
"timezone": "Časová zóna",
|
||||||
|
"locale": "Místní",
|
||||||
|
"new-post": "Nový příspěvek",
|
||||||
|
"html-and-markdown-code-supported": "Podpora HTML a Markdown",
|
||||||
|
"new-page": "Nová stránka",
|
||||||
|
"manage-posts": "Správa příspěvků",
|
||||||
|
"published-date": "Publikováno",
|
||||||
|
"modified-date": "Datum úpravy",
|
||||||
|
"empty-title": "Prázdný titul",
|
||||||
|
"plugins": "Pluginy",
|
||||||
|
"install-plugin": "Instalovat plugin",
|
||||||
|
"uninstall-plugin": "Odinstalovat plugin",
|
||||||
|
"new-password": "Nové heslo",
|
||||||
|
"edit-user": "Upravit uživatele",
|
||||||
|
"publish-now": "Publikovat nyní",
|
||||||
|
"first-name": "Jméno",
|
||||||
|
"last-name": "Příjmení",
|
||||||
|
"bludit-version": "Bludit verze",
|
||||||
|
"powered-by": "Powered by",
|
||||||
|
"recent-posts": "Poslední příspěvky",
|
||||||
|
"manage-pages": "Správa stránek",
|
||||||
|
"advanced-options": "Pokročilé možnosti",
|
||||||
|
"user-deleted": "Uživatel smazán",
|
||||||
|
"page-added-successfully": "Stránka přidána",
|
||||||
|
"post-added-successfully": "Příspěvek přidán",
|
||||||
|
"the-post-has-been-deleted-successfully": "Příspěvek byl úspěšně smazán",
|
||||||
|
"the-page-has-been-deleted-successfully": "Stránka byla úspěšně smazána",
|
||||||
|
"username-or-password-incorrect": "Uživatelské jméno nebo heslo není správné",
|
||||||
|
"database-regenerated": "Databáze regeneruje",
|
||||||
|
"the-changes-have-been-saved": "Změny byly uloženy",
|
||||||
|
"enable-more-features-at": "Další funkce na",
|
||||||
|
"username-already-exists": "Uživatelské jméno již existuje",
|
||||||
|
"username-field-is-empty": "Uživatelské jméno je prázdné",
|
||||||
|
"the-password-and-confirmation-password-do-not-match":"Heslo a potvrzení hesla se neshodují",
|
||||||
|
"user-has-been-added-successfully": "Uživatel byl úspěšně přidán",
|
||||||
|
"you-do-not-have-sufficient-permissions": "Nemáte dostatečná oprávnění pro přístup k této stránce, obraťte se na správce.",
|
||||||
|
"settings-advanced-writting-settings": "Nastavení->Pokročilé->Nastavení psaní",
|
||||||
|
"new-posts-and-pages-synchronized": "Nové příspěvky a stránky synchronizované.",
|
||||||
|
"you-can-choose-the-users-privilege": "Můžete si vybrat oprávnění uživatele.Editor může jen psát stránky a příspěvky.",
|
||||||
|
"email-will-not-be-publicly-displayed": "E-mail nebude veřejně zobrazen. Doporučuje se heslo pro obnovení a oznámení.",
|
||||||
|
"use-this-field-to-name-your-site": "V tomto poli lze pojmenovat vaše stránky, zobrazí se v horní části každé stránky vašeho webu.",
|
||||||
|
"use-this-field-to-add-a-catchy-prhase": "Pomocí tohoto pole přidejte chytlavý slogan na vašem webu.",
|
||||||
|
"you-can-add-a-site-description-to-provide": "Můžete přidat popis webu nebo krátký životopis.",
|
||||||
|
"you-can-add-a-small-text-on-the-bottom": "Můžete přidat text v patičce každé stránky. např: autorská práva, vlastník, data, atd",
|
||||||
|
"number-of-posts-to-show-per-page": "Počet příspěvků na stránce.",
|
||||||
|
"the-url-of-your-site": "Adresa URL vašich stránek.",
|
||||||
|
"add-or-edit-description-tags-or": "Přidat nebo upravit popis,značky,pěkné URL.",
|
||||||
|
"select-your-sites-language": "Vyberte jazyk svých stránek.",
|
||||||
|
"select-a-timezone-for-a-correct": "Vyberte časové pásmo pro správné zobrazení data / času na vašem webu.",
|
||||||
|
"you-can-use-this-field-to-define-a-set-of": "Můžete použít toto pole pro definování parametrů souvisejících s jazykem a zemí.",
|
||||||
|
"you-can-modify-the-url-which-identifies":"Můžete upravit adresu URL, která identifikuje stránku. Ne víc než 150 znaků.",
|
||||||
|
"this-field-can-help-describe-the-content": "Zde můžete napsat obsah několika slovy. Ne víc než 150 znaků.",
|
||||||
|
"write-the-tags-separeted-by-comma": "Napište štítky oddělené čárkou. např: štítek1, štítek2, štítek3",
|
||||||
|
"delete-the-user-and-all-its-posts":"Odstranit uživatele a všechny jeho příspěvky",
|
||||||
|
"delete-the-user-and-associate-its-posts-to-admin-user": "Odstranit uživatele a spojit své příspěvky na uživatele admin",
|
||||||
|
"read-more": "Čtěte více",
|
||||||
|
"show-blog": "Zobrazit blog",
|
||||||
|
"default-home-page": "Výchozí domovská stránka",
|
||||||
|
"version": "Verze",
|
||||||
|
"there-are-no-drafts": "Nejsou k dispozici žádné návrhy.",
|
||||||
|
"create-a-new-article-for-your-blog":"Vytvořte nový článek pro váš blog.",
|
||||||
|
"create-a-new-page-for-your-website":"Vytvořte novou stránku pro vaše webové stránky.",
|
||||||
|
"invite-a-friend-to-collaborate-on-your-website":"Pozvěte přátele ke spolupráci na svých webových stránkách.",
|
||||||
|
"change-your-language-and-region-settings":"Změna nastavení jazyka a regionu.",
|
||||||
|
"language-and-timezone":"Jazyk a časová zóna",
|
||||||
|
"author": "Autor",
|
||||||
|
"start-here": "Začněte zde",
|
||||||
|
"install-theme": "Instalovat motiv",
|
||||||
|
"first-post": "První příspěvek",
|
||||||
|
"congratulations-you-have-successfully-installed-your-bludit": "Blahopřejeme právě jste nainstalovaly **Bludit**",
|
||||||
|
"whats-next": "Kam dál",
|
||||||
|
"manage-your-bludit-from-the-admin-panel": "Správa vašeho webu [admin area](./admin/)",
|
||||||
|
"follow-bludit-on": "Follow Bludit on",
|
||||||
|
"visit-the-support-forum": "Navštivte [forum](http://forum.bludit.com) fórum",
|
||||||
|
"read-the-documentation-for-more-information": "Čtětě [documentation](http://docs.bludit.com) více informaví",
|
||||||
|
"share-with-your-friends-and-enjoy": "Podělte se se svými přáteli a užívejte si",
|
||||||
|
"the-page-has-not-been-found": "Stránka nenalezena.",
|
||||||
|
"error": "Error"
|
||||||
|
}
|
|
@ -0,0 +1,149 @@
|
||||||
|
{
|
||||||
|
"language-data":
|
||||||
|
{
|
||||||
|
"native": "Deutsch (Deutschland)",
|
||||||
|
"english-name": "German",
|
||||||
|
"last-update": "2015-08-09",
|
||||||
|
"author": "Edi",
|
||||||
|
"email": "egoetschel@clickwork.ch",
|
||||||
|
"website": "http://www.clickwork.ch"
|
||||||
|
},
|
||||||
|
|
||||||
|
"username": "Benutzername",
|
||||||
|
"password": "Passwort",
|
||||||
|
"confirm-password": "Passwort wiederholen",
|
||||||
|
"editor": "Editor",
|
||||||
|
"dashboard": "Dashboard",
|
||||||
|
"role": "Rolle",
|
||||||
|
"post": "Beitrag",
|
||||||
|
"posts": "Beiträge",
|
||||||
|
"users": "Benutzer",
|
||||||
|
"administrator": "Administrator",
|
||||||
|
"add": "Hinzufügen",
|
||||||
|
"cancel": "Abbrechen",
|
||||||
|
"content": "Inhalt",
|
||||||
|
"title": "Titel",
|
||||||
|
"no-parent": "Keine übergeordnete Seite",
|
||||||
|
"edit-page": "Seite bearbeiten",
|
||||||
|
"edit-post": "Beitrag bearbeiten",
|
||||||
|
"add-a-new-user": "Neuer Benutzer",
|
||||||
|
"parent": "Übergeordnete Seite",
|
||||||
|
"friendly-url": "Pretty URL",
|
||||||
|
"description": "Beschreibung",
|
||||||
|
"posted-by": "Veröffentlicht von",
|
||||||
|
"tags": "Schlagwörter",
|
||||||
|
"position": "Position",
|
||||||
|
"save": "Speichern",
|
||||||
|
"draft": "Entwurf",
|
||||||
|
"delete": "Löschen",
|
||||||
|
"registered": "Hinzugefügt",
|
||||||
|
"Notifications": "Benachrichtigungen",
|
||||||
|
"profile": "Profil",
|
||||||
|
"email": "E-Mail",
|
||||||
|
"settings": "Einstellungen",
|
||||||
|
"general": "Allgemein",
|
||||||
|
"advanced": "Erweitert",
|
||||||
|
"regional": "Lokalisierung",
|
||||||
|
"about": "Systeminformation",
|
||||||
|
"login": "Anmelden",
|
||||||
|
"logout": "Abmelden",
|
||||||
|
"manage": "Verwaltung",
|
||||||
|
"themes": "Themes",
|
||||||
|
"prev-page": "Vorhergehende Seite",
|
||||||
|
"next-page": "Nächste Seite",
|
||||||
|
"configure-plugin": "Plugin konfigurieren",
|
||||||
|
"confirm-delete-this-action-cannot-be-undone": "Bestaetige das Loeschen, dieser Vorgang kann nicht rueckgaengig gemacht werden.",
|
||||||
|
"site-title": "Titel der Webseite",
|
||||||
|
"site-slogan": "Untertitel",
|
||||||
|
"site-description": "Informationen zur Website",
|
||||||
|
"footer-text": "Footer-Text",
|
||||||
|
"posts-per-page": "Beiträge pro Seite",
|
||||||
|
"site-url": "URL der Website",
|
||||||
|
"writting-settings": "Beitrags- und Seiteneinstellungen",
|
||||||
|
"url-filters": "URL-Erweiterungen",
|
||||||
|
"page": "Seite",
|
||||||
|
"pages": "Seiten",
|
||||||
|
"home": "Hauptseite",
|
||||||
|
"welcome-back": "Willkommen",
|
||||||
|
"language": "Sprache",
|
||||||
|
"website": "Zur Website",
|
||||||
|
"timezone": "Zeitzone",
|
||||||
|
"locale": "Locale",
|
||||||
|
"new-post": "Neuer Beitrag",
|
||||||
|
"html-and-markdown-code-supported": "HTML und Markdown werden unterstützt",
|
||||||
|
"new-page": "Neue Seite",
|
||||||
|
"manage-posts": "Beiträge verwalten",
|
||||||
|
"published-date": "Veröffentlicht",
|
||||||
|
"modified-date": "Letzte Änderung",
|
||||||
|
"empty-title": "Kein Titel",
|
||||||
|
"plugins": "Plugins",
|
||||||
|
"install-plugin": "Plugin installieren",
|
||||||
|
"uninstall-plugin": "Plugin deinstallieren",
|
||||||
|
"new-password": "Neues Passwort",
|
||||||
|
"edit-user": "Benutzer bearbeiten",
|
||||||
|
"publish-now": "Veröffentlichen",
|
||||||
|
"first-name": "Vorname",
|
||||||
|
"last-name": "Nachname",
|
||||||
|
"bludit-version": "Bludit Version",
|
||||||
|
"powered-by": "Diese Website wurde eingerichtet mit",
|
||||||
|
"recent-posts": "Neueste Beiträge",
|
||||||
|
"manage-pages": "Seiten verwalten",
|
||||||
|
"advanced-options": "Erweiterte Einstellungen",
|
||||||
|
"user-deleted": "Der Benutzer wurde gelöscht.",
|
||||||
|
"page-added-successfully": "Die Seite wurde veröffentlicht.",
|
||||||
|
"post-added-successfully": "Die Seite wurde veröffentlicht.",
|
||||||
|
"the-post-has-been-deleted-successfully": "Der Beitrag wurde gelöscht.",
|
||||||
|
"the-page-has-been-deleted-successfully": "Die Seite wurde gelöscht.",
|
||||||
|
"username-or-password-incorrect": "Der Benutzername oder das Passwort ist falsch.",
|
||||||
|
"database-regenerated": "Die Datenbank wurde neu aufgebaut.",
|
||||||
|
"the-changes-have-been-saved": "Die Änderungen wurden gespeichert.",
|
||||||
|
"enable-more-features-at": "Zusätzlich Felder können aktiviert werden unter",
|
||||||
|
"username-already-exists": "Diesen Benutzernamen gibt es bereits.",
|
||||||
|
"username-field-is-empty": "Es muss ein Benutzername eingegeben werden.",
|
||||||
|
"the-password-and-confirmation-password-do-not-match":"Die eingegebenen Passwörter stimmen nicht überein.",
|
||||||
|
"user-has-been-added-successfully": "Der Benutzer wurde hinzugefügt.",
|
||||||
|
"you-do-not-have-sufficient-permissions": "Du bist nicht berechtigt, die Seite aufzurufen.",
|
||||||
|
"settings-advanced-writting-settings": "Einstellungen->Erweitert->Beitrags- und Seiteneinstellungen",
|
||||||
|
"new-posts-and-pages-synchronized": "Neue Beitrãge und Seitenwurden synchronisiert.",
|
||||||
|
"you-can-choose-the-users-privilege": "Rechte des Benutzers. Ein Editor kann nur Seiten anlegen und Beiträge schreiben.",
|
||||||
|
"email-will-not-be-publicly-displayed": "Die E-Mail wird nicht öffentlich gezeigt. Sie wird für die Wiederherstellung des Passworts und Benachrichtigungen verwendet.",
|
||||||
|
"use-this-field-to-name-your-site": "Name der Website, wie er auf jeder Seite angezeigt wird.",
|
||||||
|
"use-this-field-to-add-a-catchy-prhase": "Untertitel oder Slogan der Website.",
|
||||||
|
"you-can-add-a-site-description-to-provide": "Kurze Beschreibung der Website fúr Suchmaschinen.",
|
||||||
|
"you-can-add-a-small-text-on-the-bottom": "Text im Fussbereich jeder Seite. Beispielsweise: Copyright-Hinweis, Eigentümer der Website usw.",
|
||||||
|
"number-of-posts-to-show-per-page": "Anzahl der Beiträge, die auf einer Seite gezeigt werden..",
|
||||||
|
"the-url-of-your-site": "URL der Website.",
|
||||||
|
"add-or-edit-description-tags-or": "Beschreibungen, Schlagwörter und Pretty URL hinzufügen oder ändern.",
|
||||||
|
"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.",
|
||||||
|
"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.",
|
||||||
|
"this-field-can-help-describe-the-content": "Kurze Inhaltsbeschreibung. Möglich sind höchstens 150 Zeichen.",
|
||||||
|
"write-the-tags-separeted-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-associate-its-posts-to-admin-user": "Benutzer löschen und seine Beiträge dem Administrator zuordnen",
|
||||||
|
"read-more": "Weiterlesen",
|
||||||
|
"show-blog": "Blog zeigen",
|
||||||
|
"default-home-page": "Hauptseite",
|
||||||
|
"version": "Version",
|
||||||
|
"there-are-no-drafts": "Es sind keine Entwürfe vorhanden.",
|
||||||
|
"create-a-new-article-for-your-blog":"Einen neuen Beitrag schreiben.",
|
||||||
|
"create-a-new-page-for-your-website":"Eine neue Seite anlegen.",
|
||||||
|
"invite-a-friend-to-collaborate-on-your-website":"Einen neuen Benutzer hinzufügen.",
|
||||||
|
"change-your-language-and-region-settings":"Sprache ändern und Lokalisierung.",
|
||||||
|
"language-and-timezone":"Sprache und Zeitzone",
|
||||||
|
"author": "Autor",
|
||||||
|
"start-here": "Direktzugriff",
|
||||||
|
"install-theme": "Theme installieren",
|
||||||
|
"first-post": "Erster Beitrag",
|
||||||
|
"congratulations-you-have-successfully-installed-your-bludit": "Gratulation, Du hast erfolgreich **Bludit** installiert!",
|
||||||
|
"whats-next": "Und so geht es weiter;",
|
||||||
|
"manage-your-bludit-from-the-admin-panel": "Verwalte Bludit im [Administrationsbereich](./admin/).",
|
||||||
|
"follow-bludit-on": "Folge Bludit bei",
|
||||||
|
"visit-the-support-forum": "Besuche das [Forum](http://forum.bludit.com), um Hilfe zu erhalten.",
|
||||||
|
"read-the-documentation-for-more-information": "Lies die [Dokumentation](http://docs.bludit.com) für weitere Informationen.",
|
||||||
|
"share-with-your-friends-and-enjoy": "Teile Bludit mit Deinen Freunden und geniesse es.",
|
||||||
|
"the-page-has-not-been-found": "Die Seite wurde nicht gefunden.",
|
||||||
|
"error": "Fehler"
|
||||||
|
|
||||||
|
}
|
|
@ -157,5 +157,9 @@
|
||||||
"proceed-anyway": "Proceed anyway!",
|
"proceed-anyway": "Proceed anyway!",
|
||||||
"drafts":"Drafts",
|
"drafts":"Drafts",
|
||||||
"ip-address-has-been-blocked": "IP address has been blocked.",
|
"ip-address-has-been-blocked": "IP address has been blocked.",
|
||||||
"try-again-in-a-few-minutes": "Try again in a few minutes."
|
"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": "You can schedule the post, just select the date and time.",
|
||||||
|
"scheduled": "Scheduled",
|
||||||
|
"publish": "Publish"
|
||||||
}
|
}
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
<!-- Post date and author -->
|
<!-- Post date and author -->
|
||||||
<div class="post-meta">
|
<div class="post-meta">
|
||||||
<span class="date"><?php echo $Post->dateCreated() ?></span>
|
<span class="date"><?php echo $Post->date() ?></span>
|
||||||
<span class="author">
|
<span class="author">
|
||||||
<?php
|
<?php
|
||||||
echo $Language->get('Posted By').' ';
|
echo $Language->get('Posted By').' ';
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
<!-- Post date and author -->
|
<!-- Post date and author -->
|
||||||
<div class="post-meta">
|
<div class="post-meta">
|
||||||
<span class="date"><?php echo $Post->dateCreated() ?></span>
|
<span class="date"><?php echo $Post->date() ?></span>
|
||||||
<span class="author">
|
<span class="author">
|
||||||
<?php
|
<?php
|
||||||
echo $Language->get('Posted By').' ';
|
echo $Language->get('Posted By').' ';
|
||||||
|
|
Loading…
Reference in New Issue