commit
1052accf1d
|
@ -18,30 +18,44 @@ function addUser($args)
|
||||||
global $dbUsers;
|
global $dbUsers;
|
||||||
global $Language;
|
global $Language;
|
||||||
|
|
||||||
// Check if the username already exist in db.
|
// Check empty username
|
||||||
if( Text::isEmpty($args['username']) )
|
if( Text::isEmpty($args['new_username']) )
|
||||||
{
|
{
|
||||||
Alert::set($Language->g('username-field-is-empty'));
|
Alert::set($Language->g('username-field-is-empty'), ALERT_STATUS_FAIL);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( $dbUsers->userExists($args['username']) )
|
// Check already exist username
|
||||||
|
if( $dbUsers->userExists($args['new_username']) )
|
||||||
{
|
{
|
||||||
Alert::set($Language->g('username-already-exists'));
|
Alert::set($Language->g('username-already-exists'), ALERT_STATUS_FAIL);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate password.
|
// Password length
|
||||||
if( ($args['password'] != $args['confirm-password'] ) || Text::isEmpty($args['password']) )
|
if( strlen($args['new_password']) < 6 )
|
||||||
{
|
{
|
||||||
Alert::set($Language->g('The password and confirmation password do not match'));
|
Alert::set($Language->g('Password must be at least 6 characters long'), ALERT_STATUS_FAIL);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the user.
|
// Check new password and confirm password are equal
|
||||||
if( $dbUsers->add($args) )
|
if( $args['new_password'] != $args['confirm_password'] )
|
||||||
{
|
{
|
||||||
Alert::set($Language->g('user-has-been-added-successfully'));
|
Alert::set($Language->g('The password and confirmation password do not match'), ALERT_STATUS_FAIL);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filter form fields
|
||||||
|
$tmp = array();
|
||||||
|
$tmp['username'] = $args['new_username'];
|
||||||
|
$tmp['password'] = $args['new_password'];
|
||||||
|
$tmp['role'] = $args['role'];
|
||||||
|
|
||||||
|
// Add the user to the database
|
||||||
|
if( $dbUsers->add($tmp) )
|
||||||
|
{
|
||||||
|
Alert::set($Language->g('user-has-been-added-successfully'), ALERT_STATUS_OK);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -17,26 +17,6 @@ function editUser($args)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setPassword($username, $new_password, $confirm_password)
|
|
||||||
{
|
|
||||||
global $dbUsers;
|
|
||||||
global $Language;
|
|
||||||
|
|
||||||
if( ($new_password===$confirm_password) && !Text::isEmpty($new_password) )
|
|
||||||
{
|
|
||||||
if( $dbUsers->setPassword($username, $new_password) ) {
|
|
||||||
Alert::set($Language->g('The changes have been saved'));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to change the user password.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Alert::set($Language->g('The password and confirmation password do not match'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function deleteUser($args, $deleteContent=false)
|
function deleteUser($args, $deleteContent=false)
|
||||||
{
|
{
|
||||||
global $dbUsers;
|
global $dbUsers;
|
||||||
|
@ -92,10 +72,6 @@ if( $_SERVER['REQUEST_METHOD'] == 'POST' )
|
||||||
elseif(isset($_POST['delete-user-associate'])) {
|
elseif(isset($_POST['delete-user-associate'])) {
|
||||||
deleteUser($_POST, false);
|
deleteUser($_POST, false);
|
||||||
}
|
}
|
||||||
elseif( !empty($_POST['new-password']) && !empty($_POST['confirm-password']) ) {
|
|
||||||
setPassword($_POST['username'], $_POST['new-password'], $_POST['confirm-password']);
|
|
||||||
editUser($_POST);
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
editUser($_POST);
|
editUser($_POST);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
<?php defined('BLUDIT') or die('Bludit CMS.');
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// Functions
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
function setPassword($username, $new_password, $confirm_password)
|
||||||
|
{
|
||||||
|
global $dbUsers;
|
||||||
|
global $Language;
|
||||||
|
|
||||||
|
// Password length
|
||||||
|
if( strlen($new_password) < 6 )
|
||||||
|
{
|
||||||
|
Alert::set($Language->g('Password must be at least 6 characters long'), ALERT_STATUS_FAIL);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($new_password===$confirm_password)
|
||||||
|
{
|
||||||
|
if( $dbUsers->setPassword($username, $new_password) ) {
|
||||||
|
Alert::set($Language->g('The changes have been saved'), ALERT_STATUS_OK);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to change the user password.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Alert::set($Language->g('The password and confirmation password do not match'), ALERT_STATUS_FAIL);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// Main before POST
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// POST Method
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
|
||||||
|
{
|
||||||
|
// Prevent editors to administrate other users.
|
||||||
|
if($Login->role()!=='admin')
|
||||||
|
{
|
||||||
|
$_POST['username'] = $Login->username();
|
||||||
|
unset($_POST['role']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( setPassword($_POST['username'], $_POST['new_password'], $_POST['confirm_password']) ) {
|
||||||
|
Redirect::page('admin', 'users');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// Main after POST
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
if($Login->role()!=='admin') {
|
||||||
|
$layout['parameters'] = $Login->username();
|
||||||
|
}
|
||||||
|
|
||||||
|
$_user = $dbUsers->getDb($layout['parameters']);
|
||||||
|
|
||||||
|
// If the user doesn't exist, redirect to the users list.
|
||||||
|
if($_user===false) {
|
||||||
|
Redirect::page('admin', 'users');
|
||||||
|
}
|
||||||
|
|
||||||
|
$_user['username'] = $layout['parameters'];
|
|
@ -99,9 +99,15 @@ button.delete-button:hover {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#jscontent {
|
||||||
|
height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----------- ALERT ----------- */
|
||||||
|
|
||||||
#alert {
|
#alert {
|
||||||
display: none;
|
display: none;
|
||||||
background: rgba(48, 102, 187, 0.91);
|
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
padding: 24px;
|
padding: 24px;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
@ -110,8 +116,12 @@ button.delete-button:hover {
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
#jscontent {
|
.alert-ok {
|
||||||
height: 400px;
|
background: rgba(48, 102, 187, 0.91);
|
||||||
|
}
|
||||||
|
|
||||||
|
.alert-fail {
|
||||||
|
background: rgba(187, 48, 48, 0.91);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------- LOGIN FORM ----------- */
|
/* ----------- LOGIN FORM ----------- */
|
||||||
|
|
|
@ -48,7 +48,7 @@ $(document).ready(function() {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div id="alert">
|
<div id="alert" class="<?php echo (Alert::status()==ALERT_STATUS_OK)?'alert-ok':'alert-fail'; ?>">
|
||||||
<?php Alert::p() ?>
|
<?php Alert::p() ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ class HTML {
|
||||||
$type = isset($args['type']) ? $args['type'] : 'text';
|
$type = isset($args['type']) ? $args['type'] : 'text';
|
||||||
$class = empty($args['class']) ? '' : 'class="'.$args['class'].'"';
|
$class = empty($args['class']) ? '' : 'class="'.$args['class'].'"';
|
||||||
$placeholder = empty($args['placeholder']) ? '' : 'placeholder="'.$args['placeholder'].'"';
|
$placeholder = empty($args['placeholder']) ? '' : 'placeholder="'.$args['placeholder'].'"';
|
||||||
|
$disabled = empty($args['disabled']) ? '' : 'disabled';
|
||||||
|
|
||||||
$html = '<div class="uk-form-row">';
|
$html = '<div class="uk-form-row">';
|
||||||
|
|
||||||
|
@ -39,7 +40,7 @@ class HTML {
|
||||||
|
|
||||||
$html .= '<div class="uk-form-controls">';
|
$html .= '<div class="uk-form-controls">';
|
||||||
|
|
||||||
$html .= '<input id="'.$id.'" name="'.$args['name'].'" type="'.$type.'" '.$class.' '.$placeholder.' value="'.$args['value'].'">';
|
$html .= '<input id="'.$id.'" name="'.$args['name'].'" type="'.$type.'" '.$class.' '.$placeholder.' autocomplete="off" '.$disabled.' value="'.$args['value'].'">';
|
||||||
|
|
||||||
if(!empty($args['tip'])) {
|
if(!empty($args['tip'])) {
|
||||||
$html .= '<p class="uk-form-help-block">'.$args['tip'].'</p>';
|
$html .= '<p class="uk-form-help-block">'.$args['tip'].'</p>';
|
||||||
|
@ -158,6 +159,9 @@ class HTML {
|
||||||
|
|
||||||
$("#jsaddImage").on("click", function() {
|
$("#jsaddImage").on("click", function() {
|
||||||
var filename = $("#jsimageList option:selected").text();
|
var filename = $("#jsimageList option:selected").text();
|
||||||
|
if(!filename.trim()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
var textareaValue = $("#jscontent").val();
|
var textareaValue = $("#jscontent").val();
|
||||||
$("#jscontent").val(textareaValue + "<img src=\""+filename+"\" alt=\"\">" + "\n");
|
$("#jscontent").val(textareaValue + "<img src=\""+filename+"\" alt=\"\">" + "\n");
|
||||||
});
|
});
|
||||||
|
@ -186,6 +190,10 @@ class HTML {
|
||||||
bar.css("width", "100%").text("100%");
|
bar.css("width", "100%").text("100%");
|
||||||
setTimeout(function() { progressbar.addClass("uk-hidden"); }, 250);
|
setTimeout(function() { progressbar.addClass("uk-hidden"); }, 250);
|
||||||
$("#jsimageList").prepend("<option value=\'"+response.filename+"\' selected=\'selected\'>"+response.filename+"</option>");
|
$("#jsimageList").prepend("<option value=\'"+response.filename+"\' selected=\'selected\'>"+response.filename+"</option>");
|
||||||
|
},
|
||||||
|
|
||||||
|
notallowed: function(file, settings) {
|
||||||
|
alert("'.$L->g('Supported image file types').' "+settings.allow);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
HTML::title(array('title'=>$L->g('Add a new user'), 'icon'=>'user-plus'));
|
HTML::title(array('title'=>$L->g('Add a new user'), 'icon'=>'user-plus'));
|
||||||
|
|
||||||
HTML::formOpen(array('class'=>'uk-form-horizontal'));
|
HTML::formOpen(array('id'=>'add-user-form', 'class'=>'uk-form-horizontal'));
|
||||||
|
|
||||||
// Security token
|
// Security token
|
||||||
HTML::formInputHidden(array(
|
HTML::formInputHidden(array(
|
||||||
|
@ -11,15 +11,15 @@ HTML::formOpen(array('class'=>'uk-form-horizontal'));
|
||||||
));
|
));
|
||||||
|
|
||||||
HTML::formInputText(array(
|
HTML::formInputText(array(
|
||||||
'name'=>'username',
|
'name'=>'new_username',
|
||||||
'label'=>$L->g('Username'),
|
'label'=>$L->g('Username'),
|
||||||
'value'=>(isset($_POST['username'])?$_POST['username']:''),
|
'value'=>(isset($_POST['new_username'])?$_POST['new_username']:''),
|
||||||
'class'=>'uk-width-1-2 uk-form-medium',
|
'class'=>'uk-width-1-2 uk-form-medium',
|
||||||
'tip'=>''
|
'tip'=>''
|
||||||
));
|
));
|
||||||
|
|
||||||
HTML::formInputPassword(array(
|
HTML::formInputPassword(array(
|
||||||
'name'=>'password',
|
'name'=>'new_password',
|
||||||
'label'=>$L->g('Password'),
|
'label'=>$L->g('Password'),
|
||||||
'value'=>'',
|
'value'=>'',
|
||||||
'class'=>'uk-width-1-2 uk-form-medium',
|
'class'=>'uk-width-1-2 uk-form-medium',
|
||||||
|
@ -27,7 +27,7 @@ HTML::formOpen(array('class'=>'uk-form-horizontal'));
|
||||||
));
|
));
|
||||||
|
|
||||||
HTML::formInputPassword(array(
|
HTML::formInputPassword(array(
|
||||||
'name'=>'confirm-password',
|
'name'=>'confirm_password',
|
||||||
'label'=>$L->g('Confirm Password'),
|
'label'=>$L->g('Confirm Password'),
|
||||||
'value'=>'',
|
'value'=>'',
|
||||||
'class'=>'uk-width-1-2 uk-form-medium',
|
'class'=>'uk-width-1-2 uk-form-medium',
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
HTML::title(array('title'=>$L->g('Edit user').' :: '.$_user['username'], 'icon'=>'user'));
|
HTML::title(array('title'=>$L->g('Edit user'), 'icon'=>'user'));
|
||||||
|
|
||||||
HTML::formOpen(array('class'=>'uk-form-horizontal'));
|
HTML::formOpen(array('id'=>'edit-user-profile-form','class'=>'uk-form-horizontal'));
|
||||||
|
|
||||||
// Security token
|
// Security token
|
||||||
HTML::formInputHidden(array(
|
HTML::formInputHidden(array(
|
||||||
|
@ -18,6 +18,15 @@ HTML::formOpen(array('class'=>'uk-form-horizontal'));
|
||||||
|
|
||||||
HTML::legend(array('value'=>$L->g('Profile')));
|
HTML::legend(array('value'=>$L->g('Profile')));
|
||||||
|
|
||||||
|
HTML::formInputText(array(
|
||||||
|
'name'=>'usernameDisable',
|
||||||
|
'label'=>$L->g('Username'),
|
||||||
|
'value'=>$_user['username'],
|
||||||
|
'class'=>'uk-width-1-2 uk-form-medium',
|
||||||
|
'disabled'=>true,
|
||||||
|
'tip'=>''
|
||||||
|
));
|
||||||
|
|
||||||
HTML::formInputText(array(
|
HTML::formInputText(array(
|
||||||
'name'=>'firstName',
|
'name'=>'firstName',
|
||||||
'label'=>$L->g('First name'),
|
'label'=>$L->g('First name'),
|
||||||
|
@ -34,6 +43,13 @@ HTML::formOpen(array('class'=>'uk-form-horizontal'));
|
||||||
'tip'=>''
|
'tip'=>''
|
||||||
));
|
));
|
||||||
|
|
||||||
|
echo '<div class="uk-form-row">
|
||||||
|
<label class="uk-form-label">Password</label>
|
||||||
|
<div class="uk-form-controls">
|
||||||
|
<a href="'.HTML_PATH_ADMIN_ROOT.'user-password/'.$_user['username'].'">'.$L->g('Change password').'</a>
|
||||||
|
</div>
|
||||||
|
</div>';
|
||||||
|
|
||||||
if($Login->role()==='admin') {
|
if($Login->role()==='admin') {
|
||||||
|
|
||||||
HTML::formSelect(array(
|
HTML::formSelect(array(
|
||||||
|
@ -54,24 +70,6 @@ if($Login->role()==='admin') {
|
||||||
'tip'=>$L->g('email-will-not-be-publicly-displayed')
|
'tip'=>$L->g('email-will-not-be-publicly-displayed')
|
||||||
));
|
));
|
||||||
|
|
||||||
HTML::legend(array('value'=>$L->g('Change password')));
|
|
||||||
|
|
||||||
HTML::formInputPassword(array(
|
|
||||||
'name'=>'new-password',
|
|
||||||
'label'=>$L->g('New password'),
|
|
||||||
'value'=>'',
|
|
||||||
'class'=>'uk-width-1-2 uk-form-medium',
|
|
||||||
'tip'=>''
|
|
||||||
));
|
|
||||||
|
|
||||||
HTML::formInputPassword(array(
|
|
||||||
'name'=>'confirm-password',
|
|
||||||
'label'=>$L->g('Confirm Password'),
|
|
||||||
'value'=>'',
|
|
||||||
'class'=>'uk-width-1-2 uk-form-medium',
|
|
||||||
'tip'=>''
|
|
||||||
));
|
|
||||||
|
|
||||||
echo '<div class="uk-form-row">
|
echo '<div class="uk-form-row">
|
||||||
<div class="uk-form-controls">
|
<div class="uk-form-controls">
|
||||||
<button type="submit" class="uk-button uk-button-primary">'.$L->g('Save').'</button>
|
<button type="submit" class="uk-button uk-button-primary">'.$L->g('Save').'</button>
|
||||||
|
|
|
@ -44,7 +44,7 @@ echo '<div class="uk-width-large-3-10">';
|
||||||
// Tabs, general and advanced mode
|
// Tabs, general and advanced mode
|
||||||
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';
|
echo '<ul class="uk-tab" data-uk-tab="{connect:\'#tab-options\'}">';
|
||||||
echo '<li><a href="">'.$L->g('General').'</a></li>';
|
echo '<li><a href="">'.$L->g('General').'</a></li>';
|
||||||
echo '<li><a href="">Images</a></li>';
|
echo '<li><a href="">'.$L->g('Images').'</a></li>';
|
||||||
echo '<li><a href="">'.$L->g('Advanced').'</a></li>';
|
echo '<li><a href="">'.$L->g('Advanced').'</a></li>';
|
||||||
echo '</ul>';
|
echo '</ul>';
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
HTML::title(array('title'=>$L->g('Change password'), 'icon'=>'key'));
|
||||||
|
|
||||||
|
HTML::formOpen(array('id'=>'edit-user-profile-form','class'=>'uk-form-horizontal'));
|
||||||
|
|
||||||
|
// Security token
|
||||||
|
HTML::formInputHidden(array(
|
||||||
|
'name'=>'tokenCSRF',
|
||||||
|
'value'=>$Security->getToken()
|
||||||
|
));
|
||||||
|
|
||||||
|
// Hidden field username
|
||||||
|
HTML::formInputHidden(array(
|
||||||
|
'name'=>'username',
|
||||||
|
'value'=>$_user['username']
|
||||||
|
));
|
||||||
|
|
||||||
|
HTML::legend(array('value'=>$L->g('New password')));
|
||||||
|
|
||||||
|
HTML::formInputText(array(
|
||||||
|
'name'=>'usernameDisable',
|
||||||
|
'label'=>$L->g('Username'),
|
||||||
|
'value'=>$_user['username'],
|
||||||
|
'class'=>'uk-width-1-2 uk-form-medium',
|
||||||
|
'disabled'=>true,
|
||||||
|
'tip'=>''
|
||||||
|
));
|
||||||
|
|
||||||
|
HTML::formInputPassword(array(
|
||||||
|
'name'=>'new_password',
|
||||||
|
'label'=>$L->g('New password'),
|
||||||
|
'value'=>'',
|
||||||
|
'class'=>'uk-width-1-2 uk-form-medium',
|
||||||
|
'tip'=>''
|
||||||
|
));
|
||||||
|
|
||||||
|
HTML::formInputPassword(array(
|
||||||
|
'name'=>'confirm_password',
|
||||||
|
'label'=>$L->g('Confirm password'),
|
||||||
|
'value'=>'',
|
||||||
|
'class'=>'uk-width-1-2 uk-form-medium',
|
||||||
|
'tip'=>''
|
||||||
|
));
|
||||||
|
|
||||||
|
echo '<div class="uk-form-row">
|
||||||
|
<div class="uk-form-controls">
|
||||||
|
<button type="submit" class="uk-button uk-button-primary">'.$L->g('Save').'</button>
|
||||||
|
<a href="'.HTML_PATH_ADMIN_ROOT.'edit-user/'.$_user['username'].'" class="uk-button">'.$L->g('Cancel').'</a>
|
||||||
|
</div>
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
HTML::formClose();
|
||||||
|
|
||||||
|
?>
|
21
install.php
21
install.php
|
@ -7,6 +7,11 @@
|
||||||
* Bludit is opensource software licensed under the MIT license.
|
* Bludit is opensource software licensed under the MIT license.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Check PHP version
|
||||||
|
if(version_compare(phpversion(), '5.3', '<')) {
|
||||||
|
exit('Current PHP version '.phpversion().', you need > 5.3. (ERR_202)');
|
||||||
|
}
|
||||||
|
|
||||||
// Security constant
|
// Security constant
|
||||||
define('BLUDIT', true);
|
define('BLUDIT', true);
|
||||||
|
|
||||||
|
@ -139,19 +144,6 @@ function checkSystem()
|
||||||
$phpModules = get_loaded_extensions();
|
$phpModules = get_loaded_extensions();
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the php version is less than 5.3, then don't check others requirements.
|
|
||||||
if(!version_compare(phpversion(), '5.3', '>='))
|
|
||||||
{
|
|
||||||
$errorText = 'Current PHP version '.phpversion().', you need > 5.3. (ERR_202)';
|
|
||||||
error_log($errorText, 0);
|
|
||||||
|
|
||||||
$tmp['title'] = 'PHP version';
|
|
||||||
$tmp['errorText'] = $errorText;
|
|
||||||
array_push($stdOut, $tmp);
|
|
||||||
|
|
||||||
return $stdOut;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!file_exists(PATH_ROOT.'.htaccess'))
|
if(!file_exists(PATH_ROOT.'.htaccess'))
|
||||||
{
|
{
|
||||||
$errorText = 'Missing file, upload the file .htaccess (ERR_201)';
|
$errorText = 'Missing file, upload the file .htaccess (ERR_201)';
|
||||||
|
@ -202,9 +194,8 @@ function install($adminPassword, $email, $timezoneOffset)
|
||||||
|
|
||||||
$stdOut = array();
|
$stdOut = array();
|
||||||
|
|
||||||
$timezone = timezone_name_from_abbr('', $timezoneOffset, 1);
|
$timezone = timezone_name_from_abbr('', $timezoneOffset, 0);
|
||||||
if($timezone === false) { $timezone = timezone_name_from_abbr('', $timezoneOffset, 0); } // Workaround bug #44780
|
if($timezone === false) { $timezone = timezone_name_from_abbr('', $timezoneOffset, 0); } // Workaround bug #44780
|
||||||
|
|
||||||
date_default_timezone_set($timezone);
|
date_default_timezone_set($timezone);
|
||||||
|
|
||||||
$currentDate = Date::current(DB_DATE_FORMAT);
|
$currentDate = Date::current(DB_DATE_FORMAT);
|
||||||
|
|
|
@ -48,6 +48,12 @@ if(!defined('JSON_PRETTY_PRINT')) {
|
||||||
define('JSON_PRETTY_PRINT', 128);
|
define('JSON_PRETTY_PRINT', 128);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Alert status ok
|
||||||
|
define('ALERT_STATUS_OK', 0);
|
||||||
|
|
||||||
|
// Alert status fail
|
||||||
|
define('ALERT_STATUS_FAIL', 1);
|
||||||
|
|
||||||
// Salt length
|
// Salt length
|
||||||
define('SALT_LENGTH', 8);
|
define('SALT_LENGTH', 8);
|
||||||
|
|
||||||
|
|
|
@ -93,6 +93,7 @@ class dbLanguage extends dbJSON
|
||||||
|
|
||||||
foreach($files as $file)
|
foreach($files as $file)
|
||||||
{
|
{
|
||||||
|
|
||||||
$t = new dbJSON($file, false);
|
$t = new dbJSON($file, false);
|
||||||
$native = $t->db['language-data']['native'];
|
$native = $t->db['language-data']['native'];
|
||||||
$locale = basename($file, '.json');
|
$locale = basename($file, '.json');
|
||||||
|
|
|
@ -2,21 +2,25 @@
|
||||||
|
|
||||||
class Alert {
|
class Alert {
|
||||||
|
|
||||||
// new
|
// Status, 0 = OK, 1 = Fail
|
||||||
public static function set($value, $key='alert')
|
public static function set($value, $status=ALERT_STATUS_OK, $key='alert')
|
||||||
{
|
{
|
||||||
Session::set('defined', true);
|
Session::set('defined', true);
|
||||||
|
Session::set('alertStatus', $status);
|
||||||
Session::set($key, $value);
|
Session::set($key, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function get($key='alert')
|
public static function get($key='alert')
|
||||||
{
|
{
|
||||||
Session::set('defined', false);
|
Session::set('defined', false);
|
||||||
|
|
||||||
return Session::get($key);
|
return Session::get($key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function status()
|
||||||
|
{
|
||||||
|
return Session::get('alertStatus');
|
||||||
|
}
|
||||||
|
|
||||||
public static function p($key='alert')
|
public static function p($key='alert')
|
||||||
{
|
{
|
||||||
echo self::get($key);
|
echo self::get($key);
|
||||||
|
|
|
@ -0,0 +1,206 @@
|
||||||
|
{
|
||||||
|
"language-data":
|
||||||
|
{
|
||||||
|
"native": "Български (България)",
|
||||||
|
"english-name": "Bulgarian",
|
||||||
|
"last-update": "2015-11-09",
|
||||||
|
"author": "Христо Дипчиков",
|
||||||
|
"email": "",
|
||||||
|
"website": "www.hristodipchikov.tk"
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": "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": "URL филтри",
|
||||||
|
"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 version",
|
||||||
|
"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": "Този имейл адрес няма да бъде показван. Ще се използва за възстановяване парола и уведомления.",
|
||||||
|
"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": "Абсолютен адрес на вашия блог. Пример http://www.domain.com/directory/.",
|
||||||
|
"add-or-edit-description-tags-or": "Добавяне или редактиране на описание, eтикети или модифициране URL.",
|
||||||
|
"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-separeted-by-comma": "Добавянето на етикети става чрез добавянето на запетая. Например: TAG1, tag2, tag3",
|
||||||
|
"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": "Управлявайте вашият Bludit от [Администраторският панел](./admin/)",
|
||||||
|
"follow-bludit-on": "Последвайте Bludit в",
|
||||||
|
"visit-the-support-forum": "Посети [форум](http://forum.bludit.com) за подръжка",
|
||||||
|
"read-the-documentation-for-more-information": "Прочети [документацията](http://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":"Вашият имейл адрес е невалиден.",
|
||||||
|
"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": "Plugin етикет",
|
||||||
|
"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":"Настройки на имейл акаунт",
|
||||||
|
"sender-email": "Имейл на изпращача",
|
||||||
|
"emails-will-be-sent-from-this-address":"Имейлите ще бъдат изпратени от този адрес.",
|
||||||
|
"bludit-login-access-code": "BLUDIT - Код за достъп",
|
||||||
|
"check-your-inbox-for-your-login-access-code":"Проверете вашата пощенска кутия за вашия код за достъп",
|
||||||
|
"there-was-a-problem-sending-the-email":"Възникна проблем при изпращането на имейла",
|
||||||
|
"back-to-login-form": "Връщане към входяща форма",
|
||||||
|
"send-me-a-login-access-code": "Изпрати код за достъп",
|
||||||
|
"get-login-access-code": "Вземете код за достъп",
|
||||||
|
"email-notification-login-access-code": "<p>Това е уведомление от вашия сайт {{WEBSITE_NAME}}</p><p>Вашият код за достъп , последвайте следващата връзката:</p><p>{{LINK}}</p>",
|
||||||
|
"there-are-no-scheduled-posts": "Не са открити планирани публикации.",
|
||||||
|
"show-password": "Покажи паролата",
|
||||||
|
"edit-or-remove-your=pages": "Промяна или премахване на страници.",
|
||||||
|
"edit-or-remove-your-blogs-posts": "Промяна или премахване на публикации.",
|
||||||
|
"general-settings": "Основни настройки",
|
||||||
|
"advanced-settings": "Разширени настройки",
|
||||||
|
"manage-users": "Управление на потребители",
|
||||||
|
"view-and-edit-your-profile": "Преглед и редактиране на профила ви.",
|
||||||
|
|
||||||
|
"password-must-be-at-least-6-characters-long": "Паролата трябва да е с дължина най-малко 6 символа",
|
||||||
|
"images": "Снимки",
|
||||||
|
"upload-image": "Прикачи снимка",
|
||||||
|
"drag-and-drop-or-click-here": "Влачите и пускате или натиснете тук",
|
||||||
|
"insert-image": "Вмъкни снимка"
|
||||||
|
}
|
|
@ -170,7 +170,7 @@
|
||||||
"command-line-mode": "Kommandozeilen-Modus",
|
"command-line-mode": "Kommandozeilen-Modus",
|
||||||
"enable-the-command-line-mode-if-you-add-edit": "Verwende den Kommandozeilen-Modus, wenn du Beiträge und Seiten im Dateisystem hinzufügen, ändern oder löschen möchtest.",
|
"enable-the-command-line-mode-if-you-add-edit": "Verwende den Kommandozeilen-Modus, wenn du Beiträge und Seiten im Dateisystem hinzufügen, ändern oder löschen möchtest.",
|
||||||
"configure": "Konfiguration",
|
"configure": "Konfiguration",
|
||||||
"uninstall": "Deaktivieren,
|
"uninstall": "Deaktivieren",
|
||||||
"change-password": "Neues Passwort",
|
"change-password": "Neues Passwort",
|
||||||
"to-schedule-the-post-just-select-the-date-and-time": "Um einen Beitrag zu einem bestimmten Zeitpunkt zu veröffentlichen, Datum und Zeit wählen.",
|
"to-schedule-the-post-just-select-the-date-and-time": "Um einen Beitrag zu einem bestimmten Zeitpunkt zu veröffentlichen, Datum und Zeit wählen.",
|
||||||
"write-the-tags-separated-by-commas": "Schlagwörter durch Kommas getrennt.",
|
"write-the-tags-separated-by-commas": "Schlagwörter durch Kommas getrennt.",
|
||||||
|
|
|
@ -203,5 +203,6 @@
|
||||||
"images": "Images",
|
"images": "Images",
|
||||||
"upload-image": "Upload image",
|
"upload-image": "Upload image",
|
||||||
"drag-and-drop-or-click-here": "Drag and drop or click here",
|
"drag-and-drop-or-click-here": "Drag and drop or click here",
|
||||||
"insert-image": "Insert image"
|
"insert-image": "Insert image",
|
||||||
|
"supported-image-file-types": "Supported image file types"
|
||||||
}
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
{
|
{
|
||||||
"native": "Français (France)",
|
"native": "Français (France)",
|
||||||
"english-name": "French",
|
"english-name": "French",
|
||||||
"last-update": "2015-10-29",
|
"last-update": "2015-11-08",
|
||||||
"author": "Frédéric K.",
|
"author": "Frédéric K.",
|
||||||
"email": "stradfred@gmail.com",
|
"email": "stradfred@gmail.com",
|
||||||
"website": ""
|
"website": ""
|
||||||
|
@ -196,5 +196,12 @@
|
||||||
"general-settings": "Paramètres généraux",
|
"general-settings": "Paramètres généraux",
|
||||||
"advanced-settings": "Paramètres avancés",
|
"advanced-settings": "Paramètres avancés",
|
||||||
"manage-users": "Gestion des utilisateurs",
|
"manage-users": "Gestion des utilisateurs",
|
||||||
"view-and-edit-your-profile": "Modifier votre profil"
|
"view-and-edit-your-profile": "Modifier votre profil",
|
||||||
|
|
||||||
|
"password-must-be-at-least-6-characters-long": "Le mot de passe doit contenir au moins 6 caractères",
|
||||||
|
"images": "Images",
|
||||||
|
"upload-image": "Envoyer une image",
|
||||||
|
"drag-and-drop-or-click-here": "Glissez et déposez ou cliquez ici",
|
||||||
|
"insert-image": "Insérer l’image sélectionnée"
|
||||||
|
|
||||||
}
|
}
|
|
@ -97,6 +97,9 @@ class pluginsimpleMDE extends Plugin {
|
||||||
|
|
||||||
$html .= '$("#jsaddImage").on("click", function() {
|
$html .= '$("#jsaddImage").on("click", function() {
|
||||||
var filename = $("#jsimageList option:selected" ).text();
|
var filename = $("#jsimageList option:selected" ).text();
|
||||||
|
if(!filename.trim()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
var text = simplemde.value();
|
var text = simplemde.value();
|
||||||
simplemde.value(text + "![alt text]("+filename+")" + "\n");
|
simplemde.value(text + "![alt text]("+filename+")" + "\n");
|
||||||
});';
|
});';
|
||||||
|
|
Loading…
Reference in New Issue