-
-
get('Bludit Installer') ?>
-
get('Welcome to the Bludit installer') ?>
+
+
- get('Bludit Installer') ?>
+
get('Welcome to the Bludit installer') ?>
- if(empty($system))
- {
- ?>
+ get('Complete the form, choose a password for the username « admin »') ?>
+ $system = checkSystem();
-
+ // Missing requirements
+ if(!empty($system))
+ {
+ echo '
';
+ }
+ // Second step
+ elseif(isset($_GET['language']))
+ {
+
+ ?>
+
get('Complete the form choose a password for the username admin') ?>
+
+
+
+
get('Choose your language') ?>
+
+
+
- ';
- echo '
';
+
+
- foreach ($system as $value)
- {
- echo ''.$value.' |
';
- }
-
- echo '
';
- echo '
-
-
-
-
+
diff --git a/kernel/boot/admin.php b/kernel/boot/admin.php
index fc852a1e..3f7e2719 100644
--- a/kernel/boot/admin.php
+++ b/kernel/boot/admin.php
@@ -19,20 +19,21 @@ $layout['parameters'] = implode('/', $explodeSlug);
// Thanks, http://stackoverflow.com/questions/517008/how-to-turn-off-magic-quotes-on-shared-hosting
if ( in_array( strtolower( ini_get( 'magic_quotes_gpc' ) ), array( '1', 'on' ) ) )
{
- $_POST = array_map('stripslashes', $_POST);
- $_GET = array_map('stripslashes', $_GET);
+ $_POST = array_map('stripslashes', $_POST);
+ $_GET = array_map('stripslashes', $_GET);
$_COOKIE = array_map('stripslashes', $_COOKIE);
}
// AJAX
-if( $Login->isLogged() && ($layout['slug']==='ajax') )
+if( $layout['slug']==='ajax' )
{
- // Boot rules
- // Ajax doesn't needs load rules
-
- // Load AJAX file
- if( Sanitize::pathFile(PATH_AJAX, $layout['parameters'].'.php') )
- include(PATH_AJAX.$layout['parameters'].'.php');
+ if($Login->isLogged())
+ {
+ // Load AJAX file
+ if( Sanitize::pathFile(PATH_AJAX, $layout['parameters'].'.php') ) {
+ include(PATH_AJAX.$layout['parameters'].'.php');
+ }
+ }
}
// ADMIN AREA
else
@@ -56,17 +57,20 @@ else
Theme::plugins('beforeAdminLoad');
// Admin theme init.php
- if( Sanitize::pathFile(PATH_ADMIN_THEMES, $Site->adminTheme().DS.'init.php') )
+ if( Sanitize::pathFile(PATH_ADMIN_THEMES, $Site->adminTheme().DS.'init.php') ) {
include(PATH_ADMIN_THEMES.$Site->adminTheme().DS.'init.php');
+ }
// Load controller
- if( Sanitize::pathFile(PATH_ADMIN_CONTROLLERS, $layout['controller'].'.php') )
+ if( Sanitize::pathFile(PATH_ADMIN_CONTROLLERS, $layout['controller'].'.php') ) {
include(PATH_ADMIN_CONTROLLERS.$layout['controller'].'.php');
+ }
// Load view and theme
- if( Sanitize::pathFile(PATH_ADMIN_THEMES, $Site->adminTheme().DS.$layout['template']) )
+ if( Sanitize::pathFile(PATH_ADMIN_THEMES, $Site->adminTheme().DS.$layout['template']) ) {
include(PATH_ADMIN_THEMES.$Site->adminTheme().DS.$layout['template']);
+ }
// Plugins after admin area loaded
Theme::plugins('afterAdminLoad');
-}
+}
\ No newline at end of file
diff --git a/kernel/boot/init.php b/kernel/boot/init.php
index 08f30f4b..afd5c70a 100644
--- a/kernel/boot/init.php
+++ b/kernel/boot/init.php
@@ -1,14 +1,16 @@
');
-// Bludit version
-define('BLUDIT_VERSION', 'githubVersion');
-define('BLUDIT_CODENAME', '');
-define('BLUDIT_RELEASE_DATE', '');
-
-//
+// No parent character
define('NO_PARENT_CHAR', '—');
// Post per page on Manage->Posts
define('POSTS_PER_PAGE_ADMIN', 10);
-// Multibyte string / UTF-8
-define('MB_STRING', extension_loaded('mbstring'));
-
// Check if JSON encode and decode are enabled.
define('JSON', function_exists('json_encode'));
// TRUE if new posts hand-made set published, or FALSE for draft.
define('HANDMADE_PUBLISHED', true);
+// Charset, default UTF-8.
define('CHARSET', 'UTF-8');
+// Multibyte string extension loaded.
+define('MB_STRING', extension_loaded('mbstring'));
+
if(MB_STRING)
{
- // Tell PHP that we're using UTF-8 strings until the end of the script.
+ // Set internal character encoding.
mb_internal_encoding(CHARSET);
- // Tell PHP that we'll be outputting UTF-8 to the browser.
+ // Set HTTP output character encoding.
mb_http_output(CHARSET);
}
-// Abstract Classes
+// Inclde Abstract Classes
include(PATH_ABSTRACT.'dbjson.class.php');
include(PATH_ABSTRACT.'filecontent.class.php');
include(PATH_ABSTRACT.'plugin.class.php');
+// Inclde Classes
include(PATH_KERNEL.'dbposts.class.php');
include(PATH_KERNEL.'dbpages.class.php');
include(PATH_KERNEL.'dbusers.class.php');
include(PATH_KERNEL.'dblanguage.class.php');
include(PATH_KERNEL.'dbsite.class.php');
-
include(PATH_KERNEL.'post.class.php');
include(PATH_KERNEL.'page.class.php');
-
include(PATH_KERNEL.'url.class.php');
include(PATH_KERNEL.'login.class.php');
include(PATH_KERNEL.'parsedown.class.php');
+include(PATH_KERNEL.'security.class.php');
-// Helpers Classes
+// Include Helpers Classes
include(PATH_HELPERS.'text.class.php');
include(PATH_HELPERS.'log.class.php');
include(PATH_HELPERS.'date.class.php');
@@ -132,6 +126,7 @@ $dbUsers = new dbUsers();
$Site = new dbSite();
$Url = new Url();
$Parsedown = new Parsedown();
+$Security = new Security();
// HTML PATHs
$base = (dirname(getenv('SCRIPT_NAME'))==DS)?'/':dirname(getenv('SCRIPT_NAME')).'/';
@@ -146,7 +141,7 @@ define('HTML_PATH_ADMIN_ROOT', HTML_PATH_ROOT.'admin/');
define('HTML_PATH_UPLOADS', HTML_PATH_ROOT.'content/uploads/');
define('HTML_PATH_PLUGINS', HTML_PATH_ROOT.'plugins/');
-// PHP PATHs with dependency
+// PHP paths with dependency
define('PATH_THEME', PATH_ROOT.'themes/'.$Site->theme().'/');
// Objects with dependency
diff --git a/kernel/boot/rules/99.header.php b/kernel/boot/rules/99.header.php
index d67de305..27df4585 100644
--- a/kernel/boot/rules/99.header.php
+++ b/kernel/boot/rules/99.header.php
@@ -5,5 +5,3 @@ if($Url->notFound())
{
header('HTTP/1.0 404 Not Found');
}
-
-?>
diff --git a/kernel/boot/site.php b/kernel/boot/site.php
index 19c99ed0..6d4d763f 100644
--- a/kernel/boot/site.php
+++ b/kernel/boot/site.php
@@ -12,12 +12,14 @@ include(PATH_RULES.'99.themes.php');
Theme::plugins('beforeSiteLoad');
// Theme init.php
-if( Sanitize::pathFile(PATH_THEMES, $Site->theme().DS.'init.php') )
+if( Sanitize::pathFile(PATH_THEMES, $Site->theme().DS.'init.php') ) {
include(PATH_THEMES.$Site->theme().DS.'init.php');
+}
// Theme HTML
-if( Sanitize::pathFile(PATH_THEMES, $Site->theme().DS.'index.php') )
+if( Sanitize::pathFile(PATH_THEMES, $Site->theme().DS.'index.php') ) {
include(PATH_THEMES.$Site->theme().DS.'index.php');
+}
// Plugins after site loaded
Theme::plugins('afterSiteLoad');
\ No newline at end of file
diff --git a/kernel/dblanguage.class.php b/kernel/dblanguage.class.php
index 4ec34ee2..7da6c0fa 100644
--- a/kernel/dblanguage.class.php
+++ b/kernel/dblanguage.class.php
@@ -4,24 +4,27 @@ class dbLanguage extends dbJSON
{
public $data;
public $db;
+ public $currentLocale;
- function __construct($language)
+ function __construct($locale)
{
$this->data = array();
$this->db = array();
+ $this->currentLocale = 'en_US';
// Default language en_US
$filename = PATH_LANGUAGES.'en_US.json';
- if(file_exists($filename))
+ if( Sanitize::pathFile($filename) )
{
$Tmp = new dbJSON($filename, false);
$this->db = array_merge($this->db, $Tmp->db);
}
// User language
- $filename = PATH_LANGUAGES.$language.'.json';
- if( file_exists($filename) && ($language!=="en_US") )
+ $filename = PATH_LANGUAGES.$locale.'.json';
+ if( Sanitize::pathFile($filename) && ($locale!=="en_US") )
{
+ $this->currentLocale = $locale;
$Tmp = new dbJSON($filename, false);
$this->db = array_merge($this->db, $Tmp->db);
}
@@ -30,6 +33,11 @@ class dbLanguage extends dbJSON
unset($this->db['language-data']);
}
+ public function getCurrentLocale()
+ {
+ return $this->currentLocale;
+ }
+
// Return the translation, if the translation does'n exist then return the English translation.
public function get($string)
{
@@ -73,7 +81,7 @@ class dbLanguage extends dbJSON
return $this->data[$key];
}
- return '';
+ return '';
}
// Returns an array with all dictionaries.
diff --git a/kernel/dbpages.class.php b/kernel/dbpages.class.php
index 1f47d0e4..70bd7f74 100644
--- a/kernel/dbpages.class.php
+++ b/kernel/dbpages.class.php
@@ -5,14 +5,14 @@ class dbPages extends dbJSON
private $parentKeyList = array();
private $dbFields = array(
- 'title'=> array('inFile'=>true, 'value'=>''),
- 'content'=> array('inFile'=>true, 'value'=>''),
+ 'title'=> array('inFile'=>true, 'value'=>''),
+ 'content'=> array('inFile'=>true, 'value'=>''),
'description'=> array('inFile'=>false, 'value'=>''),
'username'=> array('inFile'=>false, 'value'=>''),
- 'tags'=> array('inFile'=>false, 'value'=>''),
- 'status'=> array('inFile'=>false, 'value'=>'draft'),
+ 'tags'=> array('inFile'=>false, 'value'=>''),
+ 'status'=> array('inFile'=>false, 'value'=>'draft'),
'unixTimeCreated'=> array('inFile'=>false, 'value'=>0),
- 'unixTimeModified'=>array('inFile'=>false, 'value'=>0),
+ 'unixTimeModified'=> array('inFile'=>false, 'value'=>0),
'position'=> array('inFile'=>false, 'value'=>0)
);
diff --git a/kernel/login.class.php b/kernel/login.class.php
index d55d118b..476c09cb 100644
--- a/kernel/login.class.php
+++ b/kernel/login.class.php
@@ -65,7 +65,7 @@ class Login {
$user = $this->dbUsers->getDb($username);
if($user==false) {
- Log::set(__METHOD__.LOG_SEP.'Username not exist: '.$username);
+ Log::set(__METHOD__.LOG_SEP.'Username does not exist: '.$username);
return false;
}
@@ -78,7 +78,7 @@ class Login {
return true;
}
else {
- Log::set(__METHOD__.LOG_SEP.'Password are differents.');
+ Log::set(__METHOD__.LOG_SEP.'Password incorrect.');
}
return false;
@@ -113,4 +113,4 @@ class Login {
return Session::destroy();
}
-}
+}
\ No newline at end of file
diff --git a/kernel/security.class.php b/kernel/security.class.php
index c4ac5a34..3761a1e4 100644
--- a/kernel/security.class.php
+++ b/kernel/security.class.php
@@ -5,7 +5,7 @@ class Security extends dbJSON
private $dbFields = array(
'minutesBlocked'=>5,
'numberFailuresAllowed'=>10,
- 'blackList'=>array('numberFailures', 'lastFailure')
+ 'blackList'=>array()
);
function __construct()
@@ -27,12 +27,13 @@ class Security extends dbJSON
$lastFailure = $userBlack['lastFailure'];
// Check if the IP is expired, then is not blocked.
- if($currentTime > $lastFailure + $this->db['minutesBlocked']) {
+ if($currentTime > $lastFailure + ($this->db['minutesBlocked']*60)) {
return false;
}
// The IP has more failures than number of failures, then the IP is blocked.
if($numberFailures >= $this->db['numberFailuresAllowed']) {
+ Log::set(__METHOD__.LOG_SEP.'IP Blocked:'.$ip);
return true;
}
@@ -46,13 +47,23 @@ class Security extends dbJSON
$currentTime = time();
$numberFailures = 1;
- if(isset($this->db['blackList'][$ip])) {
- $numberFailures = $userBlack['numberFailures'];
- $numberFailures = $numberFailures + 1;
+ if(isset($this->db['blackList'][$ip]))
+ {
+ $userBlack = $this->db['blackList'][$ip];
+ $lastFailure = $userBlack['lastFailure'];
+
+ // Check if the IP is expired, then renew the number of failures.
+ if($currentTime <= $lastFailure + ($this->db['minutesBlocked']*60))
+ {
+ $numberFailures = $userBlack['numberFailures'];
+ $numberFailures = $numberFailures + 1;
+ }
}
$this->db['blackList'][$ip] = array('lastFailure'=>$currentTime, 'numberFailures'=>$numberFailures);
+ Log::set(__METHOD__.LOG_SEP.'Blacklist, IP:'.$ip.', Number of failures:'.$numberFailures);
+
// Save the database
if( $this->save() === false ) {
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to save the database file.');
@@ -62,6 +73,18 @@ class Security extends dbJSON
return true;
}
+ public function getNumberFailures($ip=null)
+ {
+ if(empty($ip)) {
+ $ip = $this->getUserIp();
+ }
+
+ if(isset($this->db['blackList'][$ip])) {
+ $userBlack = $this->db['blackList'][$ip];
+ return $userBlack['numberFailures'];
+ }
+ }
+
public function getUserIp()
{
// User IP
diff --git a/languages/en_US.json b/languages/en_US.json
index 2e7e3dad..23d306a8 100755
--- a/languages/en_US.json
+++ b/languages/en_US.json
@@ -8,12 +8,7 @@
"email": "",
"website": ""
},
-
- "bludit-installer": "Bludit Installer",
- "welcome-to-the-bludit-installer": "Welcome to the Bludit installer",
- "complete-the-form,-choose-a-password-for-the-username-«-admin-»": "Complete the form, choose a password for the username « admin »",
- "password,-visible-field!": "Password, visible field!",
- "install": "Install",
+
"username": "Username",
"password": "Password",
"confirm-password": "Confirm Password",
@@ -113,7 +108,7 @@
"you-can-choose-the-users-privilege": "You can choose the user's privilege. The editor role only can write pages and posts.",
"email-will-not-be-publicly-displayed": "Email will not be publicly displayed. Recommended for recovery password and notifications.",
"use-this-field-to-name-your-site": "Use this field to name your site, it will appear at the top of every page of your site.",
- "use-this-field-to-add-a-catchy-prhase": "Use this field to add a catchy prhase on your site.",
+ "use-this-field-to-add-a-catchy-phrase": "Use this field to add a catchy phrase on your site.",
"you-can-add-a-site-description-to-provide": "You can add a site description to provide a short bio or description of your site.",
"you-can-add-a-small-text-on-the-bottom": "You can add a small text on the bottom of every page. eg: copyright, owner, dates, etc.",
"number-of-posts-to-show-per-page": "Number of posts to show per page.",
@@ -149,6 +144,18 @@
"read-the-documentation-for-more-information": "Read the [documentation](http://docs.bludit.com) for more information",
"share-with-your-friends-and-enjoy": "Share with your friends and enjoy",
"the-page-has-not-been-found": "The page has not been found.",
- "error": "Error"
-
+ "error": "Error",
+ "bludit-installer": "Bludit Installer",
+ "welcome-to-the-bludit-installer": "Welcome to the Bludit installer",
+ "complete-the-form-choose-a-password-for-the-username-admin": "Complete the form, choose a password for the username « admin »",
+ "password-visible-field": "Password, visible field!",
+ "install": "Install",
+ "choose-your-language": "Choose your language",
+ "next": "Next",
+ "the-password-field-is-empty": "The password field is empty",
+ "your-email-address-is-invalid":"Your email address is invalid.",
+ "proceed-anyway": "Proceed anyway!",
+ "drafts":"Drafts",
+ "ip-address-has-been-blocked": "IP address has been blocked.",
+ "try-again-in-a-few-minutes": "Try again in a few minutes."
}
\ No newline at end of file
diff --git a/languages/es_AR.json b/languages/es_AR.json
index 8fa3d00f..6d5643ab 100755
--- a/languages/es_AR.json
+++ b/languages/es_AR.json
@@ -3,13 +3,13 @@
{
"native": "Español (Argentina)",
"english-name": "Spanish",
- "last-update": "2015-06-28",
+ "last-update": "2015-08-16",
"author": "Diego",
"email": "",
"website": ""
},
- "username": "Usuario",
+ "username": "Nombre de usuario",
"password": "Contraseña",
"confirm-password": "Confirmar contraseña",
"editor": "Editor",
@@ -24,22 +24,22 @@
"content": "Contenido",
"title": "Titulo",
"no-parent": "Sin padre",
- "edit-page": "Editar pagina",
+ "edit-page": "Editar página",
"edit-post": "Editar post",
"add-a-new-user": "Agregar nuevo usuario",
"parent": "Padre",
"friendly-url": "URL Amistosa",
- "description": "Descripcion",
+ "description": "Descripción",
"posted-by": "Publicado por",
"tags": "Etiquetas",
- "position": "Posicion",
+ "position": "Posición",
"save": "Guardar",
"draft": "Borrador",
"delete": "Eliminar",
"registered": "Registrado",
"Notifications": "Notificaciones",
"profile": "Perfil",
- "email": "Correo electronico",
+ "email": "Correo electrónico",
"settings": "Ajustes",
"general": "General",
"advanced": "Avanzado",
@@ -52,30 +52,30 @@
"prev-page": "Pag. anterior",
"next-page": "Pag. siguiente",
"configure-plugin": "Configurar plugin",
- "confirm-delete-this-action-cannot-be-undone": "Confirmar eliminacion, esta operacion no se puede deshacer.",
+ "confirm-delete-this-action-cannot-be-undone": "Confirmar eliminación, esta operación no se puede deshacer.",
"site-title": "Titulo del sitio",
"site-slogan": "Slogan del sitio",
- "site-description": "Descripcion del sitio",
- "footer-text": "Texto de pie de pagina",
- "posts-per-page": "Posts por pagina",
+ "site-description": "Descripción del sitio",
+ "footer-text": "Texto de pie de página",
+ "posts-per-page": "Posts por página",
"site-url": "URL del sitio",
- "writting-settings": "Ajustes de redaccion",
+ "writting-settings": "Ajustes de redacción",
"url-filters": "Filtros URL",
- "page": "Pagina",
- "pages": "Paginas",
+ "page": "página",
+ "pages": "páginas",
"home": "Inicio",
"welcome-back": "Bienvenido",
- "language": "Lenguage",
+ "language": "Lenguaje",
"website": "Sitio web",
"timezone": "Zona horaria",
"locale": "Locale",
"new-post": "Nuevo post",
- "new-page": "Nueva pagina",
- "html-and-markdown-code-supported": "Codigo HTML y Markdown soportado",
+ "new-page": "Nueva página",
+ "html-and-markdown-code-supported": "Código HTML y Markdown soportado",
"manage-posts": "Administrar posts",
- "published-date": "Fecha de publicacion",
- "modified-date": "Fecha de modificacion",
- "empty-title": "Titulo vacio",
+ "published-date": "Fecha de publicación",
+ "modified-date": "Fecha de modificación",
+ "empty-title": "Titulo vacío",
"plugins": "Plugins",
"install-plugin": "Instalar plugin",
"uninstall-plugin": "Desinstalar plugin",
@@ -84,65 +84,76 @@
"publish-now": "Publicar",
"first-name": "Nombre",
"last-name": "Apellido",
- "bludit-version": "Bludit version",
+ "bludit-version": "Bludit versión",
"powered-by": "Corriendo con",
"recent-posts": "Posts recientes",
- "manage-pages": "Administrar paginas",
+ "manage-pages": "Administrar páginas",
"advanced-options": "Opciones avanzadas",
"user-deleted": "Usuario eliminado",
"page-added-successfully": "Página agregada con éxito",
"post-added-successfully": "Post agregado con éxito ",
- "the-post-has-been-deleted-successfully": "El post fue eliminado con exito",
- "the-page-has-been-deleted-successfully": "La pagina fue eliminada con exito",
- "username-or-password-incorrect": "Usuario o contraseña icorrectos",
+ "the-post-has-been-deleted-successfully": "El post fue eliminado con éxito",
+ "the-page-has-been-deleted-successfully": "La página fue eliminada con éxito",
+ "username-or-password-incorrect": "Nombre de usuario o contraseña incorrectos",
"database-regenerated": "Base de datos regenerada",
"the-changes-have-been-saved": "Los cambios fueron guardados",
"enable-more-features-at": "Habilitar más funciones en",
- "username-already-exists": "El usuario ya existe",
- "username-field-is-empty": "El campo usuario esta vacio",
- "the-password-and-confirmation-password-do-not-match":"Las contraseña no coiniciden",
- "user-has-been-added-successfully": "El usuario fue creado con exito",
- "you-do-not-have-sufficient-permissions": "No tiene suficientes permisos para acceder a esta pagina, contacte al administrador.",
- "settings-advanced-writting-settings": "Ajustes->Avanzado->Ajustes de redaccion",
- "new-posts-and-pages-synchronized": "Nuevos posts y paginas sincronizados.",
- "you-can-choose-the-users-privilege": "You can choose the user's privilege. The editor role only can write pages and posts.",
- "email-will-not-be-publicly-displayed": "Email will not be publicly displayed. Recommended for recovery password and notifications.",
- "use-this-field-to-name-your-site": "Use this field to name your site, it will appear at the top of every page of your site.",
- "use-this-field-to-add-a-catchy-prhase": "Use this field to add a catchy prhase on your site.",
- "you-can-add-a-site-description-to-provide": "You can add a site description to provide a short bio or description of your site.",
- "you-can-add-a-small-text-on-the-bottom": "You can add a small text on the bottom of every page. eg: copyright, owner, dates, etc.",
- "number-of-posts-to-show-per-page": "Number of posts to show per page.",
- "the-url-of-your-site": "The URL of your site.",
- "add-or-edit-description-tags-or": "Add or edit description, tags or modify the friendly URL.",
- "select-your-sites-language": "Seleccione el lenguage de su sitio.",
- "select-a-timezone-for-a-correct": "Select a timezone for a correct date/time display on your site.",
- "you-can-use-this-field-to-define-a-set-of": "You can use this field to define a set of parameters related to the languege, country and special preferences.",
- "you-can-modify-the-url-which-identifies":"You can modify the URL which identifies a page or post using human-readable keywords. No more than 150 characters.",
- "this-field-can-help-describe-the-content": "This field can help describe the content in a few words. No more than 150 characters.",
- "write-the-tags-separeted-by-comma": "Write the tags separeted by comma. eg: tag1, tag2, tag3",
- "delete-the-user-and-all-its-posts":"Delete the user and all its posts",
- "delete-the-user-and-associate-its-posts-to-admin-user": "Delete the user and associate its posts to admin user",
+ "username-already-exists": "El nombre de usuario ya existe",
+ "username-field-is-empty": "El campo nombre de usuario esta vacío",
+ "the-password-and-confirmation-password-do-not-match": "Las contraseña no coinciden",
+ "user-has-been-added-successfully": "El usuario fue creado con éxito",
+ "you-do-not-have-sufficient-permissions": "No tiene suficientes permisos para acceder a esta página, contacte al administrador.",
+ "settings-advanced-writting-settings": "Ajustes->Avanzado->Ajustes de redacción",
+ "new-posts-and-pages-synchronized": "Nuevos posts y páginas sincronizados.",
+ "you-can-choose-the-users-privilege": "Puede elegir los privilegios del usuario. El rol editor solo puede redactar páginas y post.",
+ "email-will-not-be-publicly-displayed": "El correo electrónico no será visible. Recomendado para recuperar la contraseña y notificaciones.",
+ "use-this-field-to-name-your-site": "Utilice este campo para nombrar su sitio, aparecerá en la parte superior de cada página de su sitio.",
+ "use-this-field-to-add-a-catchy-phrase": "Utilice este campo para agregar un slogan a su sitio.",
+ "you-can-add-a-site-description-to-provide": "Puede agregar una descripción del sitio para proporcionar una breve biografía o descripción de su sitio.",
+ "you-can-add-a-small-text-on-the-bottom": "Puede agregar un pequeño texto en el pie de página. ej: copyright, autor, fechas, etc.",
+ "number-of-posts-to-show-per-page": "Numero de posts a mostrar por página.",
+ "the-url-of-your-site": "URL de su sitio.",
+ "add-or-edit-description-tags-or": "Agregar o editar la descripción, tags y modificar la URL amigable.",
+ "select-your-sites-language": "Seleccione el lenguaje de su sitio.",
+ "select-a-timezone-for-a-correct": "Seleccione la zona horaria para una correcta visualización de las fechas.",
+ "you-can-use-this-field-to-define-a-set-of": "Puede utilizar este campo para definir un conjunto de parámetros relacionados con el idioma, país y preferencias especiales.",
+ "you-can-modify-the-url-which-identifies": "Puede modificar la dirección URL que identifica una página o post usando palabras clave legible. No mas de 150 caracteres.",
+ "this-field-can-help-describe-the-content": "Este campo puede ayudar a describir el contenido en pocas palabras. No mas de 150 caracteres.",
+ "write-the-tags-separeted-by-comma": "Escribir los tags separados por comas. ej: tag1, tag2, tag3",
+ "delete-the-user-and-all-its-posts": "Eliminar el usuario y sus posts",
+ "delete-the-user-and-associate-its-posts-to-admin-user": "Eliminar el usuario y asociar los posts al usuario admin",
"read-more": "Leer mas",
"show-blog": "Mostrar blog",
- "default-home-page": "Pagina de inicio predeterminada",
+ "default-home-page": "página de inicio predeterminada",
"version": "Version",
"there-are-no-drafts": "No hay borradores.",
- "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.",
+ "create-a-new-article-for-your-blog":"Crear un nuevo articulo para su blog.",
+ "create-a-new-page-for-your-website":"Crear una nueva página para su sitio web.",
+ "invite-a-friend-to-collaborate-on-your-website":"Invite a un amigo para colaborar en el sitio web.",
+ "change-your-language-and-region-settings":"Cambiar la configuración de idioma y región.",
"language-and-timezone":"Lenguage y zona horaria",
"author": "Autor",
- "start-here": "Comience aqui",
+ "start-here": "Comience aquí",
"install-theme": "Instalar tema",
"first-post": "Primer post",
- "congratulations-you-have-successfully-installed-your-bludit": "Congratulations you have successfully installed your **Bludit**",
- "whats-next": "Que sigue",
- "manage-your-bludit-from-the-admin-panel": "Manage your Bludit from the [admin area](./admin/)",
+ "congratulations-you-have-successfully-installed-your-bludit": "Felicitación, usted ha instalado **Bludit** exitosamente",
+ "whats-next": "Siguientes pasos",
+ "manage-your-bludit-from-the-admin-panel": "Administre su Bludit desde el [panel de administración](./admin/)",
"follow-bludit-on": "Siga Bludit en",
"visit-the-support-forum": "Visite el [foro](http://forum.bludit.com) para soporte",
- "read-the-documentation-for-more-information": "Lea la [documentacion](http://docs.bludit.com) para mas informacion",
- "share-with-your-friends-and-enjoy": "Comparti con tus amigos y a disfrutar",
- "the-page-has-not-been-found": "La pagina no fue encontrada.",
- "error": "Error"
+ "read-the-documentation-for-more-information": "Lea la [documentación](http://docs.bludit.com) para mas información",
+ "share-with-your-friends-and-enjoy": "Compartí con tus amigos y a disfrutar",
+ "the-page-has-not-been-found": "La página no fue encontrada.",
+ "error": "Error",
+ "bludit-installer": "Bludit Instalador",
+ "welcome-to-the-bludit-installer": "Bienvenido al asistente para la instalación de Bludit",
+ "complete-the-form-choose-a-password-for-the-username-admin": "Complete el formulario y elija una contraseña para el usuario « admin »",
+ "password-visible-field": "Contraseña, este campo es visible!",
+ "install": "Instalar",
+ "the-password-field-is-empty": "Debe completar el campo contraseña",
+ "your-email-address-is-invalid":"Su dirección de correo es invalida.",
+ "proceed-anyway": "Continuar de todas formas!",
+ "drafts":"Borradores",
+ "ip-address-has-been-blocked":"La direccion IP fue bloqueada.",
+ "try-again-in-a-few-minutes": "Vuelva a intentar en unos minutos."
}
\ No newline at end of file
diff --git a/languages/es_VE.json b/languages/es_VE.json
index 948dc7ef..5ecfbe7a 100755
--- a/languages/es_VE.json
+++ b/languages/es_VE.json
@@ -111,7 +111,7 @@
"you-can-choose-the-users-privilege": "Usted puede elegir los privilegios del usuario. El papel del editor sólo puede escribir páginas y mensajes.",
"email-will-not-be-publicly-displayed": "El correo electrónico no se mostrará públicamente. Recomendado para notificaciones y recuperación contraseña.",
"use-this-field-to-name-your-site": "Use este campo para el nombre de su sitio, aparecerá en la parte superior de cada página de su sitio.",
- "use-this-field-to-add-a-catchy-prhase": "Use este campo para agregar una frase pegadiza en su sitio.",
+ "use-this-field-to-add-a-catchy-phrase": "Use este campo para agregar una frase pegadiza en su sitio.",
"you-can-add-a-site-description-to-provide": "Puede agregar una descripción del sitio para proporcionar una breve biografía o descripción de su sitio.",
"you-can-add-a-small-text-on-the-bottom": "Puede añadir un pequeño texto en la parte inferior de cada página. por ejemplo: derechos de autor, propietario, fechas, etc.",
"number-of-posts-to-show-per-page": "Número de mensajes a mostrar por página.",
diff --git a/languages/fr_FR.json b/languages/fr_FR.json
index a4faffd0..7a455b7b 100755
--- a/languages/fr_FR.json
+++ b/languages/fr_FR.json
@@ -8,12 +8,7 @@
"email": "",
"website": ""
},
-
- "bludit-installer": "Installation de Bludit",
- "welcome-to-the-bludit-installer": "Bienvenue dans l’assistant d’installation de Bludit",
- "complete-the-form,-choose-a-password-for-the-username-«-admin-»": "Complétez le formulaire et choisissez un mot de passe pour l’utilisateur « admin »",
- "password,-visible-field!": "Mot de passe, champ visible !",
- "install": "Installer",
+
"username": "Nom d’utilisateur",
"password": "Mot de passe",
"confirm-password": "Confirmation du mot de passe",
@@ -40,7 +35,7 @@
"position": "Position",
"save": "Sauvegarder",
"draft": "Brouillon",
- "delete": "Supprimer",
+ "delete": "Supprimer",
"registered": "Inscrit",
"Notifications": "Notifications",
"profile": "Profil",
@@ -113,7 +108,7 @@
"you-can-choose-the-users-privilege": "Vous pouvez choisir les privilèges de l’utilisateur. Le rôle en tant que « Rédacteur » permet uniquement de publier des pages et des articles.",
"email-will-not-be-publicly-displayed": "Votre e-mail ne sera pas publié publiquement. Il est nécessaire pour la récupération du mot de passe et recevoir les notifications.",
"use-this-field-to-name-your-site": "Utilisez ce champ pour que le nom de votre site apparaisse en haut de chaque page.",
- "use-this-field-to-add-a-catchy-prhase": "Utilisez ce champ pour ajouter une phrase accrocheuse sur votre site.",
+ "use-this-field-to-add-a-catchy-phrase": "Utilisez ce champ pour ajouter une phrase accrocheuse sur votre site.",
"you-can-add-a-site-description-to-provide": "Vous pouvez ajouter une description du site pour fournir une courte biographie ou la description de votre site.",
"you-can-add-a-small-text-on-the-bottom": "Vous pouvez ajouter un court texte sur le pied de chaque page. par exemple: les droits d'auteurs, propriétaire, dates, etc.",
"number-of-posts-to-show-per-page": "Nombre d’articles à afficher par page.",
@@ -149,6 +144,10 @@
"read-the-documentation-for-more-information": "Lisez la [documentation](http://docs.bludit.com) pour plus d’information",
"share-with-your-friends-and-enjoy": "Partagez avec vos amis et apprécier !",
"the-page-has-not-been-found": "La page n’a pas été trouvée.",
- "error": "Erreur"
-
+ "error": "Erreur",
+ "bludit-installer": "Installation de Bludit",
+ "welcome-to-the-bludit-installer": "Bienvenue dans l’assistant d’installation de Bludit",
+ "complete-the-form-choose-a-password-for-the-username-admin": "Complétez le formulaire et choisissez un mot de passe pour l’utilisateur « admin »",
+ "password-visible-field": "Mot de passe, champ visible !",
+ "install": "Installer"
}
\ No newline at end of file
diff --git a/languages/zh_TW.json b/languages/zh_TW.json
index 14c86c8a..c2db7456 100755
--- a/languages/zh_TW.json
+++ b/languages/zh_TW.json
@@ -3,7 +3,7 @@
{
"native": "Traditional Chinese (Taiwan)",
"english-name": "Traditional Chinese",
- "last-update": "2015-08-09",
+ "last-update": "2015-08-18",
"author": "Ethan Chen",
"email": "ethan42411@gmail.com",
"website": "http://single4.ml"
@@ -108,7 +108,7 @@
"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-prhase": "使用這個欄位來幫您的網站添加一個可以朗朗上口的標語吧",
+ "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": "每一頁會顯示幾篇文章的數量",
@@ -144,6 +144,20 @@
"read-the-documentation-for-more-information": "閱讀[documentation](http://docs.bludit.com)來獲得更多資訊",
"share-with-your-friends-and-enjoy": "分享給您的朋友們",
"the-page-has-not-been-found": "此頁面不存在",
- "error": "錯誤"
+ "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": "請過幾分鐘後再試"
+
}
diff --git a/plugins/disqus/language/en_US.json b/plugins/disqus/language/en_US.json
index fd997417..9affc3e1 100644
--- a/plugins/disqus/language/en_US.json
+++ b/plugins/disqus/language/en_US.json
@@ -8,5 +8,9 @@
"website": "http://www.bludit.com",
"version": "0.1",
"releaseDate": "2015-08-02"
- }
+ },
+ "disqus-shortname": "Disqus shortname",
+ "enable-disqus-on-pages": "Enable Disqus on pages",
+ "enable-disqus-on-posts": "Enable Disqus on posts",
+ "enable-disqus-on-default-home-page": "Enable Disqus on default home page"
}
\ No newline at end of file
diff --git a/plugins/disqus/language/es_AR.json b/plugins/disqus/language/es_AR.json
new file mode 100644
index 00000000..4f67f2ec
--- /dev/null
+++ b/plugins/disqus/language/es_AR.json
@@ -0,0 +1,16 @@
+{
+ "plugin-data":
+ {
+ "name": "Disqus sistema de comentarios",
+ "description": "Disqus es un servicio de comentarios online. Es necesario registrarse en Disqus.com antes de utilizar este plugin.",
+ "author": "Bludit",
+ "email": "",
+ "website": "http://www.bludit.com",
+ "version": "0.1",
+ "releaseDate": "2015-08-17"
+ },
+ "disqus-shortname": "Disqus shortname",
+ "enable-disqus-on-pages": "Habilitar Disqus en las páginas",
+ "enable-disqus-on-posts": "Habilitar Disqus en los posts",
+ "enable-disqus-on-default-home-page": "Habilitar Disqus en la página de inicio"
+}
\ No newline at end of file
diff --git a/plugins/disqus/plugin.php b/plugins/disqus/plugin.php
index 42f13aae..17744110 100644
--- a/plugins/disqus/plugin.php
+++ b/plugins/disqus/plugin.php
@@ -2,48 +2,107 @@
class pluginDisqus extends Plugin {
+ private $disable;
+
public function init()
{
$this->dbFields = array(
- 'shortname'=>''
+ 'shortname'=>'',
+ 'enablePages'=>false,
+ 'enablePosts'=>true,
+ 'enableDefaultHomePage'=>false
);
}
+ function __construct()
+ {
+ parent::__construct();
+
+ // Disable the plugin IF ...
+ global $Url;
+
+ $this->disable = false;
+
+ if( (!$this->getDbField('enablePosts')) && ($Url->whereAmI()=='post') ) {
+ $this->disable = true;
+ }
+ elseif( (!$this->getDbField('enablePages')) && ($Url->whereAmI()=='page') ) {
+ $this->disable = true;
+ }
+ elseif( !$this->getDbField('enableDefaultHomePage') && ($Url->whereAmI()=='page') )
+ {
+ global $Page;
+ global $Site;
+ if( $Site->homePage()==$Page->key() ) {
+ $this->disable = true;
+ }
+ }
+ elseif( ($Url->whereAmI()!='post') && ($Url->whereAmI()!='page') ) {
+ $this->disable = true;
+ }
+ }
+
public function form()
{
global $Language;
$html = '
';
- $html .= '';
+ $html .= '';
$html .= '';
$html .= '
';
+ $html .= '
';
+ $html .= 'getDbField('enablePages')?'checked':'').'>';
+ $html .= '';
+ $html .= '
';
+
+ $html .= '
';
+ $html .= 'getDbField('enablePosts')?'checked':'').'>';
+ $html .= '';
+ $html .= '
';
+
+ $html .= '
';
+ $html .= 'getDbField('enableDefaultHomePage')?'checked':'').'>';
+ $html .= '';
+ $html .= '
';
+
return $html;
}
public function postEnd()
{
+ if( $this->disable ) {
+ return false;
+ }
+
$html = '';
return $html;
}
public function pageEnd()
{
- return $this->postEnd();
+ if( $this->disable ) {
+ return false;
+ }
+
+ $html = '';
+ return $html;
}
public function siteHead()
{
+ if( $this->disable ) {
+ return false;
+ }
+
$html = '';
return $html;
}
public function siteBodyEnd()
{
- global $Url;
-
- if( ($Url->whereAmI()!='post') && ($Url->whereAmI()!='page') ) {
- return '';
+ if( $this->disable ) {
+ return false;
}
$html = '
diff --git a/plugins/maintancemode/language/es_AR.json b/plugins/maintancemode/language/es_AR.json
new file mode 100755
index 00000000..eea7b378
--- /dev/null
+++ b/plugins/maintancemode/language/es_AR.json
@@ -0,0 +1,15 @@
+{
+ "plugin-data":
+ {
+ "name": "Modo mantenimiento",
+ "description": "Configurar el sitio en modo mantenimiento, se puede acceder al panel de administración mientras tanto.",
+ "author": "Bludit",
+ "email": "",
+ "website": "http://www.bludit.com",
+ "version": "0.1",
+ "releaseDate": "2015-08-02"
+ },
+
+ "enable-maintence-mode": "Habilitar modo mantenimiento",
+ "message": "Mensaje"
+}
\ No newline at end of file
diff --git a/plugins/opengraph/language/es_AR.json b/plugins/opengraph/language/es_AR.json
new file mode 100644
index 00000000..1dd40da4
--- /dev/null
+++ b/plugins/opengraph/language/es_AR.json
@@ -0,0 +1,12 @@
+{
+ "plugin-data":
+ {
+ "name": "Open Graph",
+ "description": "El protocolo Open Graph sirve para publicar contenido en las redes sociales.",
+ "author": "Bludit",
+ "email": "",
+ "website": "http://www.bludit.com",
+ "version": "0.1",
+ "releaseDate": "2015-08-02"
+ }
+}
\ No newline at end of file
diff --git a/plugins/pages/language/es_AR.json b/plugins/pages/language/es_AR.json
new file mode 100755
index 00000000..1a80bd31
--- /dev/null
+++ b/plugins/pages/language/es_AR.json
@@ -0,0 +1,15 @@
+{
+ "plugin-data":
+ {
+ "name": "Listado de páginas",
+ "description": "Muestra las paginas en orden según la posición.",
+ "author": "Bludit",
+ "email": "",
+ "website": "http://www.bludit.com",
+ "version": "0.1",
+ "releaseDate": "2015-08-02"
+ },
+
+ "home": "Página de inicio",
+ "show-home-link": "Mostrar página de inicio"
+}
\ No newline at end of file
diff --git a/plugins/tinymce/language/es_AR.json b/plugins/tinymce/language/es_AR.json
new file mode 100755
index 00000000..eca3956b
--- /dev/null
+++ b/plugins/tinymce/language/es_AR.json
@@ -0,0 +1,12 @@
+{
+ "plugin-data":
+ {
+ "name": "Tinymce",
+ "description": "Tinymce es un editor HTML, facilita al usuario crear contenido enriquecido.",
+ "author": "Bludit",
+ "email": "",
+ "website": "http://www.bludit.com",
+ "version": "0.1",
+ "releaseDate": "2015-08-02"
+ }
+}
\ No newline at end of file