diff --git a/bl-kernel/abstract/content.class.php b/bl-kernel/abstract/content.class.php
index c0eaf294..04b56bde 100644
--- a/bl-kernel/abstract/content.class.php
+++ b/bl-kernel/abstract/content.class.php
@@ -170,6 +170,10 @@ class Content {
return false;
}
+ if (preg_match("/^https?:\/\//", $fileName)) {
+ $absolute=false;
+ }
+
if($absolute) {
return HTML_PATH_UPLOADS.$fileName;
}
diff --git a/bl-kernel/admin/themes/default/init.php b/bl-kernel/admin/themes/default/init.php
index 3f244a5f..211b3f13 100644
--- a/bl-kernel/admin/themes/default/init.php
+++ b/bl-kernel/admin/themes/default/init.php
@@ -214,11 +214,37 @@ class HTML {
$style = '';
if(!empty($coverImage)) {
- $style = 'background-image: url('.HTML_PATH_UPLOADS_THUMBNAILS.$coverImage.')';
+ if (preg_match("/^https?:\/\//", $coverImage)) {
+ $style = 'background-image: url('.$coverImage.')';
+ }
+ else {
+ $style = 'background-image: url('.HTML_PATH_UPLOADS_THUMBNAILS.$coverImage.')';
+ }
}
$html = '';
$html .= '
+
diff --git a/bl-kernel/js/bludit-cover-image.js b/bl-kernel/js/bludit-cover-image.js
index eddee0d3..b7f20d75 100644
--- a/bl-kernel/js/bludit-cover-image.js
+++ b/bl-kernel/js/bludit-cover-image.js
@@ -4,7 +4,16 @@ var coverImage = new function() {
this.set = function(filename) {
- var imageSrc = HTML_PATH_UPLOADS_THUMBNAILS + filename;
+ var externalCoverImage = true;
+ var imageSrc = "";
+
+ var expression = /^https?:\/\//gi;
+ var regex = new RegExp(expression);
+ if (!filename.match(regex)) {
+ externalCoverImage = false;
+ imageSrc += HTML_PATH_UPLOADS_THUMBNAILS;
+ }
+ imageSrc += filename;
// Cover image background
$("#cover-image-thumbnail").attr("style", "background-image: url("+imageSrc+")");
@@ -19,7 +28,9 @@ var coverImage = new function() {
$("#cover-image-upload").hide();
// Hide box "There are no images"
- $(".empty-images").hide();
+ if (!externalCoverImage) {
+ $(".empty-images").hide();
+ }
}
@@ -43,12 +54,55 @@ var coverImage = new function() {
$(document).ready(function() {
+ var coverImageTypeSelected = false;
+ var modal = UIkit.modal("#bludit-cover-image-modal");
+ $("#bludit-cover-image").on("click", function(e){
+ if (coverImageTypeSelected) {
+ coverImageTypeSelected = !coverImageTypeSelected;
+ return;
+ }
+ if ( modal.isActive() ) {
+ modal.hide();
+ } else {
+ $("#external-cover-image-url").val("");
+ modal.show();
+ $("#external-cover-image-url").focus();
+ }
+ e.stopPropagation();
+ e.preventDefault();
+ });
+ // Stores the external cover image url
+ $("#jsExternalCoverImageSave").on("click", function(e){
+ e.stopPropagation();
+ e.preventDefault();
+ modal.hide();
+ if ($("#external-cover-image-url").val().length > 0) {
+ var expression = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)\/\S+\.(jpg|jpeg|gif|png)/gi;
+ var regex = new RegExp(expression);
+ if ($("#external-cover-image-url").val().match(regex)) {
+ coverImage.set($("#external-cover-image-url").val().toLowerCase());
+ }
+ else {
+ alert("g('error').'. '.$L->g('Invalid cover image URL')?>.");
+ }
+ }
+ });
+ // Proceed with cover image upload
+ $("#jsCoverImageUpload").on("click", function(e){
+ e.stopPropagation();
+ e.preventDefault();
+ modal.hide();
+ coverImageTypeSelected = true;
+ $("#cover-image-file-select").trigger("click");
+ });
+
// Click on delete cover image.
- $("#cover-image-delete").on("click", function() {
+ $("#cover-image-delete").on("click", function(e) {
// Remove the cover image.
coverImage.remove();
-
+ e.stopPropagation();
+
});
var settings =
diff --git a/bl-languages/en_US.json b/bl-languages/en_US.json
index e92c7774..f1625187 100644
--- a/bl-languages/en_US.json
+++ b/bl-languages/en_US.json
@@ -249,5 +249,8 @@
"add-a-new-page": "Add a new page",
"add-a-new-post": "Add a new post",
- "save-as-draft": "Save as draft"
+ "save-as-draft": "Save as draft",
+ "invalid-cover-image-url": "Invalid cover image URL",
+ "external-cover-image": "External Cover Image",
+ "cover-image-url": "Cover Image URL"
}
\ No newline at end of file
diff --git a/bl-languages/pt_BR.json b/bl-languages/pt_BR.json
index e38a01f0..8e1ca45a 100644
--- a/bl-languages/pt_BR.json
+++ b/bl-languages/pt_BR.json
@@ -234,5 +234,8 @@
"сurrent-status" : "Estado atual",
"disable-the-user" : "Desabilitar usuário",
"add-a-new-page": "Criar nova página",
- "add-a-new-post": "Criar nova entrada"
+ "add-a-new-post": "Criar nova entrada",
+ "invalid-cover-image-url": "URL inválida para a imagem de capa",
+ "external-cover-image": "Imagem de capa externa",
+ "cover-image-url": "URL da imagem de capa"
}
\ No newline at end of file