diff --git a/admin/controllers/add-user.php b/admin/controllers/add-user.php index 723f0564..ce004cf3 100644 --- a/admin/controllers/add-user.php +++ b/admin/controllers/add-user.php @@ -18,30 +18,44 @@ function addUser($args) global $dbUsers; global $Language; - // Check if the username already exist in db. - if( Text::isEmpty($args['username']) ) + // Check empty 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; } - 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; } - // Validate password. - if( ($args['password'] != $args['confirm-password'] ) || Text::isEmpty($args['password']) ) + // Password length + 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; } - // Add the user. - if( $dbUsers->add($args) ) + // Check new password and confirm password are equal + 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; } else diff --git a/admin/controllers/edit-user.php b/admin/controllers/edit-user.php index 39a6bd7c..6b85671d 100644 --- a/admin/controllers/edit-user.php +++ b/admin/controllers/edit-user.php @@ -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) { global $dbUsers; @@ -92,10 +72,6 @@ if( $_SERVER['REQUEST_METHOD'] == 'POST' ) elseif(isset($_POST['delete-user-associate'])) { deleteUser($_POST, false); } - elseif( !empty($_POST['new-password']) && !empty($_POST['confirm-password']) ) { - setPassword($_POST['username'], $_POST['new-password'], $_POST['confirm-password']); - editUser($_POST); - } else { editUser($_POST); } diff --git a/admin/controllers/user-password.php b/admin/controllers/user-password.php new file mode 100644 index 00000000..6b4c977a --- /dev/null +++ b/admin/controllers/user-password.php @@ -0,0 +1,73 @@ +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']; diff --git a/admin/themes/default/css/default.css b/admin/themes/default/css/default.css index 8f2aebfd..7ab788c0 100644 --- a/admin/themes/default/css/default.css +++ b/admin/themes/default/css/default.css @@ -99,9 +99,15 @@ button.delete-button:hover { text-decoration: underline; } +#jscontent { + height: 400px; +} + + +/* ----------- ALERT ----------- */ + #alert { display: none; - background: rgba(48, 102, 187, 0.91); color: #ffffff; padding: 24px; position: fixed; @@ -110,8 +116,12 @@ button.delete-button:hover { z-index: 100; } -#jscontent { - height: 400px; +.alert-ok { + background: rgba(48, 102, 187, 0.91); +} + +.alert-fail { + background: rgba(187, 48, 48, 0.91); } /* ----------- LOGIN FORM ----------- */ diff --git a/admin/themes/default/index.php b/admin/themes/default/index.php index f834fb0a..dae2d4d1 100644 --- a/admin/themes/default/index.php +++ b/admin/themes/default/index.php @@ -48,7 +48,7 @@ $(document).ready(function() { }); -
+
diff --git a/admin/themes/default/init.php b/admin/themes/default/init.php index 07ce459e..1f3db143 100644 --- a/admin/themes/default/init.php +++ b/admin/themes/default/init.php @@ -30,6 +30,7 @@ class HTML { $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 = '
'; @@ -39,7 +40,7 @@ class HTML { $html .= '
'; - $html .= ''; + $html .= ''; if(!empty($args['tip'])) { $html .= '

'.$args['tip'].'

'; @@ -158,6 +159,9 @@ class HTML { $("#jsaddImage").on("click", function() { var filename = $("#jsimageList option:selected").text(); + if(!filename.trim()) { + return false; + } var textareaValue = $("#jscontent").val(); $("#jscontent").val(textareaValue + "\"\"" + "\n"); }); @@ -186,6 +190,10 @@ class HTML { bar.css("width", "100%").text("100%"); setTimeout(function() { progressbar.addClass("uk-hidden"); }, 250); $("#jsimageList").prepend(""); + }, + + notallowed: function(file, settings) { + alert("'.$L->g('Supported image file types').' "+settings.allow); } }; diff --git a/admin/views/add-user.php b/admin/views/add-user.php index ff3b871d..2b7230e0 100644 --- a/admin/views/add-user.php +++ b/admin/views/add-user.php @@ -2,7 +2,7 @@ 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 HTML::formInputHidden(array( @@ -11,15 +11,15 @@ HTML::formOpen(array('class'=>'uk-form-horizontal')); )); HTML::formInputText(array( - 'name'=>'username', + 'name'=>'new_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', 'tip'=>'' )); HTML::formInputPassword(array( - 'name'=>'password', + 'name'=>'new_password', 'label'=>$L->g('Password'), 'value'=>'', 'class'=>'uk-width-1-2 uk-form-medium', @@ -27,7 +27,7 @@ HTML::formOpen(array('class'=>'uk-form-horizontal')); )); HTML::formInputPassword(array( - 'name'=>'confirm-password', + 'name'=>'confirm_password', 'label'=>$L->g('Confirm Password'), 'value'=>'', 'class'=>'uk-width-1-2 uk-form-medium', diff --git a/admin/views/edit-user.php b/admin/views/edit-user.php index 6416e9b5..bb336c46 100644 --- a/admin/views/edit-user.php +++ b/admin/views/edit-user.php @@ -1,8 +1,8 @@ $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 HTML::formInputHidden(array( @@ -18,6 +18,15 @@ HTML::formOpen(array('class'=>'uk-form-horizontal')); 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( 'name'=>'firstName', 'label'=>$L->g('First name'), @@ -34,6 +43,13 @@ HTML::formOpen(array('class'=>'uk-form-horizontal')); 'tip'=>'' )); + echo '
+ + +
'; + if($Login->role()==='admin') { HTML::formSelect(array( @@ -54,24 +70,6 @@ if($Login->role()==='admin') { '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 '
diff --git a/admin/views/new-post.php b/admin/views/new-post.php index fd4f1494..3d89fb99 100644 --- a/admin/views/new-post.php +++ b/admin/views/new-post.php @@ -44,7 +44,7 @@ echo '
'; // Tabs, general and advanced mode echo ''; diff --git a/admin/views/user-password.php b/admin/views/user-password.php new file mode 100644 index 00000000..d51fa456 --- /dev/null +++ b/admin/views/user-password.php @@ -0,0 +1,55 @@ +$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 '
+
+ + '.$L->g('Cancel').' +
+
'; + +HTML::formClose(); + +?> \ No newline at end of file diff --git a/install.php b/install.php index 7da52d20..f2bc046d 100644 --- a/install.php +++ b/install.php @@ -7,6 +7,11 @@ * 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 define('BLUDIT', true); @@ -139,19 +144,6 @@ function checkSystem() $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')) { $errorText = 'Missing file, upload the file .htaccess (ERR_201)'; @@ -202,9 +194,8 @@ function install($adminPassword, $email, $timezoneOffset) $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 - date_default_timezone_set($timezone); $currentDate = Date::current(DB_DATE_FORMAT); diff --git a/kernel/boot/init.php b/kernel/boot/init.php index 56d8b319..e9471d91 100644 --- a/kernel/boot/init.php +++ b/kernel/boot/init.php @@ -48,6 +48,12 @@ if(!defined('JSON_PRETTY_PRINT')) { define('JSON_PRETTY_PRINT', 128); } +// Alert status ok +define('ALERT_STATUS_OK', 0); + +// Alert status fail +define('ALERT_STATUS_FAIL', 1); + // Salt length define('SALT_LENGTH', 8); diff --git a/kernel/dblanguage.class.php b/kernel/dblanguage.class.php index 58a999cc..6cb9bd11 100644 --- a/kernel/dblanguage.class.php +++ b/kernel/dblanguage.class.php @@ -93,6 +93,7 @@ class dbLanguage extends dbJSON foreach($files as $file) { + $t = new dbJSON($file, false); $native = $t->db['language-data']['native']; $locale = basename($file, '.json'); diff --git a/kernel/helpers/alert.class.php b/kernel/helpers/alert.class.php index 6b7bd9b6..b0d11bf2 100644 --- a/kernel/helpers/alert.class.php +++ b/kernel/helpers/alert.class.php @@ -2,21 +2,25 @@ class Alert { - // new - public static function set($value, $key='alert') + // Status, 0 = OK, 1 = Fail + public static function set($value, $status=ALERT_STATUS_OK, $key='alert') { Session::set('defined', true); - + Session::set('alertStatus', $status); Session::set($key, $value); } public static function get($key='alert') { Session::set('defined', false); - return Session::get($key); } + public static function status() + { + return Session::get('alertStatus'); + } + public static function p($key='alert') { echo self::get($key); diff --git a/languages/bg_BG.json b/languages/bg_BG.json new file mode 100644 index 00000000..ddc25448 --- /dev/null +++ b/languages/bg_BG.json @@ -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": "

Това е уведомление от вашия сайт {{WEBSITE_NAME}}

Вашият код за достъп , последвайте следващата връзката:

{{LINK}}

", + "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": "Вмъкни снимка" +} diff --git a/languages/de_DE.json b/languages/de_DE.json index 254d05b5..5501bd96 100644 --- a/languages/de_DE.json +++ b/languages/de_DE.json @@ -170,7 +170,7 @@ "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.", "configure": "Konfiguration", - "uninstall": "Deaktivieren, + "uninstall": "Deaktivieren", "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.", "write-the-tags-separated-by-commas": "Schlagwörter durch Kommas getrennt.", diff --git a/languages/en_US.json b/languages/en_US.json index 405f1f45..e308c6f4 100644 --- a/languages/en_US.json +++ b/languages/en_US.json @@ -203,5 +203,6 @@ "images": "Images", "upload-image": "Upload image", "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" } \ No newline at end of file diff --git a/languages/fr_FR.json b/languages/fr_FR.json old mode 100644 new mode 100755 index b749454a..5eb05848 --- a/languages/fr_FR.json +++ b/languages/fr_FR.json @@ -3,7 +3,7 @@ { "native": "Français (France)", "english-name": "French", - "last-update": "2015-10-29", + "last-update": "2015-11-08", "author": "Frédéric K.", "email": "stradfred@gmail.com", "website": "" @@ -196,5 +196,12 @@ "general-settings": "Paramètres généraux", "advanced-settings": "Paramètres avancés", "manage-users": "Gestion des utilisateurs", - "view-and-edit-your-profile": "Modifier votre profil" + "view-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" + } \ No newline at end of file diff --git a/plugins/simplemde/plugin.php b/plugins/simplemde/plugin.php index 78be158e..f362c0a7 100644 --- a/plugins/simplemde/plugin.php +++ b/plugins/simplemde/plugin.php @@ -97,6 +97,9 @@ class pluginsimpleMDE extends Plugin { $html .= '$("#jsaddImage").on("click", function() { var filename = $("#jsimageList option:selected" ).text(); + if(!filename.trim()) { + return false; + } var text = simplemde.value(); simplemde.value(text + "![alt text]("+filename+")" + "\n"); });';