Merge pull request #1 from dignajar/master

New pull request
This commit is contained in:
Edi 2016-09-08 20:54:11 +02:00 committed by GitHub
commit e2069e3f50
90 changed files with 10589 additions and 722 deletions

View File

@ -4,6 +4,25 @@
// Functions // Functions
// ============================================================================ // ============================================================================
function disableUser($username) {
global $dbUsers;
global $Language;
global $Login;
// The editors can't disable users
if($Login->role()!=='admin') {
return false;
}
if( $dbUsers->disableUser($username) ) {
Alert::set($Language->g('The changes have been saved'));
}
else {
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to edit the user.');
}
}
function editUser($args) function editUser($args)
{ {
global $dbUsers; global $dbUsers;
@ -72,6 +91,9 @@ if( $_SERVER['REQUEST_METHOD'] == 'POST' )
elseif(isset($_POST['delete-user-associate'])) { elseif(isset($_POST['delete-user-associate'])) {
deleteUser($_POST, false); deleteUser($_POST, false);
} }
elseif(isset($_POST['disable-user'])) {
disableUser($_POST['username']);
}
else { else {
editUser($_POST); editUser($_POST);
} }

View File

@ -0,0 +1,664 @@
.uk-form * {
border-radius: 2px !important;
}
.uk-tab a {
color: #2196f3 !important;
}
a {
color: #2196f3 !important;
}
/* UIKIT HACKs navbar
---------------------------------------------------------------- */
.uk-navbar {
background: #323232 !important;
border: 0 !important;
border-radius: 0 !important;
}
.uk-navbar-nav a {
border: none !important;
border-radius: none !important;
text-shadow: none !important;
color: #fff !important;
font-weight: 300 !important;
padding: 0 25px !important;
}
.uk-navbar-nav > li.uk-open > a,
.uk-navbar-nav > li:hover > a,
.uk-navbar-nav > li:focus > a,
.uk-navbar-nav > li > a:focus,
.uk-navbar-nav > li > a:hover {
background: none !important;
border-radius: 0 !important;
color: #BBBBBB !important;
box-shadow: none !important;
text-shadow: none !important;
}
.uk-nav-navbar > li > a:focus,
.uk-nav-navbar > li > a:hover {
background: none !important;
border-radius: 0 !important;
color: #888 !important;
box-shadow: none !important;
text-shadow: none !important;
}
.uk-navbar-nav > li.uk-active > a {
background: none !important;
color: #BBBBBB !important;
}
.uk-navbar-nav .uk-border-circle {
border-radius: 20px !important;
}
.uk-dropdown-navbar {
margin: 0 !important;
padding: 10px 0 !important;
position: fixed;
text-align: center;
width: 100%;
border-radius: 0 !important;
border-left: 0 !important;
border-right: 0 !important;
border-top: 0 !important;
}
.uk-dropdown-navbar li {
display: inline-block !important;
}
.uk-dropdown-navbar a {
color: #323232 !important;
}
li.bludit-logo {
color: #fff !important;
display: block;
font-size: 14px;
font-weight: 400;
height: 41px;
line-height: 40px;
margin-left: -1px;
margin-top: -1px;
margin-right: 12px;
}
.bludit-user-navbar {
background: #333 none repeat scroll 0 0;
border-color: #ccc;
border-radius: 0 0 5px 5px !important;
color: #fff;
position: absolute;
}
.bludit-user-navbar a {
color: #fff !important;
}
@media (min-width: 333px) and (max-width: 959px) {
/* Hidden the Welcome USERNAME */
.uk-navbar-flip {
display: none !important;
}
/* Expand and hidden the sidebar */
.uk-width-large-8-10 {
width: 100% !important;
}
/* Hidden the sidebar */
.uk-width-large-2-10 {
width: 0% !important;
display: none !important;
}
}
@media (min-width: 960px) {
.uk-width-large-4-5,
.uk-width-large-8-10 {
width: 75% !important;
}
.uk-width-large-1-5,
.uk-width-large-2-10 {
width: 25% !important;
}
}
/* UIKIT HACKs hidden navbar
---------------------------------------------------------------- */
.uk-navbar-brand {
text-shadow: none !important;
color: #fff !important;
}
.uk-navbar-toggle {
text-shadow: none !important;
color: #fff !important;
}
.uk-nav-offcanvas > li > a {
color: #fff !important;
}
/* UIKIT HACKs buttons
---------------------------------------------------------------- */
.uk-button {
padding: 2px 26px;
text-shadow: none;
color: #333 !important;
}
.uk-button-primary {
background: #2196f3 !important;
color: #fff !important;
}
.uk-button-primary:hover {
background: #2EA3FF;
color: #fafafa !important;
}
/* UIKIT HACKs forms
---------------------------------------------------------------- */
legend {
width: 70% !important;
margin-top: 40px !important;
}
legend.first-child {
margin-top: 0px !important;
}
.uk-form-label {
color: #666666;
font-weight: normal !important;
}
.uk-form-help-block {
color: #AAAAAA;
font-size: 0.9em;
}
.uk-table th,
.uk-table td {
padding: 15px 10px;
}
.uk-table td.children {
padding: 15px 10px 15px 25px;
}
.uk-badge {
margin-right: 5px !important;
font-size: 0.9em;
padding: 2px 7px;
font-weight: normal;
}
a {
color: #2672ec;
}
.uk-panel-box {
background: #F9F9F9 !important;
border: 0;
}
.uk-container {
max-width: 1280px !important;
}
.uk-thumbnail {
margin: 2px 3px !important;
max-width: 30% !important;
padding: 0 !important;
}
.uk-progress-bar {
background: #2672ec !important;
}
.uk-placeholder {
margin-bottom: 0 !important;
}
/* ----------- BLUDIT ----------- */
body {
overflow-y: scroll;
}
.bludit-navbar {
}
#logo {
background: #f4f4f4;
padding:20px 0;
}
h2.title {
margin: 0 0 20px 0;
}
button.delete-button {
background: none;
border: 0 none;
color: #da2727;
cursor: pointer;
font-size: 0.9em;
display: block;
margin-bottom: 10px;
}
button.delete-button:hover {
text-decoration: underline;
}
#jscontent {
height: 400px;
}
.bl-view {
margin-top: 25px;
margin-bottom: 25px;
}
table.statistics tr:last-child td {
border-bottom: none !important;
}
/* ----------- ALERT ----------- */
#alert {
bottom: 0;
color: #ffffff;
padding: 10px;
display: none;
position: fixed;
text-align: center;
z-index: 100;
right: 0;
}
.alert-ok {
background: #4374C1;
}
.alert-fail {
background: #c14343;
}
/* ----------- FORM ----------- */
.sidebar .uk-form-label {
font-size: 0.9em;
text-transform: uppercase;
}
#bludit-tags {
margin-top: 15px;
}
#bludit-tags .uk-button {
padding: 0 12px !important;
margin-left: 10px;
}
#jstagList {
margin-top: 15px;
}
#jstagList span.unselect,
#jstagList span.select {
margin-top: 5px;
margin-right: 5px;
padding: 2px 15px;
cursor: pointer;
display: inline-block;
border-radius: 3px;
background: #f1f1f1;
vertical-align: middle;
}
#jstagList span.unselect:before {
font-family: FontAwesome;
content: "\f067";
padding-right: 5px;
}
#jstagList span.unselect {
color: #AAA;
}
#jstagList span.unselect:hover {
color: #888;
}
#jstagList span.select:before {
font-family: FontAwesome;
content: "\f00c";
padding-right: 5px;
}
#jstagList span.select {
color: #2196f3;
padding: 2px 13px;
}
/* ----------- BLUDIT IMAGES V8 ----------- */
#bludit-images-v8 {
}
#bludit-images-v8 .bludit-thumbnail {
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
display: inline-block;
height: auto;
margin: 2px;
padding: 0;
width: 15% !important;
}
#bludit-images-v8-upload {
width: 100%;
padding: 0;
margin-bottom: 15px !important;
}
#bludit-images-v8-drag-drop {
padding: 20px;
}
#bludit-images-v8-progressbar {
display: none;
margin: 20px;
}
#bludit-images-v8-thumbnails {
max-height: 350px;
overflow: auto;
font-size: 0;
}
/* Bludit Menu v8 */
#bludit-menuV8 {
display: none;
z-index: 1020;
position: absolute;
overflow: hidden;
border: 1px solid #CCC;
background: #FFF;
color: #333;
border-radius: 2px;
list-style-type: none;
padding: 5px;
margin: 0;
}
#bludit-menuV8 li {
padding: 8px 12px;
cursor: pointer;
}
#bludit-menuV8 li:hover {
background-color: #2672ec;
color: #fff;
}
#bludit-menuV8 li i {
margin-right: 10px;
}
/* ----------- BLUDIT QUICK IMAGES ----------- */
#bludit-quick-images {
}
#bludit-quick-images a.moreImages {
margin: 15px 0 0;
width: 100%;
background: #F5F5F5 !important;
color: #555;
}
#bludit-quick-images h4.label {
background: #f8f8f8;
color: #aaa;
padding: 2px 5px;
font-size: 0.9em;
}
#bludit-quick-images-thumbnails {
font-size: 0;
}
#bludit-quick-images .bludit-thumbnail {
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
display: inline-block;
height: auto;
margin: 2px;
padding: 0;
width: 31% !important;
}
/* ----------- BLUDIT COVER IMAGE ----------- */
#bludit-cover-image {
}
#cover-image-thumbnail {
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
color: #666;
height: 130px;
padding: 0;
width: 100%;
}
#cover-image-upload {
color: #999;
position: relative;
top: 35%;
}
#cover-image-delete {
background: rgba(255, 255, 255, 0.7);
bottom: 0;
color: #000;
display: none;
font-size: 2.2em;
padding: 4px 10px;
position: absolute;
right: 0;
cursor: pointer;
}
#cover-image-progressbar {
display: none;
left: 5%;
position: relative;
top: 33%;
width: 90%;
}
/* ----------- BLUDIT PROFILE PICTURE ----------- */
#bludit-profile-picture-drag-drop {
width: 100%;
padding: 15px 0;
}
#bludit-profile-picture-progressbar {
display: none;
margin: 15px 0 0;
width: 100%;
}
/* ----------- LOGIN FORM ----------- */
div.login-box > h1 {
font-weight: lighter;
letter-spacing: 4px;
margin-bottom: 50px;
}
div.login-form {
background: #f1f1f1 none repeat scroll 0 0;
padding: 20px;
width: 400px;
}
/* ----------- DASHBOARD ----------- */
div.dashboard-links {
margin: 0 0 25px 0;
}
div.dashboard-links h4 {
margin-bottom: -8px !important;
}
div.dashboard-links a {
color: #555;
}
/* NEW POST */
h3.titleOptions {
font-size: 1em;
}
/* ----------- PLUGIN LIST / THEME LIST ----------- */
tr.plugin-installed,
tr.theme-installed {
background: #F2F7FF !important;
}
div.plugin-links > a {
display: inline-block;
margin-top: 5px;
}
div.plugin-links > span.separator {
color: #ccc;
}
.label-draft,
.label-empty-title,
.label-time {
background: #2672ec none repeat scroll 0 0;
border-radius: 2px;
color: #ffffff;
display: inline-block;
padding: 0 8px;
text-align: center;
vertical-align: middle;
margin-right: 5px;
font-size: 0.9em;
}
.label-empty-title {
background: #ED8F26;
}
.label-time {
font-style: italic;
background: #ED3A26;
}
/* ----------- PAGINATOR ----------- */
#paginator ul {
list-style-type: none;
margin: 15px 0;
padding: 0;
font-size: 0.9em;
text-align: center;
}
#paginator a {
color: #2672ec;
}
#paginator li {
display: inline;
float: none !important;
}
#paginator li.left {
margin-right: 10px;
}
#paginator li.list {
background: #e0e0e0;
color: #747474;
padding: 2px 11px;
margin: 0px 15px;
}
#paginator li.right {
margin-left: 10px;
}
/* ----------- PLUGINS FORM ----------- */
#jsformplugin div {
margin-bottom: 1.1em;
}
#jsformplugin label {
margin: 0 0 5px 0 !important;
display: block;
}
#jsformplugin div.tip {
font-size: 0.9em;
color: #AAAAAA;
}
#jsformplugin textarea {
min-width: 400px;
width: 60%;
min-height: 100px;
}
#jsformplugin input[type=text] {
min-width: 400px;
width: 60%;
height: 37px;
}
#jsformplugin input[type="checkbox"] {
vertical-align: middle;
margin-left: 0px;
margin-right: 10px;
}
#jsformplugin label.forCheckbox {
margin-left: 3px;
margin-bottom: 0px !important;
display: inline-block;
}
#jsformplugin p {
margin-bottom: 0;
}

View File

@ -1,246 +1,215 @@
.uk-form * {
border-radius: 2px !important;
}
.uk-tab a { /* UIKIT HACKs
color: #2196f3 !important;
}
a {
color: #2196f3 !important;
}
/* UIKIT HACKs navbar
---------------------------------------------------------------- */ ---------------------------------------------------------------- */
.uk-navbar {
background: #323232 !important; .uk-width-1-4 {
border: 0 !important; width: 20% !important;
border-radius: 0 !important;
} }
.uk-navbar-nav a { .uk-width-3-4 {
border: none !important; width: 80% !important;
border-radius: none !important;
text-shadow: none !important;
color: #fff !important;
font-weight: 300 !important;
padding: 0 25px !important;
} }
.uk-navbar-nav > li.uk-open > a, .label-draft,
.uk-navbar-nav > li:hover > a, .label-empty-title,
.uk-navbar-nav > li:focus > a, .label-time {
.uk-navbar-nav > li > a:focus, background: #A979D1 none repeat scroll 0 0;
.uk-navbar-nav > li > a:hover { border-radius: 2px;
background: none !important; color: #ffffff;
border-radius: 0 !important; display: inline-block;
color: #BBBBBB !important; padding: 0 8px;
box-shadow: none !important;
text-shadow: none !important;
}
.uk-nav-navbar > li > a:focus,
.uk-nav-navbar > li > a:hover {
background: none !important;
border-radius: 0 !important;
color: #888 !important;
box-shadow: none !important;
text-shadow: none !important;
}
.uk-navbar-nav > li.uk-active > a {
background: none !important;
color: #BBBBBB !important;
}
.uk-navbar-nav .uk-border-circle {
border-radius: 20px !important;
}
.uk-dropdown-navbar {
margin: 0 !important;
padding: 10px 0 !important;
position: fixed;
text-align: center; text-align: center;
width: 100%; vertical-align: middle;
border-radius: 0 !important; margin-right: 5px;
border-left: 0 !important; font-size: 0.8em;
border-right: 0 !important;
border-top: 0 !important;
} }
.uk-dropdown-navbar li { .label-empty-title {
display: inline-block !important; background: #53D192;
} }
.uk-dropdown-navbar a { .label-time {
color: #323232 !important; font-style: italic;
background: #A979D1;
} }
li.bludit-logo { /* UIKIT HACKs tabs
color: #fff !important;
display: block;
font-size: 14px;
font-weight: 400;
height: 41px;
line-height: 40px;
margin-left: -1px;
margin-top: -1px;
margin-right: 12px;
}
.bludit-user-navbar {
background: #333 none repeat scroll 0 0;
border-color: #ccc;
border-radius: 0 0 5px 5px !important;
color: #fff;
position: absolute;
}
.bludit-user-navbar a {
color: #fff !important;
}
@media (min-width: 333px) and (max-width: 959px) {
/* Hidden the Welcome USERNAME */
.uk-navbar-flip {
display: none !important;
}
/* Expand and hidden the sidebar */
.uk-width-large-8-10 {
width: 100% !important;
}
/* Hidden the sidebar */
.uk-width-large-2-10 {
width: 0% !important;
display: none !important;
}
}
@media (min-width: 960px) {
.uk-width-large-4-5,
.uk-width-large-8-10 {
width: 75% !important;
}
.uk-width-large-1-5,
.uk-width-large-2-10 {
width: 25% !important;
}
}
/* UIKIT HACKs hidden navbar
---------------------------------------------------------------- */ ---------------------------------------------------------------- */
.uk-navbar-brand { .uk-nav-dropdown > li > a:focus,
text-shadow: none !important; .uk-nav-dropdown > li > a:hover {
color: #fff !important; background-color: #007add !important;
}
.uk-navbar-toggle {
text-shadow: none !important;
color: #fff !important;
}
.uk-nav-offcanvas > li > a {
color: #fff !important;
} }
/* UIKIT HACKs buttons /* UIKIT HACKs buttons
---------------------------------------------------------------- */ ---------------------------------------------------------------- */
.uk-button { .uk-button {
padding: 2px 26px; border-radius: 2px !important;
text-shadow: none; padding: 1px 20px !important;
color: #333 !important;
} }
.uk-button-primary { .uk-button-primary {
background: #2196f3 !important; background-color: #007add !important;
color: #fff !important;
} }
.uk-button-primary:hover { .uk-button-primary:hover,
background: #2EA3FF; .uk-button-primary:focus {
color: #fafafa !important; background-color: #0069BE !important;
} }
/* UIKIT HACKs forms
/* CSS defaults
---------------------------------------------------------------- */ ---------------------------------------------------------------- */
legend {
width: 70% !important;
margin-top: 40px !important;
}
legend.first-child {
margin-top: 0px !important;
}
.uk-form-label {
color: #666666;
font-weight: normal !important;
}
.uk-form-help-block {
color: #AAAAAA;
font-size: 0.9em;
}
.uk-table th,
.uk-table td {
padding: 15px 10px;
}
.uk-table td.children {
padding: 15px 10px 15px 25px;
}
.uk-badge {
margin-right: 5px !important;
font-size: 0.9em;
padding: 2px 7px;
font-weight: normal;
}
a {
color: #2672ec;
}
.uk-panel-box {
background: #F9F9F9 !important;
border: 0;
}
.uk-container {
max-width: 1280px !important;
}
.uk-thumbnail {
margin: 2px 3px !important;
max-width: 30% !important;
padding: 0 !important;
}
.uk-progress-bar {
background: #2672ec !important;
}
.uk-placeholder {
margin-bottom: 0 !important;
}
/* ----------- BLUDIT ----------- */
body { body {
overflow-y: scroll; overflow-y: scroll;
} }
.bludit-navbar { #bl-container {
margin-bottom: 20px;
}
/* TOPBAR
---------------------------------------------------------------- */
#bl-navbar {
background: #f1f1f1;
margin-bottom: 20px;
width: 100%;
}
#bl-navbar a.bl-brand {
font-size: 20px;
line-height: 60px;
margin: 0 0 0 35px;
text-transform: uppercase;
text-shadow: 0 1px 0 #fff;
}
#bl-navbar a.bl-brand:hover {
text-decoration: none;
}
#bl-navbar .bl-navbar-right {
float: right;
line-height: 60px;
margin: 0 35px 0 0;
}
/* SIDEBAR
---------------------------------------------------------------- */
#bl-sidebar a {
color: #777 !important;
}
#bl-sidebar .uk-nav {
margin: 0px 0 0 20px !important;
}
#bl-sidebar .uk-nav-header {
font-weight: normal !important;
font-size: 16px;
}
/* VIEW
---------------------------------------------------------------- */
#bl-view {
margin-right: 20px;
}
#bl-view .uk-width-2-10 {
padding-left: 10px !important;
}
.plugin-incompatible,
.theme-incompatible {
background: #ffdc7d;
border: 1px dashed #eec24a;
color: #826106;
display: table-cell;
font-size: 12px;
margin-top: 6px;
padding: 1px 10px;
}
/* DASHBOARD
---------------------------------------------------------------- */
#dashboard-panel .uk-panel {
background-color: #fafafa !important;
border: 1px solid #f8f8f8;
box-shadow: 5px 1px 1px #fdfdfd;
padding: 10px !important;
}
#dashboard-panel .uk-panel h4.panel-title {
text-transform: uppercase;
font-size: 14px !important;
}
div.dashboard-links {
background-color: #fafafa !important;
border: 1px solid #f8f8f8;
box-shadow: 5px 1px 1px #fdfdfd;
margin-bottom: 20px;
padding: 50px 20px;
}
div.dashboard-links h4 {
margin-bottom: -8px !important;
}
/* FORM
---------------------------------------------------------------- */
.uk-form input:not([type]), .uk-form input[type="text"], .uk-form input[type="password"], .uk-form input[type="email"], .uk-form input[type="url"], .uk-form input[type="search"], .uk-form input[type="tel"], .uk-form input[type="number"], .uk-form input[type="datetime"], .uk-form input[type="datetime-local"], .uk-form input[type="date"], .uk-form input[type="month"], .uk-form input[type="time"], .uk-form input[type="week"], .uk-form input[type="color"], .uk-form select, .uk-form textarea {
border-radius: 2px !important;
}
.uk-form-help-block {
color: #777 !important;
font-size: 0.9em !important;
}
.sidebar-meta .uk-form-label {
font-size: 0.9em;
text-transform: uppercase;
}
.uk-form legend {
margin-top: 20px;
}
.uk-form legend.first-child {
margin-top: 0 !important;
}
button.aslink {
background: rgba(0, 0, 0, 0) none repeat scroll 0 0;
border: 0 none;
color: #07d;
cursor: pointer;
display: block;
font-size: 1em;
margin: 0 !important;
padding: 0 !important;
}
button.aslink:hover {
text-decoration: underline;
}
/* OLD
---------------------------------------------------------------- */
.bl-view {
margin-top: 25px;
margin-bottom: 25px;
} }
#logo { #logo {
@ -270,10 +239,7 @@ button.delete-button:hover {
height: 400px; height: 400px;
} }
.bl-view {
margin-top: 25px;
margin-bottom: 25px;
}
table.statistics tr:last-child td { table.statistics tr:last-child td {
border-bottom: none !important; border-bottom: none !important;
@ -302,10 +268,6 @@ table.statistics tr:last-child td {
/* ----------- FORM ----------- */ /* ----------- FORM ----------- */
.sidebar .uk-form-label {
font-size: 0.9em;
text-transform: uppercase;
}
#bludit-tags { #bludit-tags {
margin-top: 15px; margin-top: 15px;
@ -527,24 +489,7 @@ div.login-form {
width: 400px; width: 400px;
} }
/* ----------- DASHBOARD ----------- */
div.dashboard-links {
margin: 0 0 25px 0;
}
div.dashboard-links h4 {
margin-bottom: -8px !important;
}
div.dashboard-links a {
color: #555;
}
/* NEW POST */
h3.titleOptions {
font-size: 1em;
}
/* ----------- PLUGIN LIST / THEME LIST ----------- */ /* ----------- PLUGIN LIST / THEME LIST ----------- */
@ -562,28 +507,6 @@ div.plugin-links > span.separator {
color: #ccc; color: #ccc;
} }
.label-draft,
.label-empty-title,
.label-time {
background: #2672ec none repeat scroll 0 0;
border-radius: 2px;
color: #ffffff;
display: inline-block;
padding: 0 8px;
text-align: center;
vertical-align: middle;
margin-right: 5px;
font-size: 0.9em;
}
.label-empty-title {
background: #ED8F26;
}
.label-time {
font-style: italic;
background: #ED3A26;
}
/* ----------- PAGINATOR ----------- */ /* ----------- PAGINATOR ----------- */

View File

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

View File

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

View File

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

File diff suppressed because one or more lines are too long

View File

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

View File

@ -51,82 +51,6 @@ $(document).ready(function() {
<?php Alert::p() ?> <?php Alert::p() ?>
</div> </div>
<!-- Navbar -->
<nav class="uk-navbar bludit-navbar">
<!-- Navbar for Desktop -->
<div class="uk-container uk-container-center uk-hidden-small">
<ul class="uk-navbar-nav">
<li class="bludit-logo">BLUDIT</li>
<li <?php echo ($layout['view']=='dashboard')?'class="uk-active"':'' ?> ><a href="<?php echo HTML_PATH_ADMIN_ROOT.'dashboard' ?>"><?php $L->p('Dashboard') ?></a></li>
<li <?php echo ($layout['view']=='new-post')?'class="uk-active"':'' ?>><a href="<?php echo HTML_PATH_ADMIN_ROOT.'new-post' ?>"><?php $L->p('New post') ?></a></li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>><a href="<?php echo HTML_PATH_ADMIN_ROOT.'new-page' ?>"><?php $L->p('New page') ?></a></li>
<li class="uk-parent" data-uk-dropdown>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-posts' ?>"><?php $L->p('Manage') ?> ▾</a>
<div class="uk-dropdown uk-dropdown-navbar">
<ul class="uk-nav uk-nav-navbar">
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-posts' ?>"><i class="uk-icon-folder-o"></i> <?php $L->p('Posts') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-pages' ?>"><i class="uk-icon-folder-o"></i> <?php $L->p('Pages') ?></a></li>
<?php if($Login->role() == 'admin') { ?>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'users' ?>"><i class="uk-icon-users"></i> <?php $L->p('Users') ?></a></li>
<?php } ?>
</ul>
</div>
</li>
<?php if($Login->role() == 'admin') { ?>
<li class="uk-parent" data-uk-dropdown>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-general' ?>"><?php $L->p('Settings') ?> ▾</a>
<div class="uk-dropdown uk-dropdown-navbar">
<ul class="uk-nav uk-nav-navbar">
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-general' ?>"><i class="uk-icon-cog"></i> <?php $L->p('General') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-advanced' ?>"><i class="uk-icon-cogs"></i> <?php $L->p('Advanced') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-regional' ?>"><i class="uk-icon-globe"></i> <?php $L->p('Language and timezone') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'plugins' ?>"><i class="uk-icon-puzzle-piece"></i> <?php $L->p('Plugins') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'themes' ?>"><i class="uk-icon-paint-brush"></i> <?php $L->p('Themes') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'about' ?>"><i class="uk-icon-support"></i> <?php $L->p('About') ?></a></li>
</ul>
</div>
</li>
<?php } ?>
<li><a target="_blank" href="<?php echo HTML_PATH_ROOT ?>"><?php $L->p('Website') ?></a></li>
</ul>
<div class="uk-navbar-flip">
<ul class="uk-navbar-nav">
<li class="uk-parent" data-uk-dropdown>
<?php
$profilePictureSrc = HTML_PATH_ADMIN_THEME_IMG.'default.png';
if(file_exists(PATH_UPLOADS_PROFILES.$Login->username().'.png')) {
$profilePictureSrc = HTML_PATH_UPLOADS_PROFILES.$Login->username().'.png';
}
?>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'edit-user/'.$Login->username() ?>">
<img class="uk-border-circle" width="28px" src="<?php echo $profilePictureSrc ?>" alt=""> <?php $L->p('Welcome') ?> <?php echo $Login->username() ?>
</a>
<div class="uk-dropdown uk-dropdown-navbar bludit-user-navbar">
<ul class="uk-nav uk-nav-navbar">
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'logout' ?>"><?php $L->p('Logout') ?></a></li>
</ul>
</div>
</li>
</ul>
</div>
</div>
<!-- Navbar for Mobile -->
<a href="#offcanvas" class="uk-navbar-toggle uk-visible-small" data-uk-offcanvas></a>
<div class="uk-navbar-brand uk-navbar-center uk-visible-small">BLUDIT</div>
</nav>
<!-- Offcanvas for Mobile --> <!-- Offcanvas for Mobile -->
<div id="offcanvas" class="uk-offcanvas"> <div id="offcanvas" class="uk-offcanvas">
<div class="uk-offcanvas-bar"> <div class="uk-offcanvas-bar">
@ -149,13 +73,85 @@ $(document).ready(function() {
</div> </div>
</div> </div>
<!-- View --> <nav id="bl-navbar">
<div class="uk-container uk-container-center bl-view"> <a href="" class="bl-brand">BLUDIT</a>
<?php
if( Sanitize::pathFile(PATH_ADMIN_VIEWS, $layout['view'].'.php') ) { <div class="bl-navbar-right">
include(PATH_ADMIN_VIEWS.$layout['view'].'.php'); Welcome <?php echo $Login->username() ?> -
} <a href="<?php echo HTML_PATH_ADMIN_ROOT.'logout' ?>"><?php $L->p('Logout') ?></a>
?> </div>
</nav>
<div id="bl-container">
<div class="uk-grid uk-grid-small">
<div class="uk-width-1-4">
<div id="bl-sidebar">
<ul class="uk-nav">
<li <?php echo ($layout['view']=='dashboard')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'dashboard' ?>"><?php $L->p('Dashboard') ?></a>
</li>
<li>
<a target="_blank" href="<?php echo HTML_PATH_ROOT ?>"><?php $L->p('Website') ?></a>
</li>
<li class="uk-nav-header"><?php $L->p('Publish') ?></li>
<li <?php echo ($layout['view']=='new-post')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'new-post' ?>"><?php $L->p('New post') ?></a>
</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'new-page' ?>"><?php $L->p('New page') ?></a>
</li>
<li class="uk-nav-header">Manage</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-posts' ?>"><?php $L->p('Posts') ?></a>
</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-pages' ?>"><?php $L->p('Pages') ?></a>
</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'users' ?>"><?php $L->p('Users') ?></a>
</li>
<li class="uk-nav-header">Settings</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-general' ?>"><?php $L->p('General') ?></a>
</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-advanced' ?>"><?php $L->p('Advanced') ?></a>
</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-regional' ?>"><?php $L->p('Language and timezone') ?></a>
</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'plugins' ?>"><?php $L->p('Plugins') ?></a>
</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'themes' ?>"><?php $L->p('Themes') ?></a>
</li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'about' ?>"><?php $L->p('About') ?></a>
</li>
</ul>
</div>
</div>
<div class="uk-width-3-4">
<div id="bl-view">
<?php
if( Sanitize::pathFile(PATH_ADMIN_VIEWS, $layout['view'].'.php') ) {
include(PATH_ADMIN_VIEWS.$layout['view'].'.php');
}
?>
</div>
</div>
</div> </div>
<!-- Javascript --> <!-- Javascript -->

View File

@ -205,11 +205,11 @@ class HTML {
public static function bluditCoverImage($coverImage="") public static function bluditCoverImage($coverImage="")
{ {
global $L;
// Javascript code // Javascript code
include(PATH_JS.'bludit-cover-image.js'); include(PATH_JS.'bludit-cover-image.js');
global $L;
$style = ''; $style = '';
if(!empty($coverImage)) { if(!empty($coverImage)) {
$style = 'background-image: url('.HTML_PATH_UPLOADS_THUMBNAILS.$coverImage.')'; $style = 'background-image: url('.HTML_PATH_UPLOADS_THUMBNAILS.$coverImage.')';
@ -263,11 +263,11 @@ class HTML {
public static function bluditImagesV8() public static function bluditImagesV8()
{ {
global $L;
// Javascript code // Javascript code
include(PATH_JS.'bludit-images-v8.js'); include(PATH_JS.'bludit-images-v8.js');
global $L;
$html = '<!-- BLUDIT IMAGES V8 -->'; $html = '<!-- BLUDIT IMAGES V8 -->';
$html .= ' $html .= '
<div id="bludit-images-v8" class="uk-modal"> <div id="bludit-images-v8" class="uk-modal">

File diff suppressed because one or more lines are too long

View File

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

View File

@ -0,0 +1,664 @@
.uk-form * {
border-radius: 2px !important;
}
.uk-tab a {
color: #2196f3 !important;
}
a {
color: #2196f3 !important;
}
/* UIKIT HACKs navbar
---------------------------------------------------------------- */
.uk-navbar {
background: #323232 !important;
border: 0 !important;
border-radius: 0 !important;
}
.uk-navbar-nav a {
border: none !important;
border-radius: none !important;
text-shadow: none !important;
color: #fff !important;
font-weight: 300 !important;
padding: 0 25px !important;
}
.uk-navbar-nav > li.uk-open > a,
.uk-navbar-nav > li:hover > a,
.uk-navbar-nav > li:focus > a,
.uk-navbar-nav > li > a:focus,
.uk-navbar-nav > li > a:hover {
background: none !important;
border-radius: 0 !important;
color: #BBBBBB !important;
box-shadow: none !important;
text-shadow: none !important;
}
.uk-nav-navbar > li > a:focus,
.uk-nav-navbar > li > a:hover {
background: none !important;
border-radius: 0 !important;
color: #888 !important;
box-shadow: none !important;
text-shadow: none !important;
}
.uk-navbar-nav > li.uk-active > a {
background: none !important;
color: #BBBBBB !important;
}
.uk-navbar-nav .uk-border-circle {
border-radius: 20px !important;
}
.uk-dropdown-navbar {
margin: 0 !important;
padding: 10px 0 !important;
position: fixed;
text-align: center;
width: 100%;
border-radius: 0 !important;
border-left: 0 !important;
border-right: 0 !important;
border-top: 0 !important;
}
.uk-dropdown-navbar li {
display: inline-block !important;
}
.uk-dropdown-navbar a {
color: #323232 !important;
}
li.bludit-logo {
color: #fff !important;
display: block;
font-size: 14px;
font-weight: 400;
height: 41px;
line-height: 40px;
margin-left: -1px;
margin-top: -1px;
margin-right: 12px;
}
.bludit-user-navbar {
background: #333 none repeat scroll 0 0;
border-color: #ccc;
border-radius: 0 0 5px 5px !important;
color: #fff;
position: absolute;
}
.bludit-user-navbar a {
color: #fff !important;
}
@media (min-width: 333px) and (max-width: 959px) {
/* Hidden the Welcome USERNAME */
.uk-navbar-flip {
display: none !important;
}
/* Expand and hidden the sidebar */
.uk-width-large-8-10 {
width: 100% !important;
}
/* Hidden the sidebar */
.uk-width-large-2-10 {
width: 0% !important;
display: none !important;
}
}
@media (min-width: 960px) {
.uk-width-large-4-5,
.uk-width-large-8-10 {
width: 75% !important;
}
.uk-width-large-1-5,
.uk-width-large-2-10 {
width: 25% !important;
}
}
/* UIKIT HACKs hidden navbar
---------------------------------------------------------------- */
.uk-navbar-brand {
text-shadow: none !important;
color: #fff !important;
}
.uk-navbar-toggle {
text-shadow: none !important;
color: #fff !important;
}
.uk-nav-offcanvas > li > a {
color: #fff !important;
}
/* UIKIT HACKs buttons
---------------------------------------------------------------- */
.uk-button {
padding: 2px 26px;
text-shadow: none;
color: #333 !important;
}
.uk-button-primary {
background: #2196f3 !important;
color: #fff !important;
}
.uk-button-primary:hover {
background: #2EA3FF;
color: #fafafa !important;
}
/* UIKIT HACKs forms
---------------------------------------------------------------- */
legend {
width: 70% !important;
margin-top: 40px !important;
}
legend.first-child {
margin-top: 0px !important;
}
.uk-form-label {
color: #666666;
font-weight: normal !important;
}
.uk-form-help-block {
color: #AAAAAA;
font-size: 0.9em;
}
.uk-table th,
.uk-table td {
padding: 15px 10px;
}
.uk-table td.children {
padding: 15px 10px 15px 25px;
}
.uk-badge {
margin-right: 5px !important;
font-size: 0.9em;
padding: 2px 7px;
font-weight: normal;
}
a {
color: #2672ec;
}
.uk-panel-box {
background: #F9F9F9 !important;
border: 0;
}
.uk-container {
max-width: 1280px !important;
}
.uk-thumbnail {
margin: 2px 3px !important;
max-width: 30% !important;
padding: 0 !important;
}
.uk-progress-bar {
background: #2672ec !important;
}
.uk-placeholder {
margin-bottom: 0 !important;
}
/* ----------- BLUDIT ----------- */
body {
overflow-y: scroll;
}
.bludit-navbar {
}
#logo {
background: #f4f4f4;
padding:20px 0;
}
h2.title {
margin: 0 0 20px 0;
}
button.delete-button {
background: none;
border: 0 none;
color: #da2727;
cursor: pointer;
font-size: 0.9em;
display: block;
margin-bottom: 10px;
}
button.delete-button:hover {
text-decoration: underline;
}
#jscontent {
height: 400px;
}
.bl-view {
margin-top: 25px;
margin-bottom: 25px;
}
table.statistics tr:last-child td {
border-bottom: none !important;
}
/* ----------- ALERT ----------- */
#alert {
bottom: 0;
color: #ffffff;
padding: 10px;
display: none;
position: fixed;
text-align: center;
z-index: 100;
right: 0;
}
.alert-ok {
background: #4374C1;
}
.alert-fail {
background: #c14343;
}
/* ----------- FORM ----------- */
.sidebar .uk-form-label {
font-size: 0.9em;
text-transform: uppercase;
}
#bludit-tags {
margin-top: 15px;
}
#bludit-tags .uk-button {
padding: 0 12px !important;
margin-left: 10px;
}
#jstagList {
margin-top: 15px;
}
#jstagList span.unselect,
#jstagList span.select {
margin-top: 5px;
margin-right: 5px;
padding: 2px 15px;
cursor: pointer;
display: inline-block;
border-radius: 3px;
background: #f1f1f1;
vertical-align: middle;
}
#jstagList span.unselect:before {
font-family: FontAwesome;
content: "\f067";
padding-right: 5px;
}
#jstagList span.unselect {
color: #AAA;
}
#jstagList span.unselect:hover {
color: #888;
}
#jstagList span.select:before {
font-family: FontAwesome;
content: "\f00c";
padding-right: 5px;
}
#jstagList span.select {
color: #2196f3;
padding: 2px 13px;
}
/* ----------- BLUDIT IMAGES V8 ----------- */
#bludit-images-v8 {
}
#bludit-images-v8 .bludit-thumbnail {
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
display: inline-block;
height: auto;
margin: 2px;
padding: 0;
width: 15% !important;
}
#bludit-images-v8-upload {
width: 100%;
padding: 0;
margin-bottom: 15px !important;
}
#bludit-images-v8-drag-drop {
padding: 20px;
}
#bludit-images-v8-progressbar {
display: none;
margin: 20px;
}
#bludit-images-v8-thumbnails {
max-height: 350px;
overflow: auto;
font-size: 0;
}
/* Bludit Menu v8 */
#bludit-menuV8 {
display: none;
z-index: 1020;
position: absolute;
overflow: hidden;
border: 1px solid #CCC;
background: #FFF;
color: #333;
border-radius: 2px;
list-style-type: none;
padding: 5px;
margin: 0;
}
#bludit-menuV8 li {
padding: 8px 12px;
cursor: pointer;
}
#bludit-menuV8 li:hover {
background-color: #2672ec;
color: #fff;
}
#bludit-menuV8 li i {
margin-right: 10px;
}
/* ----------- BLUDIT QUICK IMAGES ----------- */
#bludit-quick-images {
}
#bludit-quick-images a.moreImages {
margin: 15px 0 0;
width: 100%;
background: #F5F5F5 !important;
color: #555;
}
#bludit-quick-images h4.label {
background: #f8f8f8;
color: #aaa;
padding: 2px 5px;
font-size: 0.9em;
}
#bludit-quick-images-thumbnails {
font-size: 0;
}
#bludit-quick-images .bludit-thumbnail {
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
display: inline-block;
height: auto;
margin: 2px;
padding: 0;
width: 31% !important;
}
/* ----------- BLUDIT COVER IMAGE ----------- */
#bludit-cover-image {
}
#cover-image-thumbnail {
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
color: #666;
height: 130px;
padding: 0;
width: 100%;
}
#cover-image-upload {
color: #999;
position: relative;
top: 35%;
}
#cover-image-delete {
background: rgba(255, 255, 255, 0.7);
bottom: 0;
color: #000;
display: none;
font-size: 2.2em;
padding: 4px 10px;
position: absolute;
right: 0;
cursor: pointer;
}
#cover-image-progressbar {
display: none;
left: 5%;
position: relative;
top: 33%;
width: 90%;
}
/* ----------- BLUDIT PROFILE PICTURE ----------- */
#bludit-profile-picture-drag-drop {
width: 100%;
padding: 15px 0;
}
#bludit-profile-picture-progressbar {
display: none;
margin: 15px 0 0;
width: 100%;
}
/* ----------- LOGIN FORM ----------- */
div.login-box > h1 {
font-weight: lighter;
letter-spacing: 4px;
margin-bottom: 50px;
}
div.login-form {
background: #f1f1f1 none repeat scroll 0 0;
padding: 20px;
width: 400px;
}
/* ----------- DASHBOARD ----------- */
div.dashboard-links {
margin: 0 0 25px 0;
}
div.dashboard-links h4 {
margin-bottom: -8px !important;
}
div.dashboard-links a {
color: #555;
}
/* NEW POST */
h3.titleOptions {
font-size: 1em;
}
/* ----------- PLUGIN LIST / THEME LIST ----------- */
tr.plugin-installed,
tr.theme-installed {
background: #F2F7FF !important;
}
div.plugin-links > a {
display: inline-block;
margin-top: 5px;
}
div.plugin-links > span.separator {
color: #ccc;
}
.label-draft,
.label-empty-title,
.label-time {
background: #2672ec none repeat scroll 0 0;
border-radius: 2px;
color: #ffffff;
display: inline-block;
padding: 0 8px;
text-align: center;
vertical-align: middle;
margin-right: 5px;
font-size: 0.9em;
}
.label-empty-title {
background: #ED8F26;
}
.label-time {
font-style: italic;
background: #ED3A26;
}
/* ----------- PAGINATOR ----------- */
#paginator ul {
list-style-type: none;
margin: 15px 0;
padding: 0;
font-size: 0.9em;
text-align: center;
}
#paginator a {
color: #2672ec;
}
#paginator li {
display: inline;
float: none !important;
}
#paginator li.left {
margin-right: 10px;
}
#paginator li.list {
background: #e0e0e0;
color: #747474;
padding: 2px 11px;
margin: 0px 15px;
}
#paginator li.right {
margin-left: 10px;
}
/* ----------- PLUGINS FORM ----------- */
#jsformplugin div {
margin-bottom: 1.1em;
}
#jsformplugin label {
margin: 0 0 5px 0 !important;
display: block;
}
#jsformplugin div.tip {
font-size: 0.9em;
color: #AAAAAA;
}
#jsformplugin textarea {
min-width: 400px;
width: 60%;
min-height: 100px;
}
#jsformplugin input[type=text] {
min-width: 400px;
width: 60%;
height: 37px;
}
#jsformplugin input[type="checkbox"] {
vertical-align: middle;
margin-left: 0px;
margin-right: 10px;
}
#jsformplugin label.forCheckbox {
margin-left: 3px;
margin-bottom: 0px !important;
display: inline-block;
}
#jsformplugin p {
margin-bottom: 0;
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,68 @@
/* ----------- UIKIT HACKs FOR BLUDIT ----------- */
html {
background: #F7F7F7;
}
.uk-form * {
border-radius: 2px !important;
}
.uk-button-primary {
background: #444;
}
.uk-button-primary:hover {
background: #333;
}
input[type="text"],
input[type="password"] {
border-color: #EBEBEB !important;
border-radius: 2px !important;
color: #333;
}
input:disabled {
background: #ccc;
}
.uk-vertical-align-middle {
margin-top: -150px;
}
.uk-panel {
background: #ffffff;
display: block;
margin: 20px 0;
padding: 20px;
position: relative;
text-align: left;
}
/* ----------- BLUDIT ----------- */
h1.title {
font-weight: lighter;
letter-spacing: 4px;
text-transform: uppercase;
}
h3 {
margin-top: 0px !important;
}
.content {
}
#jsshowPassword {
color: #999;
cursor: pointer;
font-size: 1em;
margin-top: 10px;
}
#jscompleteEmail {
cursor: pointer;
text-decoration: underline;
}

View File

@ -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 */
}

View File

@ -0,0 +1,59 @@
/* ----------- UIKIT HACKs FOR BLUDIT ----------- */
html {
background: #F7F7F7;
}
* {
border-radius: 2px !important;
}
.uk-button-primary {
background: #444;
}
.uk-button-primary:hover {
background: #333;
}
input[type="text"],
input[type="password"] {
border-color: #EBEBEB !important;
border-radius: 2px !important;
color: #333;
}
.uk-alert {
padding: 22px 0 !important;
}
/* ----------- BLUDIT ----------- */
div.login-box {
width: 400px;
max-width: calc(100% - 40px);
}
div.login-box > h1 {
font-weight: lighter;
letter-spacing: 4px;
margin-bottom: 50px;
margin-top: -100px;
}
div.login-form {
text-align: left;
}
div.login-form > h2 {
color: #777;
margin-bottom: 30px;
}
a.login-email {
border: 0;
color: #777;
display: block;
margin: 20px 0;
padding: 0;
text-align: left;
}

View File

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

View File

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

View File

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

File diff suppressed because one or more lines are too long

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

View File

@ -0,0 +1,168 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="<?php echo CHARSET ?>">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex,nofollow">
<title><?php echo $layout['title'] ?></title>
<!-- Favicon -->
<link rel="shortcut icon" type="image/x-icon" href="<?php echo HTML_PATH_ADMIN_THEME.'img/favicon.png' ?>">
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_ADMIN_THEME.'css/uikit/uikit.almost-flat.min.css?version='.BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_ADMIN_THEME.'css/uikit/upload.almost-flat.min.css?version='.BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_ADMIN_THEME.'css/uikit/form-file.almost-flat.min.css?version='.BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_ADMIN_THEME.'css/uikit/placeholder.almost-flat.min.css?version='.BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_ADMIN_THEME.'css/uikit/progress.almost-flat.min.css?version='.BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_ADMIN_THEME.'css/default.css?version='.BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_ADMIN_THEME.'css/jquery.datetimepicker.css?version='.BLUDIT_VERSION ?>">
<!-- Javascript -->
<script charset="utf-8" src="<?php echo HTML_PATH_ADMIN_THEME.'js/jquery.min.js?version='.BLUDIT_VERSION ?>"></script>
<script charset="utf-8" src="<?php echo HTML_PATH_ADMIN_THEME.'js/uikit/uikit.min.js?version='.BLUDIT_VERSION ?>"></script>
<script charset="utf-8" src="<?php echo HTML_PATH_ADMIN_THEME.'js/uikit/upload.min.js?version='.BLUDIT_VERSION ?>"></script>
<script charset="utf-8" src="<?php echo HTML_PATH_ADMIN_THEME.'js/jquery.datetimepicker.js?version='.BLUDIT_VERSION ?>"></script>
<!-- Plugins -->
<?php Theme::plugins('adminHead') ?>
</head>
<body>
<!-- Plugins -->
<?php Theme::plugins('adminBodyBegin') ?>
<!-- Alert -->
<script>
$(document).ready(function() {
<?php
if( Alert::defined() ) {
echo '$("#alert").slideDown().delay(3500).slideUp();';
}
?>
$(window).click(function() {
$("#alert").hide();
});
});
</script>
<div id="alert" class="<?php echo (Alert::status()==ALERT_STATUS_OK)?'alert-ok':'alert-fail'; ?>">
<?php Alert::p() ?>
</div>
<!-- Navbar -->
<nav class="uk-navbar bludit-navbar">
<!-- Navbar for Desktop -->
<div class="uk-container uk-container-center uk-hidden-small">
<ul class="uk-navbar-nav">
<li class="bludit-logo">BLUDIT</li>
<li <?php echo ($layout['view']=='dashboard')?'class="uk-active"':'' ?> ><a href="<?php echo HTML_PATH_ADMIN_ROOT.'dashboard' ?>"><?php $L->p('Dashboard') ?></a></li>
<li <?php echo ($layout['view']=='new-post')?'class="uk-active"':'' ?>><a href="<?php echo HTML_PATH_ADMIN_ROOT.'new-post' ?>"><?php $L->p('New post') ?></a></li>
<li <?php echo ($layout['view']=='new-page')?'class="uk-active"':'' ?>><a href="<?php echo HTML_PATH_ADMIN_ROOT.'new-page' ?>"><?php $L->p('New page') ?></a></li>
<li class="uk-parent" data-uk-dropdown>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-posts' ?>"><?php $L->p('Manage') ?> ▾</a>
<div class="uk-dropdown uk-dropdown-navbar">
<ul class="uk-nav uk-nav-navbar">
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-posts' ?>"><i class="uk-icon-folder-o"></i> <?php $L->p('Posts') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-pages' ?>"><i class="uk-icon-folder-o"></i> <?php $L->p('Pages') ?></a></li>
<?php if($Login->role() == 'admin') { ?>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'users' ?>"><i class="uk-icon-users"></i> <?php $L->p('Users') ?></a></li>
<?php } ?>
</ul>
</div>
</li>
<?php if($Login->role() == 'admin') { ?>
<li class="uk-parent" data-uk-dropdown>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-general' ?>"><?php $L->p('Settings') ?> ▾</a>
<div class="uk-dropdown uk-dropdown-navbar">
<ul class="uk-nav uk-nav-navbar">
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-general' ?>"><i class="uk-icon-cog"></i> <?php $L->p('General') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-advanced' ?>"><i class="uk-icon-cogs"></i> <?php $L->p('Advanced') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-regional' ?>"><i class="uk-icon-globe"></i> <?php $L->p('Language and timezone') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'plugins' ?>"><i class="uk-icon-puzzle-piece"></i> <?php $L->p('Plugins') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'themes' ?>"><i class="uk-icon-paint-brush"></i> <?php $L->p('Themes') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'about' ?>"><i class="uk-icon-support"></i> <?php $L->p('About') ?></a></li>
</ul>
</div>
</li>
<?php } ?>
<li><a target="_blank" href="<?php echo HTML_PATH_ROOT ?>"><?php $L->p('Website') ?></a></li>
</ul>
<div class="uk-navbar-flip">
<ul class="uk-navbar-nav">
<li class="uk-parent" data-uk-dropdown>
<?php
$profilePictureSrc = HTML_PATH_ADMIN_THEME_IMG.'default.png';
if(file_exists(PATH_UPLOADS_PROFILES.$Login->username().'.png')) {
$profilePictureSrc = HTML_PATH_UPLOADS_PROFILES.$Login->username().'.png';
}
?>
<a href="<?php echo HTML_PATH_ADMIN_ROOT.'edit-user/'.$Login->username() ?>">
<img class="uk-border-circle" width="28px" src="<?php echo $profilePictureSrc ?>" alt=""> <?php $L->p('Welcome') ?> <?php echo $Login->username() ?>
</a>
<div class="uk-dropdown uk-dropdown-navbar bludit-user-navbar">
<ul class="uk-nav uk-nav-navbar">
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'logout' ?>"><?php $L->p('Logout') ?></a></li>
</ul>
</div>
</li>
</ul>
</div>
</div>
<!-- Navbar for Mobile -->
<a href="#offcanvas" class="uk-navbar-toggle uk-visible-small" data-uk-offcanvas></a>
<div class="uk-navbar-brand uk-navbar-center uk-visible-small">BLUDIT</div>
</nav>
<!-- Offcanvas for Mobile -->
<div id="offcanvas" class="uk-offcanvas">
<div class="uk-offcanvas-bar">
<ul class="uk-nav uk-nav-offcanvas">
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'dashboard' ?>"><?php $L->p('Dashboard') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'new-post' ?>"><?php $L->p('New post') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'new-page' ?>"><?php $L->p('New page') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-posts' ?>"><?php $L->p('Manage posts') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'manage-pages' ?>"><?php $L->p('Manage pages') ?></a></li>
<?php if($Login->role() == 'admin') { ?>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'users' ?>"><?php $L->p('Manage users') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-general' ?>"><?php $L->p('General settings') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-advanced' ?>"><?php $L->p('Advanced settings') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'settings-regional' ?>"><?php $L->p('Language and timezone') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'plugins' ?>"><?php $L->p('Plugins') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'themes' ?>"><?php $L->p('Themes') ?></a></li>
<li><a href="<?php echo HTML_PATH_ADMIN_ROOT.'about' ?>"><?php $L->p('About') ?></a></li>
<?php } ?>
</ul>
</div>
</div>
<!-- View -->
<div class="uk-container uk-container-center bl-view">
<?php
if( Sanitize::pathFile(PATH_ADMIN_VIEWS, $layout['view'].'.php') ) {
include(PATH_ADMIN_VIEWS.$layout['view'].'.php');
}
?>
</div>
<!-- Javascript -->
<?php include(PATH_JS.'functions.php') ?>
<!-- Plugins -->
<?php Theme::plugins('adminBodyEnd') ?>
</body>
</html>

View File

@ -0,0 +1,394 @@
<?php
class HTML {
public static function title($args)
{
$html = '<h2 class="title"><i class="uk-icon-'.$args['icon'].'"></i> '.$args['title'].'</h2>';
echo $html;
}
public static function formOpen($args)
{
$class = empty($args['class']) ? '' : ' '.$args['class'];
$id = empty($args['id']) ? '' : 'id="'.$args['id'].'"';
$html = '<form class="uk-form'.$class.'" '.$id.' method="post" action="" autocomplete="off">';
echo $html;
}
public static function formClose()
{
$html = '</form>';
$script = '<script>
$(document).ready(function() {
// Prevent the form submit when press enter key.
$("form").keypress(function(e) {
if( (e.which == 13) && (e.target.type !== "textarea") ) {
return false;
}
});
});
</script>';
echo $html.$script;
}
// label, name, value, tip
public static function formInputText($args)
{
$id = 'js'.$args['name'];
$type = isset($args['type']) ? $args['type'] : 'text';
$class = empty($args['class']) ? '' : 'class="'.$args['class'].'"';
$placeholder = empty($args['placeholder']) ? '' : 'placeholder="'.$args['placeholder'].'"';
$disabled = empty($args['disabled']) ? '' : 'disabled';
$html = '<div class="uk-form-row">';
if(!empty($args['label'])) {
$html .= '<label for="'.$id.'" class="uk-form-label">'.$args['label'].'</label>';
}
$html .= '<div class="uk-form-controls">';
$html .= '<input id="'.$id.'" name="'.$args['name'].'" type="'.$type.'" '.$class.' '.$placeholder.' autocomplete="off" '.$disabled.' value="'.$args['value'].'">';
if(!empty($args['tip'])) {
$html .= '<p class="uk-form-help-block">'.$args['tip'].'</p>';
}
$html .= '</div>';
$html .= '</div>';
echo $html;
}
public static function tags($args)
{
global $L;
// Javascript code
include(PATH_JS.'bludit-tags.js');
$html = '<div id="bludit-tags" class="uk-form-row">';
$html .= '<input type="hidden" id="jstags" name="tags" value="">';
$html .= '<label for="jstagInput" class="uk-form-label">'.$args['label'].'</label>';
$html .= '<div class="uk-form-controls">';
$html .= '<input id="jstagInput" type="text" class="uk-width-1-2" autocomplete="off">';
$html .= '<button id="jstagAdd" class="uk-button">'.$L->g('Add').'</button>';
$html .= '<div id="jstagList">';
foreach($args['allTags'] as $tag) {
$html .= '<span data-tag="'.$tag.'" class="'.( in_array($tag, $args['selectedTags'])?'select':'unselect' ).'">'.$tag.'</span>';
}
$html .= '</div>';
$html .= '</div>';
$html .= '</div>';
echo $html;
}
public static function formInputPassword($args)
{
$args['type'] = 'password';
self::formInputText($args);
}
public static function formTextarea($args)
{
$id = 'js'.$args['name'];
$type = isset($args['type']) ? $args['type'] : 'text';
$class = empty($args['class']) ? '' : 'class="'.$args['class'].'"';
$placeholder = empty($args['placeholder']) ? '' : 'placeholder="'.$args['placeholder'].'"';
$rows = empty($args['rows']) ? '' : 'rows="'.$args['rows'].'"';
$html = '<div class="uk-form-row">';
if(!empty($args['label'])) {
$html .= '<label for="'.$id.'" class="uk-form-label">'.$args['label'].'</label>';
}
$html .= '<div class="uk-form-controls">';
$html .= '<textarea id="'.$id.'" name="'.$args['name'].'" '.$class.' '.$placeholder.' '.$rows.'>'.$args['value'].'</textarea>';
if(!empty($args['tip'])) {
$html .= '<p class="uk-form-help-block">'.$args['tip'].'</p>';
}
$html .= '</div>';
$html .= '</div>';
echo $html;
}
public static function formSelect($args)
{
$id = 'js'.$args['name'];
$type = isset($args['type']) ? $args['type'] : 'text';
$class = empty($args['class']) ? '' : 'class="'.$args['class'].'"';
$html = '<div class="uk-form-row">';
$html .= '<label for="'.$id.'" class="uk-form-label">'.$args['label'].'</label>';
$html .= '<div class="uk-form-controls">';
$html .= '<select id="'.$id.'" name="'.$args['name'].'" '.$class.'>';
foreach($args['options'] as $key=>$value) {
$html .= '<option value="'.$key.'"'.( ($args['selected']==$key)?' selected="selected"':'').'>'.$value.'</option>';
}
$html .= '</select>';
$html .= '<p class="uk-form-help-block">'.$args['tip'].'</p>';
$html .= '</div>';
$html .= '</div>';
echo $html;
}
public static function formInputHidden($args)
{
$id = 'js'.$args['name'];
$html = '<input type="hidden" id="'.$id.'" name="'.$args['name'].'" value="'.$args['value'].'">';
echo $html;
}
public static function legend($args)
{
$class = empty($args['class']) ? '' : 'class="'.$args['class'].'"';
$html = '<legend '.$class.'>'.$args['value'].'</legend>';
echo $html;
}
public static function bluditQuickImages()
{
// Javascript code
include(PATH_JS.'bludit-quick-images.js');
global $L;
$html = '<!-- BLUDIT QUICK IMAGES -->';
$html .= '
<div id="bludit-quick-images">
<div id="bludit-quick-images-thumbnails" onmousedown="return false">
';
$thumbnailList = Filesystem::listFiles(PATH_UPLOADS_THUMBNAILS,'*','*',true);
array_splice($thumbnailList, THUMBNAILS_AMOUNT);
foreach($thumbnailList as $file) {
$filename = basename($file);
$html .= '<img class="bludit-thumbnail" data-filename="'.$filename.'" src="'.HTML_PATH_UPLOADS_THUMBNAILS.$filename.'" alt="Thumbnail">';
}
$html .= '
</div>
';
$html .= '<div class="empty-images uk-block uk-text-center uk-block-muted" '.( !empty($thumbnailList)?'style="display:none"':'' ).'>'.$L->g('There are no images').'</div>';
$html .= '
<a data-uk-modal href="#bludit-images-v8" class="moreImages uk-button"><i class="uk-icon-folder-o"></i> '.$L->g('More images').'</a>
</div>
';
echo $html;
}
public static function bluditCoverImage($coverImage="")
{
global $L;
// Javascript code
include(PATH_JS.'bludit-cover-image.js');
$style = '';
if(!empty($coverImage)) {
$style = 'background-image: url('.HTML_PATH_UPLOADS_THUMBNAILS.$coverImage.')';
}
$html = '<!-- BLUDIT COVER IMAGE -->';
$html .= '
<div id="bludit-cover-image">
<div id="cover-image-thumbnail" class="uk-form-file uk-placeholder uk-text-center" style="'.$style.'">
<input type="hidden" name="coverImage" id="cover-image-upload-filename" value="'.$coverImage.'">
<div id="cover-image-upload" '.( empty($coverImage)?'':'style="display: none;"' ).'>
<div><i class="uk-icon-picture-o"></i> '.$L->g('Cover image').'</div>
<div style="font-size:0.8em;">'.$L->g('Drag and drop or click here').'<input id="cover-image-file-select" type="file"></div>
</div>
<div id="cover-image-delete" '.( empty($coverImage)?'':'style="display: block;"' ).'>
<div><i class="uk-icon-trash-o"></i></div>
</div>
<div id="cover-image-progressbar" class="uk-progress">
<div class="uk-progress-bar" style="width: 0%;">0%</div>
</div>
</div>
</div>
';
echo $html;
}
public static function bluditMenuV8()
{
// Javascript code
include(PATH_JS.'bludit-menu-v8.js');
global $L;
$html = '<!-- BLUDIT MENU V8 -->';
$html .= '
<ul id="bludit-menuV8">
<li id="bludit-menuV8-insert"><i class="uk-icon-plus"></i>'.$L->g('Insert image').'</li>
<li id="bludit-menuV8-cover"><i class="uk-icon-picture-o"></i>'.$L->g('Set as cover image').'</li>
<li id="bludit-menuV8-delete"><i class="uk-icon-trash"></i>'.$L->g('Delete image').'</li>
</ul>
';
echo $html;
}
public static function bluditImagesV8()
{
global $L;
// Javascript code
include(PATH_JS.'bludit-images-v8.js');
$html = '<!-- BLUDIT IMAGES V8 -->';
$html .= '
<div id="bludit-images-v8" class="uk-modal">
<div class="uk-modal-dialog">
<div id="bludit-images-v8-upload" class="uk-form-file uk-placeholder uk-text-center">
<div id="bludit-images-v8-drag-drop">
<div><i class="uk-icon-picture-o"></i> '.$L->g('Upload image').'</div>
<div style="font-size:0.8em;">'.$L->g('Drag and drop or click here').'<input id="bludit-images-v8-file-select" type="file"></div>
</div>
<div id="bludit-images-v8-progressbar" class="uk-progress">
<div class="uk-progress-bar" style="width: 0%;">0%</div>
</div>
</div>
<div id="bludit-images-v8-thumbnails">
';
$thumbnailList = Filesystem::listFiles(PATH_UPLOADS_THUMBNAILS,'*','*',true);
foreach($thumbnailList as $file) {
$filename = basename($file);
$html .= '<img class="bludit-thumbnail" src="'.HTML_PATH_UPLOADS_THUMBNAILS.$filename.'" data-filename="'.$filename.'" alt="Thumbnail">';
}
$html .= '
</div>
';
$html .= '<div class="empty-images uk-block uk-text-center uk-block-muted" '.( !empty($thumbnailList)?'style="display:none"':'' ).'>'.$L->g('There are no images').'</div>';
$html .= '
<div class="uk-modal-footer">
'.$L->g('Click on the image for options').' <a href="" class="uk-modal-close">'.$L->g('Click here to cancel').'</a>
</div>
</div>
</div>
';
echo $html;
}
public static function profileUploader($username)
{
global $L;
$html = '<!-- BLUDIT PROFILE UPLOADER -->';
$html .= '
<div id="bludit-profile-picture">
<div id="bludit-profile-picture-image">';
if(file_exists(PATH_UPLOADS_PROFILES.$username.'.png')) {
$html .= '<img class="uk-border-rounded" src="'.HTML_PATH_UPLOADS_PROFILES.$username.'.png" alt="Profile picture">';
}
else {
$html .= '<div class="uk-block uk-border-rounded uk-block-muted uk-block-large">'.$L->g('Profile picture').'</div>';
}
$html .= '
</div>
<div id="bludit-profile-picture-progressbar" class="uk-progress">
<div class="uk-progress-bar" style="width: 0%;">0%</div>
</div>
<div id="bludit-profile-picture-drag-drop" class="uk-form-file uk-placeholder uk-text-center">
<div>'.$L->g('Upload image').'</div>
<div style="font-size:0.8em;">'.$L->g('Drag and drop or click here').'<input id="bludit-profile-picture-file-select" type="file"></div>
</div>
</div>
';
$script = '
<script>
$(document).ready(function() {
var settings =
{
type: "json",
action: HTML_PATH_ADMIN_ROOT+"ajax/uploader",
allow : "*.(jpg|jpeg|gif|png|svg)",
params: {"type":"profilePicture", "username":"'.$username.'"},
loadstart: function() {
$("#bludit-profile-picture-progressbar").find(".uk-progress-bar").css("width", "0%").text("0%");
$("#bludit-profile-picture-progressbar").show();
},
progress: function(percent) {
percent = Math.ceil(percent);
$("#bludit-profile-picture-progressbar").find(".uk-progress-bar").css("width", percent+"%").text(percent+"%");
},
allcomplete: function(response) {
$("#bludit-profile-picture-progressbar").find(".uk-progress-bar").css("width", "100%").text("100%");
$("#bludit-profile-picture-progressbar").hide();
$("#bludit-profile-picture-image").html("<img class=\"uk-border-rounded\" src=\"'.HTML_PATH_UPLOADS_PROFILES.$username.'.png?time='.time().'\">");
},
notallowed: function(file, settings) {
alert("'.$L->g('Supported image file types').' "+settings.allow);
}
};
UIkit.uploadSelect($("#bludit-profile-picture-file-select"), settings);
UIkit.uploadDrop($("#bludit-profile-picture-drag-drop"), settings);
});
</script>
';
echo $html.$script;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,256 @@
(function(addon) {
var component;
if (window.UIkit) {
component = addon(UIkit);
}
if (typeof define == "function" && define.amd) {
define("uikit-upload", ["uikit"], function(){
return component || addon(UIkit);
});
}
})(function(UI){
"use strict";
UI.component('uploadSelect', {
init: function() {
var $this = this;
this.on("change", function() {
xhrupload($this.element[0].files, $this.options);
var twin = $this.element.clone(true).data('uploadSelect', $this);
$this.element.replaceWith(twin);
$this.element = twin;
});
}
});
UI.component('uploadDrop', {
defaults: {
'dragoverClass': 'uk-dragover'
},
init: function() {
var $this = this, hasdragCls = false;
this.on("drop", function(e){
if (e.originalEvent.dataTransfer && e.originalEvent.dataTransfer.files) {
e.stopPropagation();
e.preventDefault();
$this.element.removeClass($this.options.dragoverClass);
$this.element.trigger('dropped.uk.upload', [e.originalEvent.dataTransfer.files]);
xhrupload(e.originalEvent.dataTransfer.files, $this.options);
}
}).on("dragenter", function(e){
e.stopPropagation();
e.preventDefault();
}).on("dragover", function(e){
e.stopPropagation();
e.preventDefault();
if (!hasdragCls) {
$this.element.addClass($this.options.dragoverClass);
hasdragCls = true;
}
}).on("dragleave", function(e){
e.stopPropagation();
e.preventDefault();
$this.element.removeClass($this.options.dragoverClass);
hasdragCls = false;
});
}
});
UI.support.ajaxupload = (function() {
function supportFileAPI() {
var fi = document.createElement('INPUT'); fi.type = 'file'; return 'files' in fi;
}
function supportAjaxUploadProgressEvents() {
var xhr = new XMLHttpRequest(); return !! (xhr && ('upload' in xhr) && ('onprogress' in xhr.upload));
}
function supportFormData() {
return !! window.FormData;
}
return supportFileAPI() && supportAjaxUploadProgressEvents() && supportFormData();
})();
function xhrupload(files, settings) {
if (!UI.support.ajaxupload){
return this;
}
settings = UI.$.extend({}, xhrupload.defaults, settings);
if (!files.length){
return;
}
if (settings.allow !== '*.*') {
for(var i=0,file;file=files[i];i++) {
if(!matchName(settings.allow, file.name)) {
if(typeof(settings.notallowed) == 'string') {
alert(settings.notallowed);
} else {
settings.notallowed(file, settings);
}
return;
}
}
}
var complete = settings.complete;
if (settings.single){
var count = files.length,
uploaded = 0,
allow = true;
settings.beforeAll(files);
settings.complete = function(response, xhr){
uploaded = uploaded + 1;
complete(response, xhr);
if (settings.filelimit && uploaded >= settings.filelimit){
allow = false;
}
if (allow && uploaded<count){
upload([files[uploaded]], settings);
} else {
settings.allcomplete(response, xhr);
}
};
upload([files[0]], settings);
} else {
settings.complete = function(response, xhr){
complete(response, xhr);
settings.allcomplete(response, xhr);
};
upload(files, settings);
}
function upload(files, settings){
// upload all at once
var formData = new FormData(), xhr = new XMLHttpRequest();
if (settings.before(settings, files)===false) return;
for (var i = 0, f; f = files[i]; i++) { formData.append(settings.param, f); }
for (var p in settings.params) { formData.append(p, settings.params[p]); }
// Add any event handlers here...
xhr.upload.addEventListener("progress", function(e){
var percent = (e.loaded / e.total)*100;
settings.progress(percent, e);
}, false);
xhr.addEventListener("loadstart", function(e){ settings.loadstart(e); }, false);
xhr.addEventListener("load", function(e){ settings.load(e); }, false);
xhr.addEventListener("loadend", function(e){ settings.loadend(e); }, false);
xhr.addEventListener("error", function(e){ settings.error(e); }, false);
xhr.addEventListener("abort", function(e){ settings.abort(e); }, false);
xhr.open(settings.method, settings.action, true);
if (settings.type=="json") {
xhr.setRequestHeader("Accept", "application/json");
}
xhr.onreadystatechange = function() {
settings.readystatechange(xhr);
if (xhr.readyState==4){
var response = xhr.responseText;
if (settings.type=="json") {
try {
response = UI.$.parseJSON(response);
} catch(e) {
response = false;
}
}
settings.complete(response, xhr);
}
};
settings.beforeSend(xhr);
xhr.send(formData);
}
}
xhrupload.defaults = {
'action': '',
'single': true,
'method': 'POST',
'param' : 'files[]',
'params': {},
'allow' : '*.*',
'type' : 'text',
'filelimit': false,
// events
'before' : function(o){},
'beforeSend' : function(xhr){},
'beforeAll' : function(){},
'loadstart' : function(){},
'load' : function(){},
'loadend' : function(){},
'error' : function(){},
'abort' : function(){},
'progress' : function(){},
'complete' : function(){},
'allcomplete' : function(){},
'readystatechange': function(){},
'notallowed' : function(file, settings){ alert('Only the following file types are allowed: '+settings.allow); }
};
function matchName(pattern, path) {
var parsedPattern = '^' + pattern.replace(/\//g, '\\/').
replace(/\*\*/g, '(\\/[^\\/]+)*').
replace(/\*/g, '[^\\/]+').
replace(/((?!\\))\?/g, '$1.') + '$';
parsedPattern = '^' + parsedPattern + '$';
return (path.match(new RegExp(parsedPattern, 'i')) !== null);
}
UI.Utils.xhrupload = xhrupload;
return xhrupload;
});

View File

@ -0,0 +1,48 @@
<!DOCTYPE HTML>
<html class="uk-height-1-1 uk-notouch">
<head>
<meta charset="<?php echo CHARSET ?>">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex,nofollow">
<title>Bludit</title>
<!-- Favicon -->
<link rel="shortcut icon" type="image/x-icon" href="<?php echo HTML_PATH_ADMIN_THEME.'img/favicon.png' ?>">
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_ADMIN_THEME.'css/uikit/uikit.almost-flat.min.css?version='.BLUDIT_VERSION ?>">
<link rel="stylesheet" type="text/css" href="<?php echo HTML_PATH_ADMIN_THEME.'css/login.css?version='.BLUDIT_VERSION ?>">
<!-- Javascript -->
<script charset="utf-8" src="<?php echo HTML_PATH_ADMIN_THEME.'js/jquery.min.js?version='.BLUDIT_VERSION ?>"></script>
<script charset="utf-8" src="<?php echo HTML_PATH_ADMIN_THEME.'js/uikit/uikit.min.js?version='.BLUDIT_VERSION ?>"></script>
<!-- Plugins -->
<?php Theme::plugins('loginHead') ?>
</head>
<body class="uk-height-1-1">
<!-- Plugins -->
<?php Theme::plugins('loginBodyBegin') ?>
<div class="uk-vertical-align uk-text-center uk-height-1-1">
<div class="uk-vertical-align-middle login-box">
<h1>BLUDIT</h1>
<?php
if(Alert::defined()) {
echo '<div class="uk-alert">'.Alert::get().'</div>';
}
if( Sanitize::pathFile(PATH_ADMIN_VIEWS, $layout['view'].'.php') ) {
include(PATH_ADMIN_VIEWS.$layout['view'].'.php');
}
?>
</div>
</div>
<!-- Plugins -->
<?php Theme::plugins('loginBodyEnd') ?>
</body>
</html>

View File

@ -14,8 +14,18 @@ echo '
'; ';
echo '<tr>'; echo '<tr>';
echo '<td>Bludit</td>'; echo '<td>Bludit version</td>';
echo '<td>'.BLUDIT_VERSION.' ('.BLUDIT_CODENAME.')</td>'; echo '<td>'.BLUDIT_VERSION.'</td>';
echo '</tr>';
echo '<tr>';
echo '<td>Bludit codename</td>';
echo '<td>'.BLUDIT_CODENAME.'</td>';
echo '</tr>';
echo '<tr>';
echo '<td>Bludit build</td>';
echo '<td>'.BLUDIT_BUILD.'</td>';
echo '</tr>'; echo '</tr>';
echo '<tr>'; echo '<tr>';

View File

@ -1,5 +1,4 @@
<div class="uk-block uk-block-muted dashboard-links"> <div class="uk-block dashboard-links">
<div class="uk-container">
<div class="uk-grid uk-grid-match" data-uk-grid-margin="{target:'.uk-panel'}"> <div class="uk-grid uk-grid-match" data-uk-grid-margin="{target:'.uk-panel'}">
<div class="uk-width-medium-1-3"> <div class="uk-width-medium-1-3">
@ -57,14 +56,13 @@
</div> </div>
</div> </div>
</div>
<div class="uk-grid" data-uk-grid-margin> <div id="dashboard-panel" class="uk-grid">
<div class="uk-width-medium-1-3"> <div class="uk-width-1-3">
<div class="uk-panel uk-panel-box"> <div class="uk-panel">
<h4><?php $L->p('Statistics') ?></h4> <h4 class="panel-title"><?php $L->p('Statistics') ?></h4>
<table class="uk-table statistics"> <table class="uk-table statistics">
<tbody> <tbody>
<tr> <tr>
@ -85,10 +83,10 @@
</div> </div>
<div class="uk-width-medium-1-3"> <div class="uk-width-1-3">
<div class="uk-panel uk-panel-box"> <div class="uk-panel">
<h4><?php $L->p('Drafts') ?></h4> <h4 class="panel-title"><?php $L->p('Drafts') ?></h4>
<ul class="uk-list"> <ul class="uk-list">
<?php <?php
if( empty($_draftPosts) && empty($_draftPages) ) { if( empty($_draftPosts) && empty($_draftPages) ) {
@ -108,10 +106,10 @@
</div> </div>
<div class="uk-width-medium-1-3"> <div class="uk-width-1-3">
<div class="uk-panel uk-panel-box"> <div class="uk-panel">
<h4><?php $L->p('Scheduled posts') ?></h4> <h4 class="panel-title"><?php $L->p('Scheduled posts') ?></h4>
<ul class="uk-list"> <ul class="uk-list">
<?php <?php
if( empty($_scheduledPosts) ) { if( empty($_scheduledPosts) ) {

View File

@ -18,7 +18,7 @@ HTML::formOpen(array('class'=>'uk-form-stacked'));
// ---- LEFT SIDE ---- // ---- LEFT SIDE ----
echo '<div class="uk-grid">'; echo '<div class="uk-grid">';
echo '<div class="uk-width-large-8-10">'; echo '<div class="uk-width-8-10">';
// Title input // Title input
HTML::formInputText(array( HTML::formInputText(array(
@ -52,7 +52,7 @@ if(count($_Page->children())===0)
echo '</div>'; echo '</div>';
// ---- RIGHT SIDE ---- // ---- RIGHT SIDE ----
echo '<div class="sidebar uk-width-large-2-10">'; echo '<div class="sidebar-meta uk-width-2-10">';
// Tabs, general and advanced mode // Tabs, general and advanced mode
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">'; echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';

View File

@ -18,7 +18,7 @@ HTML::formOpen(array('class'=>'uk-form-stacked'));
// ---- LEFT SIDE ---- // ---- LEFT SIDE ----
echo '<div class="uk-grid">'; echo '<div class="uk-grid">';
echo '<div class="uk-width-large-8-10">'; echo '<div class="uk-width-8-10">';
// Title input // Title input
HTML::formInputText(array( HTML::formInputText(array(
@ -46,7 +46,7 @@ echo '<div class="uk-width-large-8-10">';
echo '</div>'; echo '</div>';
// ---- RIGHT SIDE ---- // ---- RIGHT SIDE ----
echo '<div class="sidebar uk-width-large-2-10">'; echo '<div class="sidebar-meta uk-width-2-10">';
// Tabs, general and advanced mode // Tabs, general and advanced mode
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">'; echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';

View File

@ -64,6 +64,7 @@ if($Login->role()==='admin') {
)); ));
} }
HTML::formInputText(array( HTML::formInputText(array(
'name'=>'email', 'name'=>'email',
'label'=>$L->g('Email'), 'label'=>$L->g('Email'),
@ -113,6 +114,25 @@ if($Login->role()==='admin') {
</div> </div>
</div>'; </div>';
HTML::legend(array('value'=>$L->g('Status')));
HTML::formInputText(array(
'name'=>'status',
'label'=>$L->g('Current status'),
'value'=>$_User->enabled()?$L->g('Enabled'):$L->g('Disabled'),
'class'=>'uk-width-1-2 uk-form-medium',
'disabled'=>true,
'tip'=>$_User->enabled()?'':$L->g('To enable the user you have to set a new password')
));
if( $_User->enabled() ) {
echo '<div class="uk-form-row">
<div class="uk-form-controls">
<button type="submit" id="jsdisable-user" class="delete-button" name="disable-user"><i class="uk-icon-ban"></i> '.$L->g('Disable the user').'</button>
</div>
</div>';
}
if( ($Login->role()==='admin') && ($_User->username()!='admin') ) { if( ($Login->role()==='admin') && ($_User->username()!='admin') ) {
HTML::legend(array('value'=>$L->g('Delete'))); HTML::legend(array('value'=>$L->g('Delete')));
@ -155,6 +175,12 @@ $(document).ready(function() {
} }
}); });
$("#jsdisable-user").click(function() {
if(confirm("<?php $Language->p('do-you-want-to-disable-the-user') ?>")==false) {
return false;
}
});
}); });
</script> </script>

View File

@ -12,7 +12,7 @@ HTML::formOpen(array('class'=>'uk-form-stacked'));
// ---- LEFT SIDE ---- // ---- LEFT SIDE ----
echo '<div class="uk-grid">'; echo '<div class="uk-grid">';
echo '<div class="uk-width-large-8-10">'; echo '<div class="uk-width-8-10">';
// Title input // Title input
HTML::formInputText(array( HTML::formInputText(array(
@ -39,7 +39,7 @@ echo '<div class="uk-width-large-8-10">';
echo '</div>'; echo '</div>';
// ---- RIGHT SIDE ---- // ---- RIGHT SIDE ----
echo '<div class="sidebar uk-width-large-2-10">'; echo '<div class="sidebar-meta uk-width-2-10">';
// Tabs, general and advanced mode // Tabs, general and advanced mode
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">'; echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';

View File

@ -12,7 +12,7 @@ HTML::formOpen(array('class'=>'uk-form-stacked'));
// ---- LEFT SIDE ---- // ---- LEFT SIDE ----
echo '<div class="uk-grid">'; echo '<div class="uk-grid">';
echo '<div class="uk-width-large-8-10">'; echo '<div class="uk-width-8-10">';
// Title input // Title input
HTML::formInputText(array( HTML::formInputText(array(
@ -39,7 +39,7 @@ echo '<div class="uk-width-large-8-10">';
echo '</div>'; echo '</div>';
// ---- RIGHT SIDE ---- // ---- RIGHT SIDE ----
echo '<div class="sidebar uk-width-large-2-10">'; echo '<div class="sidebar-meta uk-width-2-10">';
// Tabs, general and advanced mode // Tabs, general and advanced mode
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">'; echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';

View File

@ -35,10 +35,20 @@ foreach($plugins['all'] as $Plugin)
echo '<a class="install" href="'.HTML_PATH_ADMIN_ROOT.'install-plugin/'.$Plugin->className().'">'.$L->g('Activate').'</a>'; echo '<a class="install" href="'.HTML_PATH_ADMIN_ROOT.'install-plugin/'.$Plugin->className().'">'.$L->g('Activate').'</a>';
} }
echo ' echo '
</div> </div>
</td> </td>';
<td>'.$Plugin->description().'</td>
echo '<td>';
echo $Plugin->description();
if( !$Plugin->isCompatible() ) {
echo '<div class="plugin-incompatible">This plugin is incompatible with Bludit v'.BLUDIT_VERSION.'</div>';
}
echo '</td>';
echo '
<td class="uk-text-center">'.$Plugin->version().'</td> <td class="uk-text-center">'.$Plugin->version().'</td>
<td class="uk-text-center"><a targe="_blank" href="'.$Plugin->website().'">'.$Plugin->author().'</a></td> <td class="uk-text-center"><a targe="_blank" href="'.$Plugin->website().'">'.$Plugin->author().'</a></td>
'; ';

View File

@ -1,6 +1,6 @@
<?php <?php
HTML::title(array('title'=>$L->g('Language and timezone'), 'icon'=>'cogs')); HTML::title(array('title'=>$L->g('Language and timezone'), 'icon'=>'globe'));
HTML::formOpen(array('class'=>'uk-form-horizontal')); HTML::formOpen(array('class'=>'uk-form-horizontal'));
@ -34,7 +34,7 @@ HTML::formOpen(array('class'=>'uk-form-horizontal'));
'label'=>$L->g('Locale'), 'label'=>$L->g('Locale'),
'value'=>$Site->locale(), 'value'=>$Site->locale(),
'class'=>'uk-width-1-2 uk-form-medium', 'class'=>'uk-width-1-2 uk-form-medium',
'tip'=>$L->g('you-can-use-this-field-to-define-a-set-off') 'tip'=>$L->g('you-can-use-this-field-to-define-a-set-of')
)); ));
HTML::legend(array('value'=>$L->g('Date and time formats'))); HTML::legend(array('value'=>$L->g('Date and time formats')));

View File

@ -30,8 +30,17 @@ foreach($themes as $theme)
echo ' echo '
</div> </div>
</td> </td>';
<td>'.$theme['description'].'</td>
echo '<td>';
echo $theme['description'];
if( !$theme['compatible'] ) {
echo '<div class="theme-incompatible">This theme is incompatible with Bludit v'.BLUDIT_VERSION.'</div>';
}
echo '</td>';
echo '
<td class="uk-text-center">'.$theme['version'].'</td> <td class="uk-text-center">'.$theme['version'].'</td>
<td class="uk-text-center"><a targe="_blank" href="'.$theme['website'].'">'.$theme['author'].'</a></td> <td class="uk-text-center"><a targe="_blank" href="'.$theme['website'].'">'.$theme['author'].'</a></td>
'; ';

View File

@ -47,11 +47,20 @@ if($type=='profilePicture')
else { else {
// Generate the thumbnail // Generate the thumbnail
$Image = new Image(); $Image = new Image();
$Image->setImage(PATH_TMP.'original'.'.'.$fileExtension, THUMBNAILS_WIDTH, THUMBNAILS_HEIGHT, 'crop');
$Image->saveImage(PATH_UPLOADS_THUMBNAILS.$tmpName, THUMBNAILS_QUALITY, true); //Handling all other formats than svg
if (strcasecmp($fileExtension, 'svg') != 0) {
$Image->setImage(PATH_TMP.'original'.'.'.$fileExtension, THUMBNAILS_WIDTH, THUMBNAILS_HEIGHT, 'crop');
$Image->saveImage(PATH_UPLOADS_THUMBNAILS.$tmpName, THUMBNAILS_QUALITY, true);
}
// Move the original to the upload folder. // Move the original to the upload folder.
rename(PATH_TMP.'original'.'.'.$fileExtension, PATH_UPLOADS.$tmpName); rename(PATH_TMP.'original'.'.'.$fileExtension, PATH_UPLOADS.$tmpName);
//If it is a svg file, just save a copy in thumbnail-folder
if (strcasecmp($fileExtension, 'svg') == 0) {
symlink(PATH_UPLOADS.$tmpName, PATH_UPLOADS_THUMBNAILS.$tmpName);
}
} }
// Remove the Bludit temporary file. // Remove the Bludit temporary file.

View File

@ -91,7 +91,7 @@ define('NO_PARENT_CHAR', '3849abb4cb7abd24c2d8dac17b216f17');
define('POSTS_PER_PAGE_ADMIN', 10); define('POSTS_PER_PAGE_ADMIN', 10);
// Cli mode status for new posts/pages // Cli mode status for new posts/pages
define('CLI_MODE', TRUE); define('CLI_MODE', FALSE);
// Cli mode status for new posts/pages // Cli mode status for new posts/pages
define('CLI_STATUS', 'published'); define('CLI_STATUS', 'published');
@ -99,7 +99,7 @@ define('CLI_STATUS', 'published');
// Cli mode username for new posts/pages // Cli mode username for new posts/pages
define('CLI_USERNAME', 'admin'); define('CLI_USERNAME', 'admin');
// Filename for posts and pages // Filename for posts and pages, you can change for example, for index.md
define('FILENAME', 'index.txt'); define('FILENAME', 'index.txt');
// Database date format // Database date format
@ -123,17 +123,11 @@ define('EXTREME_FRIENDLY_URL', false);
// Directory permissions // Directory permissions
define('DIR_PERMISSIONS', 0755); define('DIR_PERMISSIONS', 0755);
// Multibyte string extension loaded. // Set internal character encoding.
define('MB_STRING', extension_loaded('mbstring')); mb_internal_encoding(CHARSET);
if(MB_STRING) // Set HTTP output character encoding.
{ mb_http_output(CHARSET);
// Set internal character encoding.
mb_internal_encoding(CHARSET);
// Set HTTP output character encoding.
mb_http_output(CHARSET);
}
// Inclde Abstract Classes // Inclde Abstract Classes
include(PATH_ABSTRACT.'dbjson.class.php'); include(PATH_ABSTRACT.'dbjson.class.php');

View File

@ -96,20 +96,16 @@ function buildPlugins()
$Language->add($database); $Language->add($database);
} }
// If the plugin is compatible with the Bludit version, add to arrays // Push Plugin to array all plugins installed and not installed.
if($Plugin->isCompatible()) { $plugins['all'][$pluginClass] = $Plugin;
// Push Plugin to array all plugins installed and not installed. // If the plugin is installed, order by hooks.
$plugins['all'][$pluginClass] = $Plugin; if($Plugin->installed()) {
// If the plugin is installed, order by hooks. foreach($pluginsEvents as $event=>$value) {
if($Plugin->installed()) {
foreach($pluginsEvents as $event=>$value) { if(method_exists($Plugin, $event)) {
array_push($plugins[$event], $Plugin);
if(method_exists($Plugin, $event)) {
array_push($plugins[$event], $Plugin);
}
} }
} }
} }

View File

@ -44,19 +44,17 @@ function buildThemes()
$metadataString = file_get_contents($filenameMetadata); $metadataString = file_get_contents($filenameMetadata);
$metadata = json_decode($metadataString, true); $metadata = json_decode($metadataString, true);
$database['compatible'] = false;
if( !empty($metadata['compatible']) ) { if( !empty($metadata['compatible']) ) {
$explode = explode(',', $metadata['compatible']); $explode = explode(',', $metadata['compatible']);
if(in_array(BLUDIT_VERSION, $explode)) { if(in_array(BLUDIT_VERSION, $explode)) {
$database = $database + $metadata; $database['compatible'] = true;
array_push($themes, $database);
} }
} }
else {
Log::set('99.themes.php'.LOG_SEP.'Metadata file error on theme '.$themePath);
}
$database = $database + $metadata;
array_push($themes, $database);
} }
} }
} }

View File

@ -84,7 +84,7 @@ class dbPages extends dbJSON
// Make the index.txt and save the file. // Make the index.txt and save the file.
$data = implode("\n", $dataForFile); $data = implode("\n", $dataForFile);
if( file_put_contents(PATH_PAGES.$key.FILENAME, $data) === false ) { if( file_put_contents(PATH_PAGES.$key.DS.FILENAME, $data) === false ) {
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to put the content in the file index.txt'); Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to put the content in the file index.txt');
return false; return false;
} }
@ -394,7 +394,8 @@ class dbPages extends dbJSON
$checksum = md5_file(PATH_PAGES.$key.DS.FILENAME); $checksum = md5_file(PATH_PAGES.$key.DS.FILENAME);
// If checksum is different, update the post // If checksum is different, update the post
if( $this->db[$key]['md5file']!==$checksum ) { if( !isset($this->db[$key]['md5file']) ||
$this->db[$key]['md5file']!==$checksum ) {
// LOG // LOG
Log::set('CLI MODE - Different md5 checksum, key: '.$key); Log::set('CLI MODE - Different md5 checksum, key: '.$key);

View File

@ -108,6 +108,15 @@ class dbUsers extends dbJSON
return $this->set($args); return $this->set($args);
} }
// Disable the user
public function disableUser($username)
{
$args['username'] = $username;
$args['password'] = '!';
return $this->set($args);
}
public function set($args) public function set($args)
{ {
$dataForDb = array(); $dataForDb = array();

View File

@ -85,7 +85,7 @@ $(document).ready(function() {
}, },
notallowed: function(file, settings) { notallowed: function(file, settings) {
alert("'.$L->g('Supported image file types').' "+settings.allow); alert("<?php echo $L->g('error').'. '.$L->g('Supported image file types')?>: "+settings.allow);
} }
}; };

View File

@ -58,7 +58,7 @@ $(document).ready(function() {
}, },
notallowed: function(file, settings) { notallowed: function(file, settings) {
alert("'.$L->g('Supported image file types').' "+settings.allow); alert("<?php echo $L->g('error').'. '.$L->g('Supported image file types')?>: "+settings.allow);
} }
}; };

View File

@ -46,6 +46,13 @@ class User
return $this->getField('password'); return $this->getField('password');
} }
public function enabled()
{
$password = $this->getField('password');
return $password != '!';
}
public function salt() public function salt()
{ {
return $this->getField('salt'); return $this->getField('salt');

View File

@ -27,7 +27,7 @@
"no-parent": "Самостоятелна страница", "no-parent": "Самостоятелна страница",
"edit-page": "Редактиране на страницата", "edit-page": "Редактиране на страницата",
"edit-post": "Редактиране на публикацията", "edit-post": "Редактиране на публикацията",
"add-a-new-user": "Добавяне на нов потребител", "add-a-new-user": "Добавяне на потребител",
"parent": "Избор на основна страница", "parent": "Избор на основна страница",
"friendly-url": "Friendly URL", "friendly-url": "Friendly URL",
"description": "Описание", "description": "Описание",
@ -42,7 +42,7 @@
"profile": "Профил", "profile": "Профил",
"email": "Имейл адрес", "email": "Имейл адрес",
"settings": "Настройки", "settings": "Настройки",
"general": "Общи настройки", "general": "Общи настройки:",
"advanced": "Разширени настройки", "advanced": "Разширени настройки",
"regional": "Регионални настройки", "regional": "Регионални настройки",
"about": "Относно", "about": "Относно",
@ -57,7 +57,7 @@
"site-title": "Заглавие на сайта", "site-title": "Заглавие на сайта",
"site-slogan": "Ключови думи / Етикети", "site-slogan": "Ключови думи / Етикети",
"site-description": "Описание на сайта", "site-description": "Описание на сайта",
"footer-text": "Текст долната част на страницата.", "footer-text": "Текст в долната част",
"posts-per-page": "Брой публикации на страница", "posts-per-page": "Брой публикации на страница",
"site-url": "Адрес, на който блога е ще бъде намиран", "site-url": "Адрес, на който блога е ще бъде намиран",
"writting-settings": "Запиши настройките", "writting-settings": "Запиши настройките",
@ -73,7 +73,7 @@
"new-post": "Нова публикация", "new-post": "Нова публикация",
"html-and-markdown-code-supported": "Поддръжан код HTML и Markdown ", "html-and-markdown-code-supported": "Поддръжан код HTML и Markdown ",
"new-page": "Нова страница", "new-page": "Нова страница",
"manage-posts": "Управление на публикациите", "manage-posts": "Управление на публикации",
"published-date": "Дата на побликуване", "published-date": "Дата на побликуване",
"modified-date": "Промяна на дата", "modified-date": "Промяна на дата",
"empty-title": "Без заглавие", "empty-title": "Без заглавие",
@ -88,7 +88,7 @@
"bludit-version": "Bludit version", "bludit-version": "Bludit version",
"powered-by": "Създадено от", "powered-by": "Създадено от",
"recent-posts": "Последни публикации", "recent-posts": "Последни публикации",
"manage-pages": "Управление на страниците", "manage-pages": "Управление на страници",
"advanced-options": "Разширени настройки", "advanced-options": "Разширени настройки",
"user-deleted": "Изтриване на потребител", "user-deleted": "Изтриване на потребител",
"page-added-successfully": "Страницата е добавена успешно", "page-added-successfully": "Страницата е добавена успешно",
@ -108,8 +108,8 @@
"new-posts-and-pages-synchronized": "Новите публикации и страници са синхронизирани.", "new-posts-and-pages-synchronized": "Новите публикации и страници са синхронизирани.",
"you-can-choose-the-users-privilege": "Можете да зададете правомощия на потребителя. Редактора, може само да напише страници и мнения.", "you-can-choose-the-users-privilege": "Можете да зададете правомощия на потребителя. Редактора, може само да напише страници и мнения.",
"email-will-not-be-publicly-displayed": "Този имейл адрес няма да бъде показван. Ще се използва за възстановяване парола и уведомления.", "email-will-not-be-publicly-displayed": "Този имейл адрес няма да бъде показван. Ще се използва за възстановяване парола и уведомления.",
"use-this-field-to-name-your-site": "Използвайте това поле за име на вашия сайт, той ще се появи в горната част на всяка страница на вашия сайт.", "use-this-field-to-name-your-site": "Използвайте това поле за име на сайта, то ще се появи в горната част на всяка страница.",
"use-this-field-to-add-a-catchy-phrase": "Използвайте това поле, за да добавите ключови думи и изрази за вашия сайт.", "use-this-field-to-add-a-catchy-phrase": "Използвайте това поле, за да добавите ключови думи и изрази за сайта.",
"you-can-add-a-site-description-to-provide": "Можете да добавите кратко описание или биография на сайта.", "you-can-add-a-site-description-to-provide": "Можете да добавите кратко описание или биография на сайта.",
"you-can-add-a-small-text-on-the-bottom": "Можете да добавите кратък текст в долната част на всяка страница. Например: авторско право, собственик, дати и т.н..", "you-can-add-a-small-text-on-the-bottom": "Можете да добавите кратък текст в долната част на всяка страница. Например: авторско право, собственик, дати и т.н..",
"number-of-posts-to-show-per-page": "Изберете желаният брой публикации на страница.", "number-of-posts-to-show-per-page": "Изберете желаният брой публикации на страница.",
@ -125,12 +125,12 @@
"delete-the-user-and-associate-its-posts-to-admin-user": "Изтриване на потребителя, без изтриване на неговите публикации.", "delete-the-user-and-associate-its-posts-to-admin-user": "Изтриване на потребителя, без изтриване на неговите публикации.",
"read-more": "Вижте повече...", "read-more": "Вижте повече...",
"show-blog": "Покажи блога", "show-blog": "Покажи блога",
"default-home-page": "Задай начална страница по подразбиране", "default-home-page": "Начална страница по подразбиране",
"version": "Версия", "version": "Версия",
"there-are-no-drafts": "Не са открити чернови.", "there-are-no-drafts": "Не са открити чернови.",
"create-a-new-article-for-your-blog":"Създайте на нова публикация във вашия блог.", "create-a-new-article-for-your-blog":"Създайте нова публикация във вашия блог.",
"create-a-new-page-for-your-website":"Създайте на нова страница във вашия уеб сайт.", "create-a-new-page-for-your-website":"Създайте нова страница във вашия уеб сайт.",
"invite-a-friend-to-collaborate-on-your-website":"Добави потребител, който да ви помага за развитието вашият сайт.", "invite-a-friend-to-collaborate-on-your-website":"Добавете потребител, който да Ви помага за развитието вашият уеб сайт.",
"change-your-language-and-region-settings":"Избор на параметри свързани с език, страна и местоположение.", "change-your-language-and-region-settings":"Избор на параметри свързани с език, страна и местоположение.",
"language-and-timezone":"Език и часова зона", "language-and-timezone":"Език и часова зона",
"author": "Автор", "author": "Автор",
@ -177,12 +177,12 @@
"write-the-tags-separated-by-commas": "Напишете етикети, разделени със запетая.", "write-the-tags-separated-by-commas": "Напишете етикети, разделени със запетая.",
"status": "Статус", "status": "Статус",
"published": "Публикувай", "published": "Публикувай",
"scheduled-posts": "Планирани постове:", "scheduled-posts": "Планирани публикации:",
"statistics": "Статистика:", "statistics": "Статистика:",
"name": "Име", "name": "Име",
"email-account-settings":"Настройки на имейл акаунт", "email-account-settings":"Настройки на имейл акаунт:",
"sender-email": "Имейл на изпращача", "sender-email": "Имейл на изпращача",
"emails-will-be-sent-from-this-address":"Имейлите ще бъдат изпратени от този адрес.", "emails-will-be-sent-from-this-address":"Писмата ще бъдат изпращани от този адрес.",
"bludit-login-access-code": "BLUDIT - Код за достъп", "bludit-login-access-code": "BLUDIT - Код за достъп",
"check-your-inbox-for-your-login-access-code":":Моля, проверете вашата пощенска кутия за вашият код!", "check-your-inbox-for-your-login-access-code":":Моля, проверете вашата пощенска кутия за вашият код!",
"there-was-a-problem-sending-the-email":"Възникна проблем при изпращането на имейла", "there-was-a-problem-sending-the-email":"Възникна проблем при изпращането на имейла",
@ -215,8 +215,8 @@
"about-your-site-or-yourself": "За твоя сайт или за теб", "about-your-site-or-yourself": "За твоя сайт или за теб",
"welcome-to-bludit": "Добре дошли в Bludit", "welcome-to-bludit": "Добре дошли в Bludit",
"site-information": "Информация за сайта", "site-information": "Информация за сайта:",
"date-and-time-formats": "Формат дата и час", "date-and-time-formats": "Формат дата и час:",
"activate": "Активиране", "activate": "Активиране",
"deactivate": "Деактивиране", "deactivate": "Деактивиране",
@ -233,7 +233,7 @@
"set-as-cover-image": "Задай като обложка ", "set-as-cover-image": "Задай като обложка ",
"delete-image": "Изтрий изображенито", "delete-image": "Изтрий изображенито",
"image-description": "Описание на изображението ", "image-description": "Описание на изображението ",
"social-networks-links": "Социалните мрежи", "social-networks-links": "Социални мрежи:",
"email-access-code": "Имейл код за достъп", "email-access-code": "Имейл код за достъп",
"current-format": "Текущ формат" "current-format": "Текущ формат"

View File

@ -240,5 +240,8 @@
"email-access-code": "Email access code", "email-access-code": "Email access code",
"current-format": "Current format", "current-format": "Current format",
"welcome": "Welcome" "welcome": "Welcome",
"to-enable-the-user-you-have-to-set-a-new-password": "To enable the user you have to set a new password.",
"do-you-want-to-disable-the-user": "Do you want to disable the user ?"
} }

View File

@ -116,7 +116,7 @@
"add-or-edit-description-tags-or": "Lisää ja muokkaa kuvausta, tageja tai sivun osoitetta.", "add-or-edit-description-tags-or": "Lisää ja muokkaa kuvausta, tageja tai sivun osoitetta.",
"select-your-sites-language": "Valitse sivuston kieli.", "select-your-sites-language": "Valitse sivuston kieli.",
"select-a-timezone-for-a-correct": "Valitse aikavyöhyke, jotta kellonajat ja päivämäärät näkyvät oikein.", "select-a-timezone-for-a-correct": "Valitse aikavyöhyke, jotta kellonajat ja päivämäärät näkyvät oikein.",
"you-can-use-this-field-to-define-a-set-off": "Tällä kentällä voit määritellä joukon asetuksia liittyen kieleen, maahan ja erityisiin asetuksiin.", "you-can-use-this-field-to-define-a-set-of": "Tällä kentällä voit määritellä joukon asetuksia liittyen kieleen, maahan ja erityisiin asetuksiin.",
"you-can-modify-the-url-which-identifies":"Voit muokata sivun osoitetta. Enintään 150 merkkiä", "you-can-modify-the-url-which-identifies":"Voit muokata sivun osoitetta. Enintään 150 merkkiä",
"this-field-can-help-describe-the-content": "Kirjoita tähän kuvaus sivun sisällöstä. Kuvaus näkyy hakutuloksessa esim. Googlessa. Enintään 150 merkkiä.", "this-field-can-help-describe-the-content": "Kirjoita tähän kuvaus sivun sisällöstä. Kuvaus näkyy hakutuloksessa esim. Googlessa. Enintään 150 merkkiä.",

View File

@ -116,7 +116,6 @@
"add-or-edit-description-tags-or": "Tambah atau sunting perihal dan tag atau ubah URL mesra.", "add-or-edit-description-tags-or": "Tambah atau sunting perihal dan tag atau ubah URL mesra.",
"select-your-sites-language": "Pilih bahasa laman web anda.", "select-your-sites-language": "Pilih bahasa laman web anda.",
"select-a-timezone-for-a-correct": "Pilih zon masa yang betul untuk paparan tarikh dan masa yang tepat.", "select-a-timezone-for-a-correct": "Pilih zon masa yang betul untuk paparan tarikh dan masa yang tepat.",
"you-can-use-this-field-to-define-a-set-of": "You can use this field to define a set of parameters related to the language, country and special preferences.",
"you-can-use-this-field-to-define-a-set-of": "Tetapkan set parameter berkaitan dengan bahasa, negara dan keutamaan istimewa.", "you-can-use-this-field-to-define-a-set-of": "Tetapkan set parameter berkaitan dengan bahasa, negara dan keutamaan istimewa.",
"you-can-modify-the-url-which-identifies":"Anda boleh mengubah URL yang mengenalpasti sesuatu artikel atau halaman menggunakan kata kunci yang boleh dibaca oleh manusia. Tidak lebih daripada 150 aksara.", "you-can-modify-the-url-which-identifies":"Anda boleh mengubah URL yang mengenalpasti sesuatu artikel atau halaman menggunakan kata kunci yang boleh dibaca oleh manusia. Tidak lebih daripada 150 aksara.",
"this-field-can-help-describe-the-content": "Huraikan secara ringkas kandungan ini. Tidak lebih daripada 150 aksara.", "this-field-can-help-describe-the-content": "Huraikan secara ringkas kandungan ini. Tidak lebih daripada 150 aksara.",

View File

@ -3,10 +3,10 @@
{ {
"native": "Polski (Polska)", "native": "Polski (Polska)",
"english-name": "Polish", "english-name": "Polish",
"last-update": "2016-02-14", "last-update": "2016-08-10",
"author": "Dave", "author": "Dave",
"email": "dawid.stawicki@windowslive.com", "email": "dawid.stawicki@windowslive.com",
"website": "http://dave.de/" "website": "http://dav3.de"
}, },
"username": "Użytkownik", "username": "Użytkownik",
@ -234,5 +234,10 @@
"delete-image": "Usuń", "delete-image": "Usuń",
"image-description": "Opis obrazka", "image-description": "Opis obrazka",
"social-networks-links": "Odnośniki do serwisów społecznościowych" "social-networks-links": "Odnośniki do serwisów społecznościowych",
"email-access-code": "Otrzymaj kod dostępu poprzez e-mail",
"current-format": "Format",
"welcome": "Cześć, "
} }

View File

@ -238,5 +238,7 @@
"social-networks-links": "Социальные сети", "social-networks-links": "Социальные сети",
"email-access-code": "Проверочный код email", "email-access-code": "Проверочный код email",
"current-format": "Текущий формат" "current-format": "Текущий формат",
"welcome": "Добро пожаловать"
} }

222
bl-languages/zh_CN.json Normal file
View File

@ -0,0 +1,222 @@
{
"language-data":
{
"native": "Simplified Chinese (PRC)",
"english-name": "Simplified Chinese",
"last-update": "2017-07-20",
"author": "Zhou Hao",
"email": "zhou.hao.27@gmail.com",
"website": "http://thezeusoft.com"
},
"username": "用户名称",
"password": "用户密码",
"confirm-password": "确认密码",
"editor": "作者",
"dashboard": "主页面",
"role": "角色",
"post": "文章",
"posts": "文章",
"users": "用户",
"administrator": "管理员",
"add": "新增",
"cancel": "取消",
"content": "內容",
"title": "标题",
"no-parent": "沒有继承页面",
"edit-page": "编辑页面",
"edit-post": "编辑文章",
"add-a-new-user": "新增用户",
"parent": "继承页面",
"friendly-url": "友好链接",
"description": "简介",
"posted-by": "发表由",
"tags": "标签",
"position": "位置",
"save": "存储",
"draft": "草稿",
"delete": "刪除",
"registered": "已注册",
"Notifications": "通知",
"profile": "个人档案",
"email": "电子邮件",
"settings": "设定",
"general": "一般设定",
"advanced": "高级设定",
"regional": "区域",
"about": "关于",
"login": "登入",
"logout": "登出",
"manage": "管理",
"themes": "主题",
"prev-page": "上一页",
"next-page": "下一页",
"configure-plugin": "插件设置",
"confirm-delete-this-action-cannot-be-undone": "确认删除? 此动作不可复原",
"site-title": "网站标题",
"site-slogan": "网站标语",
"site-description": "网站简介",
"footer-text": "页脚文字",
"posts-per-page": "每页文章数",
"site-url": "网站网址",
"writting-settings": "写作设定",
"url-filters": "网址过滤器",
"page": "页面",
"pages": "页面",
"home": "首页",
"welcome-back": "欢迎回來",
"language": "语言",
"website": "网站",
"timezone": "时区",
"locale": "区域",
"new-post": "新文章",
"html-and-markdown-code-supported": "支持HTML与Markdown代码",
"new-page": "新页面",
"manage-posts": "管理文章",
"published-date": "发表日期",
"modified-date": "修改日期",
"empty-title": "空白标题",
"plugins": "插件",
"install-plugin": "安装插件",
"uninstall-plugin": "移除插件",
"new-password": "新密码",
"edit-user": "编辑用户",
"publish-now": "立即发表",
"first-name": "名",
"last-name": "姓",
"bludit-version": "Bludit版本",
"powered-by": "Powered by",
"recent-posts": "最新文章",
"manage-pages": "管理页面",
"advanced-options": "高级设定",
"user-deleted": "用户已刪除",
"page-added-successfully": "页面已成功新增",
"post-added-successfully": "文章已成功新增",
"the-post-has-been-deleted-successfully": "页面已成功被刪除",
"the-page-has-been-deleted-successfully": "页面已成功被刪除",
"username-or-password-incorrect": "用户账号或者密码不正确",
"database-regenerated": "数据库已经重建",
"the-changes-have-been-saved": "变更已经储存",
"enable-more-features-at": "启用更多功能在",
"username-already-exists": "用户名称已经存在",
"username-field-is-empty": "用户名称字段为空白",
"the-password-and-confirmation-password-do-not-match":"用户密码与确认密码不符",
"user-has-been-added-successfully": "用户已新增成功",
"you-do-not-have-sufficient-permissions": "您沒有权限存取此页面,请联络管理员",
"settings-advanced-writting-settings": "设定->高级设定->写作设定",
"new-posts-and-pages-synchronized": "新文章与页面已经同步完成",
"you-can-choose-the-users-privilege": "您可以选择用户的权限,作者角色只能撰写页面与文章",
"email-will-not-be-publicly-displayed": "Email將不会被公开显示建议用于复原密码或是通知",
"use-this-field-to-name-your-site": "使用此字段来填写您网站名称,它將会被显示在每一个页面的最上方",
"use-this-field-to-add-a-catchy-phrase": "使用此字段来帮您的网站添加一个可以朗朗上口的标语吧",
"you-can-add-a-site-description-to-provide": "您可以新增一段简短的简介來介绍您的网站",
"you-can-add-a-small-text-on-the-bottom": "您可以在每一页的页尾放置一些短短的文字,例如: 版权、所有人、日期...",
"number-of-posts-to-show-per-page": "每一页会显示几篇文章的数量",
"the-url-of-your-site": "网站的网址",
"add-or-edit-description-tags-or": "新增或编辑简介、标签或是修改友好网址",
"select-your-sites-language": "选择您所使用的语言",
"select-a-timezone-for-a-correct": "选择正确的时区来显示时间",
"you-can-use-this-field-to-define-a-set-of": "您可以使用此字段來定义相关的语言、国家与特別的参数",
"you-can-modify-the-url-which-identifies":"您可以修改网址來让文章或页面的网址可以更接近人类所了解的字词不能超过150个字",
"this-field-can-help-describe-the-content": "這個字段可以帮助快速理解內容不能超过150个字",
"write-the-tags-separated-by-comma": "撰写使用逗号分隔的标签,例如: 标签1, 标签2, 标签3",
"delete-the-user-and-all-its-posts":"刪除用户与他所发表的文章",
"delete-the-user-and-associate-its-posts-to-admin-user": "刪除用户,並將他所发表的文章关联至管理員权限的用户",
"read-more": "继续阅读",
"show-blog": "显示博客",
"default-home-page": "默认首页",
"version": "版本",
"there-are-no-drafts": "沒有草稿",
"create-a-new-article-for-your-blog":"为您的网站建立一篇新文章",
"create-a-new-page-for-your-website":"为您的网站建立一个新页面",
"invite-a-friend-to-collaborate-on-your-website":"邀请朋友合作开发网站",
"change-your-language-and-region-settings":"更改您所使用的语言与地区设定",
"language-and-timezone":"语言与时区",
"author": "作者",
"start-here": "从这里开始",
"install-theme": "安装主题",
"first-post": "第一篇文章",
"congratulations-you-have-successfully-installed-your-bludit": "恭喜您已经成功安裝您的**Bludit**",
"whats-next": "接下來",
"manage-your-bludit-from-the-admin-panel": "通过[admin area](./admin/)管理您的Bludit",
"follow-bludit-on": "Follow Bludit on",
"visit-the-support-forum": "访问[forum](https://forum.bludit.com)來取得支持",
"read-the-documentation-for-more-information": "阅读[documentation](https://docs.bludit.com)來获得更多资讯",
"share-with-your-friends-and-enjoy": "分享给您的朋友们",
"the-page-has-not-been-found": "此页面不存在",
"error": "错误",
"bludit-installer": "Bludit 安裝程式",
"welcome-to-the-bludit-installer": "欢迎使用Bludit安裝程序",
"complete-the-form-choose-a-password-for-the-username-admin": "请完成表单,为此用户名称 « admin » 设置一下密码吧",
"password-visible-field": "密码可见字段",
"install": "安装",
"choose-your-language": "选择您所使用的语言",
"next": "下一步",
"the-password-field-is-empty": "密码字段是空白的",
"your-email-address-is-invalid":"您所输入的email是无效的",
"proceed-anyway": "继续!",
"drafts":"草稿",
"ip-address-has-been-blocked": "IP 地址已被封锁",
"try-again-in-a-few-minutes": "请过几分钟后再试",
"date": "日期",
"you-can-schedule-the-post-just-select-the-date-and-time": "您只需要选择一个日期与时间就可以预定什么時候再发表此文章",
"scheduled": "已安排",
"publish": "发表",
"please-check-your-theme-configuration": "请检查您的主題设定",
"plugin-label": "插件标签",
"enabled": "启用",
"disabled": "禁止",
"cli-mode": "Cli模式",
"command-line-mode": "命令行模式",
"enable-the-command-line-mode-if-you-add-edit": "启用命令行模式,如果您需要完成新增或者编辑工作。",
"configure": "设定",
"uninstall": "移除",
"change-password": "更改密码",
"to-schedule-the-post-just-select-the-date-and-time": "选择日期与时间预定发布此文章",
"write-the-tags-separated-by-commas": "使用逗号分隔标签",
"status": "状态",
"published": "已发表",
"scheduled-posts": "预定文章",
"statistics": "统计",
"name": "名称",
"email-account-settings":"Email账户设定",
"sender-email": "发送者email",
"emails-will-be-sent-from-this-address":"Emails將会被从此地址发送",
"bludit-login-access-code": "BLUDIT - 登入存取码",
"check-your-inbox-for-your-login-access-code":"检查您的收件夹是否有收到登入存取码",
"there-was-a-problem-sending-the-email":"发送email时发生问题",
"back-to-login-form": "返回登入页面",
"send-me-a-login-access-code": "发送一组入存取码给我",
"get-login-access-code": "获得登入存取码",
"email-notification-login-access-code": "<p>有一则通知从您的博客{{WEBSITE_NAME}}发出</p><p>您有要求一组登入存取码,请按下此链接取得:</p><p>{{LINK}}</p>",
"there-are-no-scheduled-posts": "沒有预定发表的文章",
"show-password": "显示密码",
"edit-or-remove-your=pages": "编辑或移除您的页面",
"edit-or-remove-your-blogs-posts": "编辑或移除您的博客文章",
"general-settings": "一般设定",
"advanced-settings": "高级设定",
"manage-users": "管理者",
"view-and-edit-your-profile": "查看与编辑您的个人资料",
"password-must-be-at-least-6-characters-long": "密吗长度必须在6个字节以上",
"images": "图片",
"upload-image": "上传图片",
"drag-and-drop-or-click-here": "拖曳您的图片到这里或是点选这里选择图片",
"insert-image": "插入图片",
"supported-image-file-types": "可以上传的文件格式",
"date-format": "日期格式",
"time-format": "时间格式",
"chat-with-developers-and-users-on-gitter":"与开发者或者用户聊聊~ [Gitter](https://gitter.im/dignajar/bludit)",
"this-is-a-brief-description-of-yourself-our-your-site":"這这是关于您自己或是网站的简短介绍,如果想要修改,请至管理界面/设置/插件,设置一个名为“关于”的插件",
"profile-picture": "大头帖",
"the-about-page-is-very-important": "此关于页面对于用户与合作伙伴非常重要和有用的工具。对于那些不了解您网站內容的人,您的关于页面将会是他们第一个阅读的页面。",
"change-this-pages-content-on-the-admin-panel": "在管理界面中更改此页面的內容,管理/页面,接着点选关于页面。",
"about-your-site-or-yourself": "关于您的网站或是您自己",
"welcome-to-bludit": "欢迎使用Bludit",
"you-can-use-this-field-to-define-a-set-off": "使用此字段定义默认语言代码",
"More images": "更多的图片",
"Cover image": "封面图片",
"site-information": "网站资讯",
"date-and-time-formats": "日期与时间格式",
"activate": "启用",
"deactivate": "关闭"
}

View File

@ -2,9 +2,9 @@
"author": "Bludit", "author": "Bludit",
"email": "", "email": "",
"website": "https://plugins.bludit.com", "website": "https://plugins.bludit.com",
"version": "1.4", "version": "1.3",
"releaseDate": "2016-05-28", "releaseDate": "2016-05-28",
"license": "MIT", "license": "MIT",
"compatible": "1.5beta", "compatible": "1.4",
"notes": "" "notes": ""
} }

View File

@ -18,7 +18,6 @@ class pluginAbout extends Plugin {
$html .= '<label>'.$Language->get('Plugin label').'</label>'; $html .= '<label>'.$Language->get('Plugin label').'</label>';
$html .= '<input name="label" id="jslabel" type="text" value="'.$this->getDbField('label').'">'; $html .= '<input name="label" id="jslabel" type="text" value="'.$this->getDbField('label').'">';
$html .= '</div>'; $html .= '</div>';
$html .= '<div>'; $html .= '<div>';
$html .= '<label>'.$Language->get('About').'</label>'; $html .= '<label>'.$Language->get('About').'</label>';
$html .= '<textarea name="text" id="jstext">'.$this->getDbField('text').'</textarea>'; $html .= '<textarea name="text" id="jstext">'.$this->getDbField('text').'</textarea>';
@ -32,7 +31,7 @@ class pluginAbout extends Plugin {
$html = '<div class="plugin plugin-about">'; $html = '<div class="plugin plugin-about">';
$html .= '<h2>'.$this->getDbField('label').'</h2>'; $html .= '<h2>'.$this->getDbField('label').'</h2>';
$html .= '<div class="plugin-content">'; $html .= '<div class="plugin-content">';
$html .= nl2br($this->getDbField('text')); $html .= html_entity_decode(nl2br($this->getDbField('text')));
$html .= '</div>'; $html .= '</div>';
$html .= '</div>'; $html .= '</div>';

View File

@ -1,10 +1,10 @@
{ {
"plugin-data": "plugin-data":
{ {
"name": "Страници списък", "name": "Страници",
"description": "Показва списък на страниците." "description": "Показва списък на страниците."
}, },
"home": "Начало", "home": "Начало",
"show-home-link": "Покажи връзката към начало" "show-home-link": "Покажи връзка към начало"
} }

View File

@ -43,7 +43,7 @@ class pluginPages extends Plugin {
} }
$html .= '<div class="plugin-content">'; $html .= '<div class="plugin-content">';
$html .= '<ul>'; $html .= '<ul class="parents">';
// Show home link ? // Show home link ?
if($this->getDbField('homeLink')) { if($this->getDbField('homeLink')) {
@ -59,8 +59,8 @@ class pluginPages extends Plugin {
if( $parent->published() ) if( $parent->published() )
{ {
// Print the parent // Print the parent
$html .= '<li>'; $html .= '<li class="parent">';
$html .= '<a class="parent '.( ($parent->key()==$Url->slug())?' active':'').'" href="'.$parent->permalink().'">'.$parent->title().'</a>'; $html .= '<a class="parent'.( ($parent->key()==$Url->slug())?' active':'').'" href="'.$parent->permalink().'">'.$parent->title().'</a>';
// Check if the parent has children // Check if the parent has children
if(isset($pagesParents[$parent->key()])) if(isset($pagesParents[$parent->key()]))

View File

@ -0,0 +1,186 @@
body {
padding-top: 0;
background: #F7F7F7;
}
a {
border: none;
}
a:hover {
border-bottom: 1px dotted rgba(160, 160, 160, 0.65)
}
h1, h2, h3, h4, h5, h6 {
text-transform: none;
letter-spacing: 0;
font-weight: normal;
margin-bottom: 0.8em;
}
h1 {
font-size: 1.5em;
}
h2 {
font-size: 1.4em;
}
h3 {
font-size: 1.3em;
}
h4 {
font-size: 1.2em;
}
h5 {
font-size: 1.1em;
}
h6 {
font-size: 1em;
}
p {
margin-bottom: 1.3em;
}
code {
border: 0;
color: #333;
margin: 0;
font-weight: bold;
}
pre code {
border: 1px solid #ffcb94;
font-weight: normal !important;
overflow-x: auto;
}
#main {
max-width: 980px;
}
#header {
background-color: #f7f7f7;
border-bottom: 0;
}
#header h1 {
font-size: 1.4em;
font-weight: lighter;
}
#header .links {
border-left: 0;
}
#header .main ul li {
border-left: 0;
}
#header .main ul li > a {
color: #2672ec;
}
header p {
text-transform: none;
letter-spacing: 0;
font-size: 0.9em;
}
#menu .links > li a h3 {
font-size: 1em;
margin-bottom: 0;
}
#intro header h2 {
font-weight: lighter;
margin-bottom: 0;
}
#intro header p {
font-size: 1em;
}
.post {
border: 0;
}
.post a {
color: #2672ec;
}
.post > header {
border-bottom-color: #F7F7F7;
margin-bottom: 1.3em;
}
.post > header .meta {
padding: 0.5em 3em 0.3em;
border-left: 0;
}
.post > header .title {
padding: 0.5em 3em 0.3em;
}
.post > header .title h1 {
font-size: 2em;
font-weight: normal;
margin-bottom: 5px;
}
.post > header .title h1 a {
color: #3c3b3b;
}
.post > footer .stats {
margin: 0;
}
.post > footer .actions {
margin: 0;
}
blockquote p {
margin: 10px 0;
}
.author .name {
letter-spacing: 0.05em;
}
#sidebar {
margin-top: 2.2em;
min-width: 0;
}
.plugin > h2 {
font-weight: normal !important;
text-transform: uppercase;
}
.plugin ul {
list-style: none !important;
padding: 0 !important;
}
.plugin li {
padding: 0 !important;
}
.plugin-pages ul.children {
margin: 0 0 0 10px;
}
.plugin-pages li.parent {
margin: 15px 0;
}
/* Only for Plugin tags */
.plugin-tags li {
text-transform: capitalize;
}

View File

@ -0,0 +1,72 @@
/*
Future Imperfect by HTML5 UP
html5up.net | @n33co
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
/* Button */
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
border: solid 1px #dedede;
}
/* Form */
input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
select,
textarea {
border: solid 1px #dedede;
}
/* Post */
.post {
border: solid 1px #dedede;
}
.post > header {
border-bottom: solid 1px #dedede;
}
/* Mini Post */
.mini-post {
border: solid 1px #dedede;
}
/* Header */
#header {
border-bottom: solid 1px #dedede;
}
#header .links {
border-left: solid 1px #dedede;
}
#header .main ul li {
border-left: solid 1px #dedede;
}
/* Sidebar */
#sidebar > * {
border-top: solid 1px #dedede;
}
/* Menu */
#menu {
border-left: solid 1px #dedede;
}
#menu > * {
border-top: solid 1px #dedede;
}

View File

@ -0,0 +1,123 @@
/*
Future Imperfect by HTML5 UP
html5up.net | @n33co
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
/* List */
ul.posts article:after {
clear: both;
content: '';
display: block;
}
ul.posts article .image {
display: table-cell;
vertical-align: top;
}
ul.posts article header {
display: table-cell;
padding-right: 1em;
vertical-align: top;
}
/* Author */
.author .name {
display: inline-block;
vertical-align: middle;
}
.author img {
display: inline-block;
vertical-align: middle;
}
/* Post */
.post:after {
clear: both;
content: '';
display: block;
}
.post > header:after {
clear: both;
content: '';
display: block;
}
.post > header .title {
display: table-cell;
vertical-align: top;
width: 65%;
}
.post > header .meta {
display: table-cell;
vertical-align: top;
width: 30%;
}
.post > footer:after {
clear: both;
content: '';
display: block;
}
.post > footer .actions {
display: inline-block;
}
.post > footer .stats {
display: inline-block;
margin-left: 2em;
}
/* Mini Post */
.mini-post .image {
display: block;
}
/* Header */
#header:after {
clear: both;
content: '';
display: block;
}
#header h1 {
float: left;
}
#header .links {
float: left;
}
#header .main {
position: absolute;
right: 0;
top: 0;
}
/* Wrapper */
/* Sidebar */
#sidebar {
display: table-cell;
margin-right: 0;
padding-right: 3em;
vertical-align: top;
}
/* Main */
#main {
display: table-cell;
vertical-align: top;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
/*
HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);

View File

@ -0,0 +1,6 @@
/*! Respond.js v1.4.2: min/max-width media query polyfill
* Copyright 2014 Scott Jehl
* Licensed under MIT
* http://j.mp/respondjs */
!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='&shy;<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){v(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},g=function(a){return a.replace(c.regex.minmaxwh,"").match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName("head")[0]||l,s=k.getElementsByTagName("base")[0],t=r.getElementsByTagName("link"),u=function(){var a,b=k.createElement("div"),c=k.body,d=l.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=k.createElement("body"),c.style.background="none"),l.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&&(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c="clientWidth",d=l[c],e="CSS1Compat"===k.compatMode&&d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&&h&&q>p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?j||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?j||u():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&&o[C]&&o[C].parentNode===r&&r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,"").replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},i=!f&&d;b.length&&(b+="/"),i&&(f=1);for(var j=0;f>j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&&RegExp.$1,n.push(RegExp.$2&&h(RegExp.$2))),o=k.split(","),p=o.length;for(var q=0;p>q;q++)l=o[q],g(l)||m.push({media:l.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:n.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;b<t.length;b++){var c=t[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!p[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(w(c.styleSheet.rawCssText,e,f),p[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!s||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}x()};y(),c.update=y,c.getEmValue=u,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);

View File

@ -0,0 +1,115 @@
/*
Future Imperfect by HTML5 UP
html5up.net | @n33co
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
(function($) {
skel.breakpoints({
xlarge: '(max-width: 1680px)',
large: '(max-width: 1280px)',
medium: '(max-width: 980px)',
small: '(max-width: 736px)',
xsmall: '(max-width: 480px)'
});
$(function() {
var $window = $(window),
$body = $('body'),
$menu = $('#menu'),
$sidebar = $('#sidebar'),
$main = $('#main');
// Disable animations/transitions until the page has loaded.
$body.addClass('is-loading');
$window.on('load', function() {
window.setTimeout(function() {
$body.removeClass('is-loading');
}, 100);
});
// Fix: Placeholder polyfill.
$('form').placeholder();
// Prioritize "important" elements on medium.
skel.on('+medium -medium', function() {
$.prioritize(
'.important\\28 medium\\29',
skel.breakpoint('medium').active
);
});
// IE<=9: Reverse order of main and sidebar.
if (skel.vars.IEVersion <= 9)
$main.insertAfter($sidebar);
// Menu.
$menu
.appendTo($body)
.panel({
delay: 500,
hideOnClick: true,
hideOnSwipe: true,
resetScroll: true,
resetForms: true,
side: 'right',
target: $body,
visibleClass: 'is-menu-visible'
});
// Search (header).
var $search = $('#search'),
$search_input = $search.find('input');
$body
.on('click', '[href="#search"]', function(event) {
event.preventDefault();
// Not visible?
if (!$search.hasClass('visible')) {
// Reset form.
$search[0].reset();
// Show.
$search.addClass('visible');
// Focus input.
$search_input.focus();
}
});
$search_input
.on('keydown', function(event) {
if (event.keyCode == 27)
$search_input.blur();
})
.on('blur', function() {
window.setTimeout(function() {
$search.removeClass('visible');
}, 100);
});
// Intro.
var $intro = $('#intro');
// Move to main on <=large, back to sidebar on >large.
skel
.on('+large', function() {
$intro.prependTo($main);
})
.on('-large', function() {
$intro.prependTo($sidebar);
});
});
})(jQuery);

2
bl-themes/diego/assets/js/skel.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,587 @@
(function($) {
/**
* Generate an indented list of links from a nav. Meant for use with panel().
* @return {jQuery} jQuery object.
*/
$.fn.navList = function() {
var $this = $(this);
$a = $this.find('a'),
b = [];
$a.each(function() {
var $this = $(this),
indent = Math.max(0, $this.parents('li').length - 1),
href = $this.attr('href'),
target = $this.attr('target');
b.push(
'<a ' +
'class="link depth-' + indent + '"' +
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
'>' +
'<span class="indent-' + indent + '"></span>' +
$this.text() +
'</a>'
);
});
return b.join('');
};
/**
* Panel-ify an element.
* @param {object} userConfig User config.
* @return {jQuery} jQuery object.
*/
$.fn.panel = function(userConfig) {
// No elements?
if (this.length == 0)
return $this;
// Multiple elements?
if (this.length > 1) {
for (var i=0; i < this.length; i++)
$(this[i]).panel(userConfig);
return $this;
}
// Vars.
var $this = $(this),
$body = $('body'),
$window = $(window),
id = $this.attr('id'),
config;
// Config.
config = $.extend({
// Delay.
delay: 0,
// Hide panel on link click.
hideOnClick: false,
// Hide panel on escape keypress.
hideOnEscape: false,
// Hide panel on swipe.
hideOnSwipe: false,
// Reset scroll position on hide.
resetScroll: false,
// Reset forms on hide.
resetForms: false,
// Side of viewport the panel will appear.
side: null,
// Target element for "class".
target: $this,
// Class to toggle.
visibleClass: 'visible'
}, userConfig);
// Expand "target" if it's not a jQuery object already.
if (typeof config.target != 'jQuery')
config.target = $(config.target);
// Panel.
// Methods.
$this._hide = function(event) {
// Already hidden? Bail.
if (!config.target.hasClass(config.visibleClass))
return;
// If an event was provided, cancel it.
if (event) {
event.preventDefault();
event.stopPropagation();
}
// Hide.
config.target.removeClass(config.visibleClass);
// Post-hide stuff.
window.setTimeout(function() {
// Reset scroll position.
if (config.resetScroll)
$this.scrollTop(0);
// Reset forms.
if (config.resetForms)
$this.find('form').each(function() {
this.reset();
});
}, config.delay);
};
// Vendor fixes.
$this
.css('-ms-overflow-style', '-ms-autohiding-scrollbar')
.css('-webkit-overflow-scrolling', 'touch');
// Hide on click.
if (config.hideOnClick) {
$this.find('a')
.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
$this
.on('click', 'a', function(event) {
var $a = $(this),
href = $a.attr('href'),
target = $a.attr('target');
if (!href || href == '#' || href == '' || href == '#' + id)
return;
// Cancel original event.
event.preventDefault();
event.stopPropagation();
// Hide panel.
$this._hide();
// Redirect to href.
window.setTimeout(function() {
if (target == '_blank')
window.open(href);
else
window.location.href = href;
}, config.delay + 10);
});
}
// Event: Touch stuff.
$this.on('touchstart', function(event) {
$this.touchPosX = event.originalEvent.touches[0].pageX;
$this.touchPosY = event.originalEvent.touches[0].pageY;
})
$this.on('touchmove', function(event) {
if ($this.touchPosX === null
|| $this.touchPosY === null)
return;
var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
th = $this.outerHeight(),
ts = ($this.get(0).scrollHeight - $this.scrollTop());
// Hide on swipe?
if (config.hideOnSwipe) {
var result = false,
boundary = 20,
delta = 50;
switch (config.side) {
case 'left':
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta);
break;
case 'right':
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta));
break;
case 'top':
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta);
break;
case 'bottom':
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta));
break;
default:
break;
}
if (result) {
$this.touchPosX = null;
$this.touchPosY = null;
$this._hide();
return false;
}
}
// Prevent vertical scrolling past the top or bottom.
if (($this.scrollTop() < 0 && diffY < 0)
|| (ts > (th - 2) && ts < (th + 2) && diffY > 0)) {
event.preventDefault();
event.stopPropagation();
}
});
// Event: Prevent certain events inside the panel from bubbling.
$this.on('click touchend touchstart touchmove', function(event) {
event.stopPropagation();
});
// Event: Hide panel if a child anchor tag pointing to its ID is clicked.
$this.on('click', 'a[href="#' + id + '"]', function(event) {
event.preventDefault();
event.stopPropagation();
config.target.removeClass(config.visibleClass);
});
// Body.
// Event: Hide panel on body click/tap.
$body.on('click touchend', function(event) {
$this._hide(event);
});
// Event: Toggle.
$body.on('click', 'a[href="#' + id + '"]', function(event) {
event.preventDefault();
event.stopPropagation();
config.target.toggleClass(config.visibleClass);
});
// Window.
// Event: Hide on ESC.
if (config.hideOnEscape)
$window.on('keydown', function(event) {
if (event.keyCode == 27)
$this._hide(event);
});
return $this;
};
/**
* Apply "placeholder" attribute polyfill to one or more forms.
* @return {jQuery} jQuery object.
*/
$.fn.placeholder = function() {
// Browser natively supports placeholders? Bail.
if (typeof (document.createElement('input')).placeholder != 'undefined')
return $(this);
// No elements?
if (this.length == 0)
return $this;
// Multiple elements?
if (this.length > 1) {
for (var i=0; i < this.length; i++)
$(this[i]).placeholder();
return $this;
}
// Vars.
var $this = $(this);
// Text, TextArea.
$this.find('input[type=text],textarea')
.each(function() {
var i = $(this);
if (i.val() == ''
|| i.val() == i.attr('placeholder'))
i
.addClass('polyfill-placeholder')
.val(i.attr('placeholder'));
})
.on('blur', function() {
var i = $(this);
if (i.attr('name').match(/-polyfill-field$/))
return;
if (i.val() == '')
i
.addClass('polyfill-placeholder')
.val(i.attr('placeholder'));
})
.on('focus', function() {
var i = $(this);
if (i.attr('name').match(/-polyfill-field$/))
return;
if (i.val() == i.attr('placeholder'))
i
.removeClass('polyfill-placeholder')
.val('');
});
// Password.
$this.find('input[type=password]')
.each(function() {
var i = $(this);
var x = $(
$('<div>')
.append(i.clone())
.remove()
.html()
.replace(/type="password"/i, 'type="text"')
.replace(/type=password/i, 'type=text')
);
if (i.attr('id') != '')
x.attr('id', i.attr('id') + '-polyfill-field');
if (i.attr('name') != '')
x.attr('name', i.attr('name') + '-polyfill-field');
x.addClass('polyfill-placeholder')
.val(x.attr('placeholder')).insertAfter(i);
if (i.val() == '')
i.hide();
else
x.hide();
i
.on('blur', function(event) {
event.preventDefault();
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
if (i.val() == '') {
i.hide();
x.show();
}
});
x
.on('focus', function(event) {
event.preventDefault();
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
x.hide();
i
.show()
.focus();
})
.on('keypress', function(event) {
event.preventDefault();
x.val('');
});
});
// Events.
$this
.on('submit', function() {
$this.find('input[type=text],input[type=password],textarea')
.each(function(event) {
var i = $(this);
if (i.attr('name').match(/-polyfill-field$/))
i.attr('name', '');
if (i.val() == i.attr('placeholder')) {
i.removeClass('polyfill-placeholder');
i.val('');
}
});
})
.on('reset', function(event) {
event.preventDefault();
$this.find('select')
.val($('option:first').val());
$this.find('input,textarea')
.each(function() {
var i = $(this),
x;
i.removeClass('polyfill-placeholder');
switch (this.type) {
case 'submit':
case 'reset':
break;
case 'password':
i.val(i.attr('defaultValue'));
x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
if (i.val() == '') {
i.hide();
x.show();
}
else {
i.show();
x.hide();
}
break;
case 'checkbox':
case 'radio':
i.attr('checked', i.attr('defaultValue'));
break;
case 'text':
case 'textarea':
i.val(i.attr('defaultValue'));
if (i.val() == '') {
i.addClass('polyfill-placeholder');
i.val(i.attr('placeholder'));
}
break;
default:
i.val(i.attr('defaultValue'));
break;
}
});
});
return $this;
};
/**
* Moves elements to/from the first positions of their respective parents.
* @param {jQuery} $elements Elements (or selector) to move.
* @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
*/
$.prioritize = function($elements, condition) {
var key = '__prioritize';
// Expand $elements if it's not already a jQuery object.
if (typeof $elements != 'jQuery')
$elements = $($elements);
// Step through elements.
$elements.each(function() {
var $e = $(this), $p,
$parent = $e.parent();
// No parent? Bail.
if ($parent.length == 0)
return;
// Not moved? Move it.
if (!$e.data(key)) {
// Condition is false? Bail.
if (!condition)
return;
// Get placeholder (which will serve as our point of reference for when this element needs to move back).
$p = $e.prev();
// Couldn't find anything? Means this element's already at the top, so bail.
if ($p.length == 0)
return;
// Move element to top of parent.
$e.prependTo($parent);
// Mark element as moved.
$e.data(key, $p);
}
// Moved already?
else {
// Condition is true? Bail.
if (condition)
return;
$p = $e.data(key);
// Move element back to its original location (using our placeholder).
$e.insertAfter($p);
// Unmark element as moved.
$e.removeData(key);
}
});
};
})(jQuery);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

47
bl-themes/diego/index.php Normal file
View File

@ -0,0 +1,47 @@
<!DOCTYPE HTML>
<html>
<head>
<!-- Include HTML meta tags -->
<?php include(THEME_DIR_PHP.'head.php') ?>
</head>
<body>
<div id="wrapper">
<div id="main">
<?php
if( ($Url->whereAmI()=='home') || ($Url->whereAmI()=='tag') || ($Url->whereAmI()=='blog') )
{
include(THEME_DIR_PHP.'home.php');
}
elseif($Url->whereAmI()=='post')
{
include(THEME_DIR_PHP.'post.php');
}
elseif($Url->whereAmI()=='page')
{
include(THEME_DIR_PHP.'page.php');
}
?>
</div>
<!-- Sidebar -->
<section id="sidebar">
<?php include(THEME_DIR_PHP.'sidebar.php') ?>
</section>
</div>
<!-- Scripts -->
<?php Theme::jquery() ?>
<script src="<?php echo HTML_PATH_THEME ?>assets/js/skel.min.js"></script>
<script src="<?php echo HTML_PATH_THEME ?>assets/js/util.js"></script>
<!--[if lte IE 8]><script src="<?php echo HTML_PATH_THEME ?>assets/js/ie/respond.min.js"></script><![endif]-->
<script src="<?php echo HTML_PATH_THEME ?>assets/js/main.js"></script>
<!-- Plugins Site Body End -->
<?php Theme::plugins('siteBodyEnd') ?>
</body>
</html>

View File

@ -0,0 +1,7 @@
{
"theme-data":
{
"name": "diego",
"description": "Minimalist and very responsive theme, developed by @n33co, adapted and modified for Bludit."
}
}

View File

@ -0,0 +1,7 @@
{
"theme-data":
{
"name": "Log",
"description": "Minimalista y a su vez altamente adaptable para todo tipo de pantallas, desarrollado por @n33co, adaptado y modificado para Bludit."
}
}

View File

@ -0,0 +1,10 @@
{
"author": "n33co",
"email": "",
"website": "http://html5up.net",
"version": "1.4",
"releaseDate": "2016-05-20",
"license": "CCA 3.0",
"compatible": "1.4",
"notes": ""
}

View File

@ -0,0 +1,29 @@
<?php
Theme::charset('utf-8');
Theme::viewport('width=device-width, initial-scale=1');
Theme::title();
Theme::description();
Theme::favicon('favicon.png');
?>
<!--[if lte IE 8]><script src="<?php echo HTML_PATH_THEME ?>assets/js/ie/html5shiv.js"></script><![endif]-->
<link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/main.css">
<!--[if lte IE 9]><link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/ie9.css" /><![endif]-->
<!--[if lte IE 8]><link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/ie8.css" /><![endif]-->
<link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/bludit.css">
<?php
// Add local Fonts Awesome
Theme::fontAwesome();
// Load plugins, hook: Site head
Theme::plugins('siteHead');
?>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

View File

@ -0,0 +1,83 @@
<!-- Show each post on this page -->
<?php foreach ($posts as $Post): ?>
<article class="post">
<!-- Show plugins, Hook: Post Begin -->
<?php Theme::plugins('postBegin') ?>
<!-- Post's header -->
<header>
<div class="title">
<h1><a href="<?php echo $Post->permalink() ?>"><?php echo $Post->title() ?></a></h1>
<p><?php echo $Post->description() ?></p>
</div>
<div class="meta">
<?php
// Get the user who created the post.
$User = $Post->user();
// Default author is the username.
$author = $User->username();
// If the user complete the first name or last name this will be the author.
if( Text::isNotEmpty($User->firstName()) || Text::isNotEmpty($User->lastName()) ) {
$author = $User->firstName().' '.$User->lastName();
}
?>
<time class="published" datetime="2015-11-01"><?php echo $Post->date() ?></time>
<div class="author"><span class="name"><?php echo $author ?></span><img src="<?php echo $User->profilePicture() ?>" alt=""></div>
</div>
</header>
<!-- Cover Image -->
<?php
if($Post->coverImage()) {
echo '<a href="'.$Post->permalink().'" class="image featured"><img src="'.$Post->coverImage().'" alt="Cover Image"></a>';
}
?>
<!-- Post's content, the first part if has pagebrake -->
<?php echo $Post->content(false) ?>
<!-- Post's footer -->
<footer>
<!-- Read more button -->
<?php if($Post->readMore()) { ?>
<ul class="actions">
<li><a href="<?php echo $Post->permalink() ?>" class="button"><?php $Language->p('Read more') ?></a></li>
</ul>
<?php } ?>
<!-- Post's tags -->
<ul class="stats">
<?php
$tags = $Post->tags(true);
foreach($tags as $tagKey=>$tagName) {
echo '<li><a href="'.HTML_PATH_ROOT.$Url->filters('tag').'/'.$tagKey.'">'.$tagName.'</a></li>';
}
?>
</ul>
</footer>
<!-- Plugins Post End -->
<?php Theme::plugins('postEnd') ?>
</article>
<?php endforeach; ?>
<!-- Pagination -->
<ul class="actions pagination">
<?php
if( Paginator::get('showNewer') ) {
echo '<li><a href="'.Paginator::urlPrevPage().'" class="button big previous">'.$Language->get('Prev page').'</a></li>';
}
if( Paginator::get('showOlder') ) {
echo '<li><a href="'.Paginator::urlNextPage().'" class="button big next">'.$Language->get('Next page').'</a></li>';
}
?>
</ul>

View File

@ -0,0 +1,27 @@
<article class="post">
<!-- Plugins Page Begin -->
<?php Theme::plugins('pageBegin') ?>
<!-- Post's header -->
<header>
<div class="title">
<h1><a href="<?php echo $Page->permalink() ?>"><?php echo $Page->title() ?></a></h1>
<p><?php echo $Page->description() ?></p>
</div>
</header>
<!-- Cover Image -->
<?php
if($Page->coverImage()) {
echo '<a href="'.$Page->permalink().'" class="image featured"><img src="'.$Page->coverImage().'" alt="Cover Image"></a>';
}
?>
<!-- Post's content, the first part if has pagebrake -->
<?php echo $Page->content() ?>
<!-- Plugins Page End -->
<?php Theme::plugins('pageEnd') ?>
</article>

View File

@ -0,0 +1,57 @@
<article class="post">
<!-- Show plugins, Hook: Post Begin -->
<?php Theme::plugins('postBegin') ?>
<!-- Post's header -->
<header>
<div class="title">
<h1><a href="<?php echo $Post->permalink() ?>"><?php echo $Post->title() ?></a></h1>
</div>
<div class="meta">
<?php
// Get the user who created the post.
$User = $Post->user();
// Default author is the username.
$author = $User->username();
// If the user complete the first name or last name this will be the author.
if( Text::isNotEmpty($User->firstName()) || Text::isNotEmpty($User->lastName()) ) {
$author = $User->firstName().' '.$User->lastName();
}
?>
<time class="published" datetime="2015-11-01"><?php echo $Post->date() ?></time>
<div class="author"><span class="name"><?php echo $author ?></span><img src="<?php echo $User->profilePicture() ?>" alt=""></div>
</div>
</header>
<!-- Cover Image -->
<?php
if($Post->coverImage()) {
echo '<a href="'.$Post->permalink().'" class="image featured"><img src="'.$Post->coverImage().'" alt="Cover Image"></a>';
}
?>
<!-- Post's content, the first part if has pagebrake -->
<?php echo $Post->content() ?>
<!-- Post's footer -->
<footer>
<!-- Post's tags -->
<ul class="stats">
<?php
$tags = $Post->tags(true);
foreach($tags as $tagKey=>$tagName) {
echo '<li><a href="'.HTML_PATH_ROOT.$Url->filters('tag').'/'.$tagKey.'">'.$tagName.'</a></li>';
}
?>
</ul>
</footer>
<!-- Show plugins, Hook: Post End -->
<?php Theme::plugins('postEnd') ?>
</article>

View File

@ -0,0 +1,41 @@
<!-- Intro -->
<section id="intro">
<header>
<h2><a href="<?php echo $Site->url() ?>"><?php echo $Site->title() ?></a></h2>
<p><?php echo $Site->slogan() ?></p>
</header>
</section>
<?php Theme::plugins('siteSidebar') ?>
<!-- Footer -->
<section id="footer">
<ul class="icons">
<?php
if($Site->twitter()) {
echo '<li><a href="'.$Site->twitter().'" class="fa-twitter"><span class="label">Twitter</span></a></li>';
}
if($Site->facebook()) {
echo '<li><a href="'.$Site->facebook().'" class="fa-facebook"><span class="label">Facebook</span></a></li>';
}
if($Site->instagram()) {
echo '<li><a href="'.$Site->instagram().'" class="fa-instagram"><span class="label">Instagram</span></a></li>';
}
if($Site->github()) {
echo '<li><a href="'.$Site->github().'" class="fa-github"><span class="label">Github</span></a></li>';
}
if( $plugins['all']['pluginRSS']->installed() ) {
echo '<li><a href="'.DOMAIN_BASE.'rss.xml'.'" class="fa-rss"><span class="label">RSS</span></a></li>';
}
if( $plugins['all']['pluginSitemap']->installed() ) {
echo '<li><a href="'.DOMAIN_BASE.'sitemap.xml'.'" class="fa-sitemap"><span class="label">Sitemap</span></a></li>';
}
?>
</ul>
<p class="copyright"><?php echo $Site->footer() ?> | <a href="http://www.bludit.com">BLUDIT</a></p>
</section>

View File

@ -180,3 +180,10 @@ blockquote p {
.plugin-tags li { .plugin-tags li {
text-transform: capitalize; text-transform: capitalize;
} }
/* Responsive images */
img {
max-width: 100%;
height: auto;
}

View File

@ -70,3 +70,12 @@
#menu > * { #menu > * {
border-top: solid 1px #dedede; border-top: solid 1px #dedede;
} }
/* Responsive images */
@media \0screen {
img {
width: auto; /* for ie 8 */
}
}

View File

@ -92,17 +92,11 @@ define('DB_DATE_FORMAT', 'Y-m-d H:i:s');
// Charset, default UTF-8. // Charset, default UTF-8.
define('CHARSET', 'UTF-8'); define('CHARSET', 'UTF-8');
// Multibyte string extension loaded. // Set internal character encoding.
define('MB_STRING', extension_loaded('mbstring')); mb_internal_encoding(CHARSET);
if(MB_STRING) // Set HTTP output character encoding.
{ mb_http_output(CHARSET);
// Set internal character encoding.
mb_internal_encoding(CHARSET);
// Set HTTP output character encoding.
mb_http_output(CHARSET);
}
// --- PHP Classes --- // --- PHP Classes ---
@ -196,12 +190,29 @@ function checkSystem()
$phpModules = get_loaded_extensions(); $phpModules = get_loaded_extensions();
} }
if(!file_exists(PATH_ROOT.'.htaccess')) // Check .htaccess file for different webservers
if( !file_exists(PATH_ROOT.'.htaccess') ) {
if ( !isset($_SERVER['SERVER_SOFTWARE']) ||
stripos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false ||
stripos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false
) {
$errorText = 'Missing file, upload the file .htaccess (ERR_201)';
error_log($errorText, 0);
$tmp['title'] = 'File .htaccess';
$tmp['errorText'] = $errorText;
array_push($stdOut, $tmp);
}
}
if(!in_array('gd', $phpModules))
{ {
$errorText = 'Missing file, upload the file .htaccess (ERR_201)'; $errorText = 'PHP module GD is not installed.';
error_log($errorText, 0); error_log($errorText, 0);
$tmp['title'] = 'File .htaccess'; $tmp['title'] = 'PHP module';
$tmp['errorText'] = $errorText; $tmp['errorText'] = $errorText;
array_push($stdOut, $tmp); array_push($stdOut, $tmp);
} }
@ -226,6 +237,16 @@ function checkSystem()
array_push($stdOut, $tmp); array_push($stdOut, $tmp);
} }
if(!in_array('mbstring', $phpModules))
{
$errorText = 'PHP module Multibyte String (mbstring) is not installed. (ERR_206)';
error_log($errorText, 0);
$tmp['title'] = 'PHP module';
$tmp['errorText'] = $errorText;
array_push($stdOut, $tmp);
}
// Try to create the directory content // Try to create the directory content
@mkdir(PATH_CONTENT, $dirpermissions, true); @mkdir(PATH_CONTENT, $dirpermissions, true);