diff --git a/assets/aui/js/geodirectory-plupload.js b/assets/aui/js/geodirectory-plupload.js
index e3b8d90b..3896eac9 100644
--- a/assets/aui/js/geodirectory-plupload.js
+++ b/assets/aui/js/geodirectory-plupload.js
@@ -347,7 +347,7 @@ function plu_show_thumbs(imgId) {
var file_display = '';
var file_display_class = '';
- if (file_ext == 'jpg' || file_ext == 'jpe' || file_ext == 'jpeg' || file_ext == 'png' || file_ext == 'gif' || file_ext == 'bmp' || file_ext == 'ico' || file_ext == 'webp') {
+ if (file_ext == 'jpg' || file_ext == 'jpe' || file_ext == 'jpeg' || file_ext == 'png' || file_ext == 'gif' || file_ext == 'bmp' || file_ext == 'ico' || file_ext == 'webp' || file_ext == 'svg') {
file_display = '';
if(!!image_title.trim()){
image_title_html = '' + image_title + '';
diff --git a/assets/aui/js/geodirectory-plupload.min.js b/assets/aui/js/geodirectory-plupload.min.js
index 42626566..adb4a4dc 100644
--- a/assets/aui/js/geodirectory-plupload.min.js
+++ b/assets/aui/js/geodirectory-plupload.min.js
@@ -1 +1 @@
-jQuery.fn.exists=function(){return jQuery(this).length>0};jQuery(document).ready(function($){if($(".plupload-upload-uic").exists()){var pconfig=false;var msgErr="";var post_id="";if(jQuery("#geodirectory-add-post input[name='ID']").length){post_id=jQuery("#geodirectory-add-post input[name='ID']").val()}else{post_id=jQuery("#post input[name='post_ID']").val()}$(".plupload-upload-uic").each(function(){var $this=$(this);var id1=$this.attr("id");var imgId=id1.replace("plupload-upload-ui","");plu_show_thumbs(imgId);pconfig=JSON.parse(geodir_plupload_params.base_plupload_config);pconfig["browse_button"]=imgId+pconfig["browse_button"];pconfig["container"]=imgId+pconfig["container"];if(jQuery("#"+imgId+"dropbox").length){pconfig["drop_element"]=imgId+"dropbox"}pconfig["file_data_name"]=imgId+pconfig["file_data_name"];pconfig["multipart_params"]["imgid"]=imgId;pconfig["multipart_params"]["post_id"]=post_id;if($this.hasClass("plupload-upload-uic-multiple")){pconfig["multi_selection"]=true}var allowed_exts=jQuery("#"+imgId+"_allowed_types").val();allowed_exts=allowed_exts&&allowed_exts!=""?allowed_exts:"";if(imgId=="post_images"&&typeof geodir_params.gd_allowed_img_types!="undefined"&&geodir_params.gd_allowed_img_types!=""){allowed_exts=geodir_params.gd_allowed_img_types}if(allowed_exts&&allowed_exts!=""){var txt_all_files=typeof geodir_params.txt_all_files!="undefined"&&geodir_params.txt_all_files!=""?geodir_params.txt_all_files:"Allowed files";pconfig["filters"]=[{title:txt_all_files,extensions:allowed_exts}]}var uploader=new plupload.Uploader(pconfig);uploader.bind("Init",function(up){});uploader.bind("Init",function(up,params){if(uploader.features.dragdrop){var drop_id=imgId+"dropbox";var target=jQuery("#"+drop_id);target.on("dragenter",function(event){target.addClass("dragover")});target.on("dragleave",function(event){target.removeClass("dragover")});target.on("drop",function(){target.removeClass("dragover")})}if($this.find(".moxie-shim").length){$this.find(".moxie-shim").css({position:"initial"})}});uploader.init();uploader.bind("UploadFile",function(up,file){if(imgId=="post_images"){window.geodirUploading=true}});uploader.bind("UploadComplete",function(up,files){if(imgId=="post_images"){window.geodirUploading=false}});uploader.bind("Error",function(up,files){if(imgId=="post_images"){window.geodirUploading=false}if(files.code==-600){jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");if(typeof geodir_params.err_max_file_size!="undefined"&&geodir_params.err_max_file_size!=""){msgErr=geodir_params.err_max_file_size}else{msgErr="File size error : You tried to upload a file over %s"}msgErr=msgErr.replace("%s",geodir_plupload_params.upload_img_size);jQuery("#"+imgId+"upload-error").html(msgErr)}else if(files.code==-601){jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");if(typeof geodir_params.err_file_type!="undefined"&&geodir_params.err_file_type!=""){msgErr=geodir_params.err_file_type}else{msgErr="File type error. Allowed file types: %s"}if(imgId=="post_images"){var txtReplace=allowed_exts!=""?"."+allowed_exts.replace(/,/g,", ."):"*";msgErr=msgErr.replace("%s",txtReplace)}else{msgErr=msgErr.replace("%s",jQuery("#"+imgId+"_allowed_types").attr("data-exts"))}jQuery("#"+imgId+"upload-error").html(msgErr)}else{jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");jQuery("#"+imgId+"upload-error").html(files.message)}});uploader.bind("FilesAdded",function(up,files){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());var limitImg=parseInt(jQuery("#"+imgId+"image_limit").val());jQuery("#"+imgId+"upload-error").html("");jQuery("#"+imgId+"upload-error").removeClass("d-block").addClass("d-none");if(limitImg&&$this.hasClass("plupload-upload-uic-multiple")&&limitImg>0){if(totalImg>=limitImg&&limitImg>0){while(up.files.length>0){up.removeFile(up.files[0])}if(typeof geodir_params.err_file_upload_limit!="undefined"&&geodir_params.err_file_upload_limit!=""){msgErr=geodir_params.err_file_upload_limit}else{msgErr="You have reached your upload limit of %s files."}msgErr=msgErr.replace("%s",limitImg);jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");jQuery("#"+imgId+"upload-error").html(msgErr);return false}if(up.files.length>limitImg&&limitImg>0){while(up.files.length>0){up.removeFile(up.files[0])}if(typeof geodir_params.err_pkg_upload_limit!="undefined"&&geodir_params.err_pkg_upload_limit!=""){msgErr=geodir_params.err_pkg_upload_limit}else{msgErr="You may only upload %s files with this package, please try again."}msgErr=msgErr.replace("%s",limitImg);jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");jQuery("#"+imgId+"upload-error").html(msgErr);return false}}$.each(files,function(i,file){$this.find(".filelist").append('
'+file.name+" (
"+plupload.formatSize(0)+"/"+plupload.formatSize(file.size)+") "+'
')});up.refresh();up.start()});uploader.bind("UploadProgress",function(up,file){$("#"+file.id+" .fileprogress").width(file.percent+"%");$("#"+file.id+" span").html(plupload.formatSize(parseInt(file.size*file.percent/100)))});var timer;var i=0;var indexes=new Array;uploader.bind("FileUploaded",function(up,file,response){$("#"+file.id+" .fileprogress").removeClass("progress-bar-animated");var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());indexes[i]=up;clearInterval(timer);timer=setTimeout(function(){},1e3);i++;$("#"+file.id).fadeOut();response=response["response"];if($this.hasClass("plupload-upload-uic-multiple")){totalImg++;jQuery("#"+imgId+"totImg").val(totalImg);var v1=$.trim($("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val());if(v1){v1=v1+"::"+response}else{v1=response}$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(v1).trigger("change")}else{$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(response+"").trigger("change")}plu_show_thumbs(imgId)})})}});function geodir_esc_entities(str){str=geodir_decode_entities(str);var entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(str).replace(/[&<>"'`=\/]/g,function(s){return entityMap[s]})}function geodir_decode_entities(str){if(!str){return str}var entityMap={"&":"&","<":"<",">":">",""":'"',"'":"'","/":"/","`":"`","=":"="};for(k in entityMap){var pat=new RegExp(k,"g");str=str.replace(pat,entityMap[k])}return str}function geodir_remove_file_index(indexes){for(var i=0;i0){indexes[i].removeFile(indexes[i].files[0])}}}function plu_show_thumbs(imgId){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());var limitImg=parseInt(jQuery("#"+imgId+"image_limit").val());var $=jQuery;var thumbsC=$("#"+imgId+"plupload-thumbs");thumbsC.html("");var imagesS=$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val();var txtRemove="Remove";if(typeof geodir_params.action_remove!="undefined"&&geodir_params.action_remove!=""){txtRemove=geodir_params.action_remove}if(!imagesS){return}var images=imagesS.split("::");for(var i=0;i';if(!!image_title.trim()){image_title_html=''+image_title+""}if(!!image_caption.trim()){image_caption_html=''+image_caption+""}}else{var file_type_class="fa-file";if(file_ext=="pdf"){file_type_class="fa-file-pdf"}else if(file_ext=="zip"||file_ext=="tar"){file_type_class="fa-file-archive"}else if(file_ext=="doc"||file_ext=="odt"){file_type_class="fa-file-word"}else if(file_ext=="txt"||file_ext=="text"){file_type_class="fa-file"}else if(file_ext=="csv"||file_ext=="ods"||file_ext=="ots"){file_type_class="fa-file-excel"}else if(file_ext=="avi"||file_ext=="mp4"||file_ext=="mov"){file_type_class="fa-file-video"}file_display_class="file-thumb";file_display=''}var thumb=$(''+image_title_html+file_display+image_caption_html+'
"+"
");thumbsC.append(thumb);thumb.find(".thumbremovelink").on("click",function(){if(jQuery("#"+imgId+"plupload-upload-ui").hasClass("plupload-upload-uic-multiple")){totalImg--;jQuery("#"+imgId+"totImg").val(totalImg)}jQuery("#"+imgId+"upload-error").html("");jQuery("#"+imgId+"upload-error").removeClass("d-block").addClass("d-none");var ki=$(this).attr("id").replace("thumbremovelink"+imgId,"");ki=parseInt(ki);var kimages=[];imagesS=$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val();images=imagesS.split("::");for(var j=0;j0&&!(limitImg>i)){thumb.find(".thumbremovelink").trigger("click")}}}if(images.length>1){thumbsC.sortable({update:function(event,ui){var kimages=[];thumbsC.find(".gd-file-info").each(function(){kimages[kimages.length]=$(this).data("src")+"|"+$(this).data("id")+"|"+$(this).data("title")+"|"+$(this).data("caption");$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(kimages.join("::")).trigger("change");plu_show_thumbs(imgId)})}});thumbsC.disableSelection()}var kimages=[];thumbsC.find(".gd-file-info").each(function(){kimages[kimages.length]=$(this).data("src")+"|"+$(this).data("id")+"|"+$(this).data("title")+"|"+$(this).data("caption");$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(kimages.join("::")).trigger("change")})}function gd_edit_image_meta(inputId,orderId){var imagesS=jQuery("#"+inputId,jQuery("#"+inputId+"plupload-upload-ui").parent()).val(),images=imagesS.split("::"),img_arr=images[orderId].split("|"),image_title=geodir_esc_entities(img_arr[2]),image_caption=geodir_esc_entities(img_arr[3]),html="",hBtn="";html=html+"";html=html+"";hBtn=""+geodir_params.button_set+"";jQuery("#gd-image-meta-input .modal-body").html(html);jQuery("#gd-image-meta-input .modal-footer").html(hBtn);jQuery("#gd-image-meta-input").modal("show")}function gd_set_image_meta(inputId,orderId){var imagesS=jQuery("#"+inputId,jQuery("#"+inputId+"plupload-upload-ui").parent()).val(),images=imagesS.split("::"),img_arr=images[orderId].split("|"),image_url=img_arr[0],image_id=img_arr[1],image_title=geodir_esc_entities(jQuery("#gd-image-meta-title").val()),image_caption=geodir_esc_entities(jQuery("#gd-image-meta-caption").val());images[orderId]=image_url+"|"+image_id+"|"+image_title+"|"+image_caption;imagesS=images.join("::");jQuery("#"+inputId,jQuery("#"+inputId+"plupload-upload-ui").parent()).val(imagesS).trigger("change");plu_show_thumbs(inputId);jQuery("#gd-image-meta-input").modal("hide")}
\ No newline at end of file
+jQuery.fn.exists=function(){return jQuery(this).length>0};jQuery(document).ready(function($){if($(".plupload-upload-uic").exists()){var pconfig=false;var msgErr="";var post_id="";if(jQuery("#geodirectory-add-post input[name='ID']").length){post_id=jQuery("#geodirectory-add-post input[name='ID']").val()}else{post_id=jQuery("#post input[name='post_ID']").val()}$(".plupload-upload-uic").each(function(){var $this=$(this);var id1=$this.attr("id");var imgId=id1.replace("plupload-upload-ui","");plu_show_thumbs(imgId);pconfig=JSON.parse(geodir_plupload_params.base_plupload_config);pconfig["browse_button"]=imgId+pconfig["browse_button"];pconfig["container"]=imgId+pconfig["container"];if(jQuery("#"+imgId+"dropbox").length){pconfig["drop_element"]=imgId+"dropbox"}pconfig["file_data_name"]=imgId+pconfig["file_data_name"];pconfig["multipart_params"]["imgid"]=imgId;pconfig["multipart_params"]["post_id"]=post_id;if($this.hasClass("plupload-upload-uic-multiple")){pconfig["multi_selection"]=true}var allowed_exts=jQuery("#"+imgId+"_allowed_types").val();allowed_exts=allowed_exts&&allowed_exts!=""?allowed_exts:"";if(imgId=="post_images"&&typeof geodir_params.gd_allowed_img_types!="undefined"&&geodir_params.gd_allowed_img_types!=""){allowed_exts=geodir_params.gd_allowed_img_types}if(allowed_exts&&allowed_exts!=""){var txt_all_files=typeof geodir_params.txt_all_files!="undefined"&&geodir_params.txt_all_files!=""?geodir_params.txt_all_files:"Allowed files";pconfig["filters"]=[{title:txt_all_files,extensions:allowed_exts}]}var uploader=new plupload.Uploader(pconfig);uploader.bind("Init",function(up){});uploader.bind("Init",function(up,params){if(uploader.features.dragdrop){var drop_id=imgId+"dropbox";var target=jQuery("#"+drop_id);target.on("dragenter",function(event){target.addClass("dragover")});target.on("dragleave",function(event){target.removeClass("dragover")});target.on("drop",function(){target.removeClass("dragover")})}if($this.find(".moxie-shim").length){$this.find(".moxie-shim").css({position:"initial"})}});uploader.init();uploader.bind("UploadFile",function(up,file){if(imgId=="post_images"){window.geodirUploading=true}});uploader.bind("UploadComplete",function(up,files){if(imgId=="post_images"){window.geodirUploading=false}});uploader.bind("Error",function(up,files){if(imgId=="post_images"){window.geodirUploading=false}if(files.code==-600){jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");if(typeof geodir_params.err_max_file_size!="undefined"&&geodir_params.err_max_file_size!=""){msgErr=geodir_params.err_max_file_size}else{msgErr="File size error : You tried to upload a file over %s"}msgErr=msgErr.replace("%s",geodir_plupload_params.upload_img_size);jQuery("#"+imgId+"upload-error").html(msgErr)}else if(files.code==-601){jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");if(typeof geodir_params.err_file_type!="undefined"&&geodir_params.err_file_type!=""){msgErr=geodir_params.err_file_type}else{msgErr="File type error. Allowed file types: %s"}if(imgId=="post_images"){var txtReplace=allowed_exts!=""?"."+allowed_exts.replace(/,/g,", ."):"*";msgErr=msgErr.replace("%s",txtReplace)}else{msgErr=msgErr.replace("%s",jQuery("#"+imgId+"_allowed_types").attr("data-exts"))}jQuery("#"+imgId+"upload-error").html(msgErr)}else{jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");jQuery("#"+imgId+"upload-error").html(files.message)}});uploader.bind("FilesAdded",function(up,files){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());var limitImg=parseInt(jQuery("#"+imgId+"image_limit").val());jQuery("#"+imgId+"upload-error").html("");jQuery("#"+imgId+"upload-error").removeClass("d-block").addClass("d-none");if(limitImg&&$this.hasClass("plupload-upload-uic-multiple")&&limitImg>0){if(totalImg>=limitImg&&limitImg>0){while(up.files.length>0){up.removeFile(up.files[0])}if(typeof geodir_params.err_file_upload_limit!="undefined"&&geodir_params.err_file_upload_limit!=""){msgErr=geodir_params.err_file_upload_limit}else{msgErr="You have reached your upload limit of %s files."}msgErr=msgErr.replace("%s",limitImg);jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");jQuery("#"+imgId+"upload-error").html(msgErr);return false}if(up.files.length>limitImg&&limitImg>0){while(up.files.length>0){up.removeFile(up.files[0])}if(typeof geodir_params.err_pkg_upload_limit!="undefined"&&geodir_params.err_pkg_upload_limit!=""){msgErr=geodir_params.err_pkg_upload_limit}else{msgErr="You may only upload %s files with this package, please try again."}msgErr=msgErr.replace("%s",limitImg);jQuery("#"+imgId+"upload-error").removeClass("d-none").addClass("d-block");jQuery("#"+imgId+"upload-error").html(msgErr);return false}}$.each(files,function(i,file){$this.find(".filelist").append(''+file.name+" (
"+plupload.formatSize(0)+"/"+plupload.formatSize(file.size)+") "+'
')});up.refresh();up.start()});uploader.bind("UploadProgress",function(up,file){$("#"+file.id+" .fileprogress").width(file.percent+"%");$("#"+file.id+" span").html(plupload.formatSize(parseInt(file.size*file.percent/100)))});var timer;var i=0;var indexes=new Array;uploader.bind("FileUploaded",function(up,file,response){$("#"+file.id+" .fileprogress").removeClass("progress-bar-animated");var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());indexes[i]=up;clearInterval(timer);timer=setTimeout(function(){},1e3);i++;$("#"+file.id).fadeOut();response=response["response"];if($this.hasClass("plupload-upload-uic-multiple")){totalImg++;jQuery("#"+imgId+"totImg").val(totalImg);var v1=$.trim($("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val());if(v1){v1=v1+"::"+response}else{v1=response}$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(v1).trigger("change")}else{$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(response+"").trigger("change")}plu_show_thumbs(imgId)})})}});function geodir_esc_entities(str){str=geodir_decode_entities(str);var entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(str).replace(/[&<>"'`=\/]/g,function(s){return entityMap[s]})}function geodir_decode_entities(str){if(!str){return str}var entityMap={"&":"&","<":"<",">":">",""":'"',"'":"'","/":"/","`":"`","=":"="};for(k in entityMap){var pat=new RegExp(k,"g");str=str.replace(pat,entityMap[k])}return str}function geodir_remove_file_index(indexes){for(var i=0;i0){indexes[i].removeFile(indexes[i].files[0])}}}function plu_show_thumbs(imgId){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());var limitImg=parseInt(jQuery("#"+imgId+"image_limit").val());var $=jQuery;var thumbsC=$("#"+imgId+"plupload-thumbs");thumbsC.html("");var imagesS=$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val();var txtRemove="Remove";if(typeof geodir_params.action_remove!="undefined"&&geodir_params.action_remove!=""){txtRemove=geodir_params.action_remove}if(!imagesS){return}var images=imagesS.split("::");for(var i=0;i';if(!!image_title.trim()){image_title_html=''+image_title+""}if(!!image_caption.trim()){image_caption_html=''+image_caption+""}}else{var file_type_class="fa-file";if(file_ext=="pdf"){file_type_class="fa-file-pdf"}else if(file_ext=="zip"||file_ext=="tar"){file_type_class="fa-file-archive"}else if(file_ext=="doc"||file_ext=="odt"){file_type_class="fa-file-word"}else if(file_ext=="txt"||file_ext=="text"){file_type_class="fa-file"}else if(file_ext=="csv"||file_ext=="ods"||file_ext=="ots"){file_type_class="fa-file-excel"}else if(file_ext=="avi"||file_ext=="mp4"||file_ext=="mov"){file_type_class="fa-file-video"}file_display_class="file-thumb";file_display=''}var thumb=$(''+image_title_html+file_display+image_caption_html+'
"+"
");thumbsC.append(thumb);thumb.find(".thumbremovelink").on("click",function(){if(jQuery("#"+imgId+"plupload-upload-ui").hasClass("plupload-upload-uic-multiple")){totalImg--;jQuery("#"+imgId+"totImg").val(totalImg)}jQuery("#"+imgId+"upload-error").html("");jQuery("#"+imgId+"upload-error").removeClass("d-block").addClass("d-none");var ki=$(this).attr("id").replace("thumbremovelink"+imgId,"");ki=parseInt(ki);var kimages=[];imagesS=$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val();images=imagesS.split("::");for(var j=0;j0&&!(limitImg>i)){thumb.find(".thumbremovelink").trigger("click")}}}if(images.length>1){thumbsC.sortable({update:function(event,ui){var kimages=[];thumbsC.find(".gd-file-info").each(function(){kimages[kimages.length]=$(this).data("src")+"|"+$(this).data("id")+"|"+$(this).data("title")+"|"+$(this).data("caption");$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(kimages.join("::")).trigger("change");plu_show_thumbs(imgId)})}});thumbsC.disableSelection()}var kimages=[];thumbsC.find(".gd-file-info").each(function(){kimages[kimages.length]=$(this).data("src")+"|"+$(this).data("id")+"|"+$(this).data("title")+"|"+$(this).data("caption");$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(kimages.join("::")).trigger("change")})}function gd_edit_image_meta(inputId,orderId){var imagesS=jQuery("#"+inputId,jQuery("#"+inputId+"plupload-upload-ui").parent()).val(),images=imagesS.split("::"),img_arr=images[orderId].split("|"),image_title=geodir_esc_entities(img_arr[2]),image_caption=geodir_esc_entities(img_arr[3]),html="",hBtn="";html=html+"";html=html+"";hBtn=""+geodir_params.button_set+"";jQuery("#gd-image-meta-input .modal-body").html(html);jQuery("#gd-image-meta-input .modal-footer").html(hBtn);jQuery("#gd-image-meta-input").modal("show")}function gd_set_image_meta(inputId,orderId){var imagesS=jQuery("#"+inputId,jQuery("#"+inputId+"plupload-upload-ui").parent()).val(),images=imagesS.split("::"),img_arr=images[orderId].split("|"),image_url=img_arr[0],image_id=img_arr[1],image_title=geodir_esc_entities(jQuery("#gd-image-meta-title").val()),image_caption=geodir_esc_entities(jQuery("#gd-image-meta-caption").val());images[orderId]=image_url+"|"+image_id+"|"+image_title+"|"+image_caption;imagesS=images.join("::");jQuery("#"+inputId,jQuery("#"+inputId+"plupload-upload-ui").parent()).val(imagesS).trigger("change");plu_show_thumbs(inputId);jQuery("#gd-image-meta-input").modal("hide")}
\ No newline at end of file
diff --git a/assets/js/geodirectory-plupload.js b/assets/js/geodirectory-plupload.js
index 84308269..dd09907b 100644
--- a/assets/js/geodirectory-plupload.js
+++ b/assets/js/geodirectory-plupload.js
@@ -344,7 +344,7 @@ function plu_show_thumbs(imgId) {
var file_display = '';
var file_display_class = '';
- if (file_ext == 'jpg' || file_ext == 'jpe' || file_ext == 'jpeg' || file_ext == 'png' || file_ext == 'gif' || file_ext == 'bmp' || file_ext == 'ico' || file_ext == 'webp') {
+ if (file_ext == 'jpg' || file_ext == 'jpe' || file_ext == 'jpeg' || file_ext == 'png' || file_ext == 'gif' || file_ext == 'bmp' || file_ext == 'ico' || file_ext == 'webp' || file_ext == 'svg') {
file_display = '';
if(!!image_title.trim()){
image_title_html = '' + image_title + '';
diff --git a/assets/js/geodirectory-plupload.min.js b/assets/js/geodirectory-plupload.min.js
index bf6f4406..6a1cd902 100644
--- a/assets/js/geodirectory-plupload.min.js
+++ b/assets/js/geodirectory-plupload.min.js
@@ -1 +1 @@
-jQuery.fn.exists=function(){return jQuery(this).length>0};jQuery(document).ready(function($){if($(".plupload-upload-uic").exists()){var pconfig=false;var msgErr="";var post_id="";if(jQuery("#geodirectory-add-post input[name='ID']").length){post_id=jQuery("#geodirectory-add-post input[name='ID']").val()}else{post_id=jQuery("#post input[name='post_ID']").val()}$(".plupload-upload-uic").each(function(){var $this=$(this);var id1=$this.attr("id");var imgId=id1.replace("plupload-upload-ui","");plu_show_thumbs(imgId);pconfig=JSON.parse(geodir_plupload_params.base_plupload_config);pconfig["browse_button"]=imgId+pconfig["browse_button"];pconfig["container"]=imgId+pconfig["container"];if(jQuery("#"+imgId+"dropbox").length){pconfig["drop_element"]=imgId+"dropbox"}pconfig["file_data_name"]=imgId+pconfig["file_data_name"];pconfig["multipart_params"]["imgid"]=imgId;pconfig["multipart_params"]["post_id"]=post_id;if($this.hasClass("plupload-upload-uic-multiple")){pconfig["multi_selection"]=true}var allowed_exts=jQuery("#"+imgId+"_allowed_types").val();allowed_exts=allowed_exts&&allowed_exts!=""?allowed_exts:"";if(imgId=="post_images"&&typeof geodir_params.gd_allowed_img_types!="undefined"&&geodir_params.gd_allowed_img_types!=""){allowed_exts=geodir_params.gd_allowed_img_types}if(allowed_exts&&allowed_exts!=""){var txt_all_files=typeof geodir_params.txt_all_files!="undefined"&&geodir_params.txt_all_files!=""?geodir_params.txt_all_files:"Allowed files";pconfig["filters"]=[{title:txt_all_files,extensions:allowed_exts}]}var uploader=new plupload.Uploader(pconfig);uploader.bind("Init",function(up){});uploader.bind("Init",function(up,params){if(uploader.features.dragdrop){var drop_id=imgId+"dropbox";var target=jQuery("#"+drop_id);target.on("dragenter",function(event){target.addClass("dragover")});target.on("dragleave",function(event){target.removeClass("dragover")});target.on("drop",function(){target.removeClass("dragover")})}if($this.find(".moxie-shim").length)$this.find(".moxie-shim").css({"position":"initial"})});uploader.init();uploader.bind("UploadFile",function(up,file){if(imgId=="post_images"){window.geodirUploading=true}});uploader.bind("UploadComplete",function(up,files){if(imgId=="post_images"){window.geodirUploading=false}});uploader.bind("Error",function(up,files){if(imgId=="post_images"){window.geodirUploading=false}if(files.code==-600){jQuery("#"+imgId+"upload-error").addClass("upload-error");if(typeof geodir_params.err_max_file_size!="undefined"&&geodir_params.err_max_file_size!=""){msgErr=geodir_params.err_max_file_size}else{msgErr="File size error : You tried to upload a file over %s"}msgErr=msgErr.replace("%s",geodir_plupload_params.upload_img_size);jQuery("#"+imgId+"upload-error").html(msgErr)}else if(files.code==-601){jQuery("#"+imgId+"upload-error").addClass("upload-error");if(typeof geodir_params.err_file_type!="undefined"&&geodir_params.err_file_type!=""){msgErr=geodir_params.err_file_type}else{msgErr="File type error. Allowed file types: %s"}if(imgId=="post_images"){var txtReplace=allowed_exts!=""?"."+allowed_exts.replace(/,/g,", ."):"*";msgErr=msgErr.replace("%s",txtReplace)}else{msgErr=msgErr.replace("%s",jQuery("#"+imgId+"_allowed_types").attr("data-exts"))}jQuery("#"+imgId+"upload-error").html(msgErr)}else{jQuery("#"+imgId+"upload-error").addClass("upload-error");jQuery("#"+imgId+"upload-error").html(files.message)}});uploader.bind("FilesAdded",function(up,files){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());var limitImg=parseInt(jQuery("#"+imgId+"image_limit").val());jQuery("#"+imgId+"upload-error").html("");jQuery("#"+imgId+"upload-error").removeClass("upload-error");if(limitImg&&$this.hasClass("plupload-upload-uic-multiple")&&limitImg>0){if(totalImg>=limitImg&&limitImg>0){while(up.files.length>0){up.removeFile(up.files[0])}if(typeof geodir_params.err_file_upload_limit!="undefined"&&geodir_params.err_file_upload_limit!=""){msgErr=geodir_params.err_file_upload_limit}else{msgErr="You have reached your upload limit of %s files."}msgErr=msgErr.replace("%s",limitImg);jQuery("#"+imgId+"upload-error").addClass("upload-error");jQuery("#"+imgId+"upload-error").html(msgErr);return false}if(up.files.length>limitImg&&limitImg>0){while(up.files.length>0){up.removeFile(up.files[0])}if(typeof geodir_params.err_pkg_upload_limit!="undefined"&&geodir_params.err_pkg_upload_limit!=""){msgErr=geodir_params.err_pkg_upload_limit}else{msgErr="You may only upload %s files with this package, please try again."}msgErr=msgErr.replace("%s",limitImg);jQuery("#"+imgId+"upload-error").addClass("upload-error");jQuery("#"+imgId+"upload-error").html(msgErr);return false}}$.each(files,function(i,file){$this.find(".filelist").append(''+file.name+" (
"+plupload.formatSize(0)+"/"+plupload.formatSize(file.size)+") "+'
')});up.refresh();up.start()});uploader.bind("UploadProgress",function(up,file){$("#"+file.id+" .fileprogress").width(file.percent+"%");$("#"+file.id+" span").html(plupload.formatSize(parseInt(file.size*file.percent/100)))});var timer;var i=0;var indexes=new Array;uploader.bind("FileUploaded",function(up,file,response){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());indexes[i]=up;clearInterval(timer);timer=setTimeout(function(){},1e3);i++;$("#"+file.id).fadeOut();response=response["response"];if($this.hasClass("plupload-upload-uic-multiple")){totalImg++;jQuery("#"+imgId+"totImg").val(totalImg);var v1=$.trim($("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val());if(v1){v1=v1+"::"+response}else{v1=response}$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(v1).trigger("change")}else{$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(response+"").trigger("change")}plu_show_thumbs(imgId)})})}});function geodir_esc_entities(str){str=geodir_decode_entities(str);var entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(str).replace(/[&<>"'`=\/]/g,function(s){return entityMap[s]})}function geodir_decode_entities(str){if(!str){return str}var entityMap={"&":"&","<":"<",">":">",""":'"',"'":"'","/":"/","`":"`","=":"="};for(k in entityMap){var pat=new RegExp(k,"g");str=str.replace(pat,entityMap[k])}return str}function geodir_remove_file_index(indexes){for(var i=0;i0){indexes[i].removeFile(indexes[i].files[0])}}}function plu_show_thumbs(imgId){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());var limitImg=parseInt(jQuery("#"+imgId+"image_limit").val());var $=jQuery;var thumbsC=$("#"+imgId+"plupload-thumbs");thumbsC.html("");var imagesS=$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val();var txtRemove="Remove";if(typeof geodir_params.action_remove!="undefined"&&geodir_params.action_remove!=""){txtRemove=geodir_params.action_remove}if(!imagesS){return}var images=imagesS.split("::");for(var i=0;i';if(!!image_title.trim()){image_title_html=''+image_title+""}if(!!image_caption.trim()){image_caption_html=''+image_caption+""}}else{var file_type_class="fa-file";if(file_ext=="pdf"){file_type_class="fa-file-pdf"}else if(file_ext=="zip"||file_ext=="tar"){file_type_class="fa-file-archive"}else if(file_ext=="doc"||file_ext=="odt"){file_type_class="fa-file-word"}else if(file_ext=="txt"||file_ext=="text"){file_type_class="fa-file"}else if(file_ext=="csv"||file_ext=="ods"||file_ext=="ots"){file_type_class="fa-file-excel"}else if(file_ext=="avi"||file_ext=="mp4"||file_ext=="mov"){file_type_class="fa-file-video"}file_display_class="file-thumb";file_display=''}var thumb=$(''+image_title_html+file_display+image_caption_html+'
'+''+''+"
"+"
");thumbsC.append(thumb);thumb.find(".thumbremovelink").on("click",function(){if(jQuery("#"+imgId+"plupload-upload-ui").hasClass("plupload-upload-uic-multiple")){totalImg--;jQuery("#"+imgId+"totImg").val(totalImg)}jQuery("#"+imgId+"upload-error").html("");jQuery("#"+imgId+"upload-error").removeClass("upload-error");var ki=$(this).attr("id").replace("thumbremovelink"+imgId,"");ki=parseInt(ki);var kimages=[];imagesS=$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val();images=imagesS.split("::");for(var j=0;j0&&!(limitImg>i)){thumb.find(".thumbremovelink").trigger("click")}}}if(images.length>1){thumbsC.sortable({update:function(event,ui){var kimages=[];thumbsC.find(".gd-file-info").each(function(){kimages[kimages.length]=$(this).data("src")+"|"+$(this).data("id")+"|"+$(this).data("title")+"|"+$(this).data("caption");$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(kimages.join("::")).trigger("change");plu_show_thumbs(imgId)})}});thumbsC.disableSelection()}var kimages=[];thumbsC.find(".gd-file-info").each(function(){kimages[kimages.length]=$(this).data("src")+"|"+$(this).data("id")+"|"+$(this).data("title")+"|"+$(this).data("caption");$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(kimages.join("::")).trigger("change")})}function gd_edit_image_meta(input,order_id){var imagesS=jQuery("#"+input.id,jQuery("#"+input.id+"plupload-upload-ui").parent()).val();var images=imagesS.split("::");var img_arr=images[order_id].split("|");var image_title=geodir_esc_entities(img_arr[2]);var image_caption=geodir_esc_entities(img_arr[3]);var html="";html=html+"";html=html+"";html=html+"";jQuery("#gd-image-meta-input").html(html);lity("#gd-image-meta-input")}function gd_set_image_meta(input_id,order_id){var imagesS=jQuery("#"+input_id,jQuery("#"+input_id+"plupload-upload-ui").parent()).val();var images=imagesS.split("::");var img_arr=images[order_id].split("|");var image_url=img_arr[0];var image_id=img_arr[1];var image_title=geodir_esc_entities(jQuery("#gd-image-meta-title").val());var image_caption=geodir_esc_entities(jQuery("#gd-image-meta-caption").val());images[order_id]=image_url+"|"+image_id+"|"+image_title+"|"+image_caption;imagesS=images.join("::");jQuery("#"+input_id,jQuery("#"+input_id+"plupload-upload-ui").parent()).val(imagesS).trigger("change");plu_show_thumbs(input_id);jQuery("[data-lity-close]",window.parent.document).trigger("click")}
\ No newline at end of file
+jQuery.fn.exists=function(){return jQuery(this).length>0};jQuery(document).ready(function($){if($(".plupload-upload-uic").exists()){var pconfig=false;var msgErr="";var post_id="";if(jQuery("#geodirectory-add-post input[name='ID']").length){post_id=jQuery("#geodirectory-add-post input[name='ID']").val()}else{post_id=jQuery("#post input[name='post_ID']").val()}$(".plupload-upload-uic").each(function(){var $this=$(this);var id1=$this.attr("id");var imgId=id1.replace("plupload-upload-ui","");plu_show_thumbs(imgId);pconfig=JSON.parse(geodir_plupload_params.base_plupload_config);pconfig["browse_button"]=imgId+pconfig["browse_button"];pconfig["container"]=imgId+pconfig["container"];if(jQuery("#"+imgId+"dropbox").length){pconfig["drop_element"]=imgId+"dropbox"}pconfig["file_data_name"]=imgId+pconfig["file_data_name"];pconfig["multipart_params"]["imgid"]=imgId;pconfig["multipart_params"]["post_id"]=post_id;if($this.hasClass("plupload-upload-uic-multiple")){pconfig["multi_selection"]=true}var allowed_exts=jQuery("#"+imgId+"_allowed_types").val();allowed_exts=allowed_exts&&allowed_exts!=""?allowed_exts:"";if(imgId=="post_images"&&typeof geodir_params.gd_allowed_img_types!="undefined"&&geodir_params.gd_allowed_img_types!=""){allowed_exts=geodir_params.gd_allowed_img_types}if(allowed_exts&&allowed_exts!=""){var txt_all_files=typeof geodir_params.txt_all_files!="undefined"&&geodir_params.txt_all_files!=""?geodir_params.txt_all_files:"Allowed files";pconfig["filters"]=[{title:txt_all_files,extensions:allowed_exts}]}var uploader=new plupload.Uploader(pconfig);uploader.bind("Init",function(up){});uploader.bind("Init",function(up,params){if(uploader.features.dragdrop){var drop_id=imgId+"dropbox";var target=jQuery("#"+drop_id);target.on("dragenter",function(event){target.addClass("dragover")});target.on("dragleave",function(event){target.removeClass("dragover")});target.on("drop",function(){target.removeClass("dragover")})}if($this.find(".moxie-shim").length)$this.find(".moxie-shim").css({"position":"initial"})});uploader.init();uploader.bind("UploadFile",function(up,file){if(imgId=="post_images"){window.geodirUploading=true}});uploader.bind("UploadComplete",function(up,files){if(imgId=="post_images"){window.geodirUploading=false}});uploader.bind("Error",function(up,files){if(imgId=="post_images"){window.geodirUploading=false}if(files.code==-600){jQuery("#"+imgId+"upload-error").addClass("upload-error");if(typeof geodir_params.err_max_file_size!="undefined"&&geodir_params.err_max_file_size!=""){msgErr=geodir_params.err_max_file_size}else{msgErr="File size error : You tried to upload a file over %s"}msgErr=msgErr.replace("%s",geodir_plupload_params.upload_img_size);jQuery("#"+imgId+"upload-error").html(msgErr)}else if(files.code==-601){jQuery("#"+imgId+"upload-error").addClass("upload-error");if(typeof geodir_params.err_file_type!="undefined"&&geodir_params.err_file_type!=""){msgErr=geodir_params.err_file_type}else{msgErr="File type error. Allowed file types: %s"}if(imgId=="post_images"){var txtReplace=allowed_exts!=""?"."+allowed_exts.replace(/,/g,", ."):"*";msgErr=msgErr.replace("%s",txtReplace)}else{msgErr=msgErr.replace("%s",jQuery("#"+imgId+"_allowed_types").attr("data-exts"))}jQuery("#"+imgId+"upload-error").html(msgErr)}else{jQuery("#"+imgId+"upload-error").addClass("upload-error");jQuery("#"+imgId+"upload-error").html(files.message)}});uploader.bind("FilesAdded",function(up,files){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());var limitImg=parseInt(jQuery("#"+imgId+"image_limit").val());jQuery("#"+imgId+"upload-error").html("");jQuery("#"+imgId+"upload-error").removeClass("upload-error");if(limitImg&&$this.hasClass("plupload-upload-uic-multiple")&&limitImg>0){if(totalImg>=limitImg&&limitImg>0){while(up.files.length>0){up.removeFile(up.files[0])}if(typeof geodir_params.err_file_upload_limit!="undefined"&&geodir_params.err_file_upload_limit!=""){msgErr=geodir_params.err_file_upload_limit}else{msgErr="You have reached your upload limit of %s files."}msgErr=msgErr.replace("%s",limitImg);jQuery("#"+imgId+"upload-error").addClass("upload-error");jQuery("#"+imgId+"upload-error").html(msgErr);return false}if(up.files.length>limitImg&&limitImg>0){while(up.files.length>0){up.removeFile(up.files[0])}if(typeof geodir_params.err_pkg_upload_limit!="undefined"&&geodir_params.err_pkg_upload_limit!=""){msgErr=geodir_params.err_pkg_upload_limit}else{msgErr="You may only upload %s files with this package, please try again."}msgErr=msgErr.replace("%s",limitImg);jQuery("#"+imgId+"upload-error").addClass("upload-error");jQuery("#"+imgId+"upload-error").html(msgErr);return false}}$.each(files,function(i,file){$this.find(".filelist").append(''+file.name+" (
"+plupload.formatSize(0)+"/"+plupload.formatSize(file.size)+") "+'
')});up.refresh();up.start()});uploader.bind("UploadProgress",function(up,file){$("#"+file.id+" .fileprogress").width(file.percent+"%");$("#"+file.id+" span").html(plupload.formatSize(parseInt(file.size*file.percent/100)))});var timer;var i=0;var indexes=new Array;uploader.bind("FileUploaded",function(up,file,response){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());indexes[i]=up;clearInterval(timer);timer=setTimeout(function(){},1e3);i++;$("#"+file.id).fadeOut();response=response["response"];if($this.hasClass("plupload-upload-uic-multiple")){totalImg++;jQuery("#"+imgId+"totImg").val(totalImg);var v1=$.trim($("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val());if(v1){v1=v1+"::"+response}else{v1=response}$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(v1).trigger("change")}else{$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(response+"").trigger("change")}plu_show_thumbs(imgId)})})}});function geodir_esc_entities(str){str=geodir_decode_entities(str);var entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};return String(str).replace(/[&<>"'`=\/]/g,function(s){return entityMap[s]})}function geodir_decode_entities(str){if(!str){return str}var entityMap={"&":"&","<":"<",">":">",""":'"',"'":"'","/":"/","`":"`","=":"="};for(k in entityMap){var pat=new RegExp(k,"g");str=str.replace(pat,entityMap[k])}return str}function geodir_remove_file_index(indexes){for(var i=0;i0){indexes[i].removeFile(indexes[i].files[0])}}}function plu_show_thumbs(imgId){var totalImg=parseInt(jQuery("#"+imgId+"totImg").val());var limitImg=parseInt(jQuery("#"+imgId+"image_limit").val());var $=jQuery;var thumbsC=$("#"+imgId+"plupload-thumbs");thumbsC.html("");var imagesS=$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val();var txtRemove="Remove";if(typeof geodir_params.action_remove!="undefined"&&geodir_params.action_remove!=""){txtRemove=geodir_params.action_remove}if(!imagesS){return}var images=imagesS.split("::");for(var i=0;i';if(!!image_title.trim()){image_title_html=''+image_title+""}if(!!image_caption.trim()){image_caption_html=''+image_caption+""}}else{var file_type_class="fa-file";if(file_ext=="pdf"){file_type_class="fa-file-pdf"}else if(file_ext=="zip"||file_ext=="tar"){file_type_class="fa-file-archive"}else if(file_ext=="doc"||file_ext=="odt"){file_type_class="fa-file-word"}else if(file_ext=="txt"||file_ext=="text"){file_type_class="fa-file"}else if(file_ext=="csv"||file_ext=="ods"||file_ext=="ots"){file_type_class="fa-file-excel"}else if(file_ext=="avi"||file_ext=="mp4"||file_ext=="mov"){file_type_class="fa-file-video"}file_display_class="file-thumb";file_display=''}var thumb=$(''+image_title_html+file_display+image_caption_html+'
'+''+''+"
"+"
");thumbsC.append(thumb);thumb.find(".thumbremovelink").on("click",function(){if(jQuery("#"+imgId+"plupload-upload-ui").hasClass("plupload-upload-uic-multiple")){totalImg--;jQuery("#"+imgId+"totImg").val(totalImg)}jQuery("#"+imgId+"upload-error").html("");jQuery("#"+imgId+"upload-error").removeClass("upload-error");var ki=$(this).attr("id").replace("thumbremovelink"+imgId,"");ki=parseInt(ki);var kimages=[];imagesS=$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val();images=imagesS.split("::");for(var j=0;j0&&!(limitImg>i)){thumb.find(".thumbremovelink").trigger("click")}}}if(images.length>1){thumbsC.sortable({update:function(event,ui){var kimages=[];thumbsC.find(".gd-file-info").each(function(){kimages[kimages.length]=$(this).data("src")+"|"+$(this).data("id")+"|"+$(this).data("title")+"|"+$(this).data("caption");$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(kimages.join("::")).trigger("change");plu_show_thumbs(imgId)})}});thumbsC.disableSelection()}var kimages=[];thumbsC.find(".gd-file-info").each(function(){kimages[kimages.length]=$(this).data("src")+"|"+$(this).data("id")+"|"+$(this).data("title")+"|"+$(this).data("caption");$("#"+imgId,$("#"+imgId+"plupload-upload-ui").parent()).val(kimages.join("::")).trigger("change")})}function gd_edit_image_meta(input,order_id){var imagesS=jQuery("#"+input.id,jQuery("#"+input.id+"plupload-upload-ui").parent()).val();var images=imagesS.split("::");var img_arr=images[order_id].split("|");var image_title=geodir_esc_entities(img_arr[2]);var image_caption=geodir_esc_entities(img_arr[3]);var html="";html=html+"";html=html+"";html=html+"";jQuery("#gd-image-meta-input").html(html);lity("#gd-image-meta-input")}function gd_set_image_meta(input_id,order_id){var imagesS=jQuery("#"+input_id,jQuery("#"+input_id+"plupload-upload-ui").parent()).val();var images=imagesS.split("::");var img_arr=images[order_id].split("|");var image_url=img_arr[0];var image_id=img_arr[1];var image_title=geodir_esc_entities(jQuery("#gd-image-meta-title").val());var image_caption=geodir_esc_entities(jQuery("#gd-image-meta-caption").val());images[order_id]=image_url+"|"+image_id+"|"+image_title+"|"+image_caption;imagesS=images.join("::");jQuery("#"+input_id,jQuery("#"+input_id+"plupload-upload-ui").parent()).val(imagesS).trigger("change");plu_show_thumbs(input_id);jQuery("[data-lity-close]",window.parent.document).trigger("click")}
\ No newline at end of file
diff --git a/geodirectory.php b/geodirectory.php
index fc3a5e2f..5353f9fc 100644
--- a/geodirectory.php
+++ b/geodirectory.php
@@ -11,7 +11,7 @@
* Plugin Name: GeoDirectory
* Plugin URI: https://wpgeodirectory.com/
* Description: GeoDirectory - Business Directory Plugin for WordPress.
- * Version: 2.3.46
+ * Version: 2.3.47
* Author: AyeCode - WordPress Business Directory Plugins
* Author URI: https://wpgeodirectory.com
* Text Domain: geodirectory
@@ -34,7 +34,7 @@ final class GeoDirectory {
*
* @var string
*/
- public $version = '2.3.46';
+ public $version = '2.3.47';
/**
* GeoDirectory instance.
diff --git a/includes/admin/settings/class-geodir-settings-cpt-cf.php b/includes/admin/settings/class-geodir-settings-cpt-cf.php
index 99d1b5e3..54fe6584 100644
--- a/includes/admin/settings/class-geodir-settings-cpt-cf.php
+++ b/includes/admin/settings/class-geodir-settings-cpt-cf.php
@@ -595,7 +595,7 @@ public static function fields_predefined( $post_type ) {
'cat_sort' => false,
'cat_filter' => false,
'extra_fields' => array(
- 'gd_file_types' => array( 'jpg','jpe','jpeg','gif','png','bmp','ico','webp'),
+ 'gd_file_types' => geodir_image_extensions(),
'file_limit' => 1,
),
'single_use' => true,
diff --git a/includes/class-geodir-media.php b/includes/class-geodir-media.php
index f78a9a19..8448db39 100644
--- a/includes/class-geodir-media.php
+++ b/includes/class-geodir-media.php
@@ -304,12 +304,19 @@ public static function insert_attachment( $post_id, $type = 'file', $url = '', $
$file_type = $file_type_arr['type'];
} else {
$post_type = get_post_type( $post_id );
+
// Check for revisions
if ( $post_type == 'revision' ) {
$post_type = get_post_type( wp_get_post_parent_id( $post_id ) );
}
- $allowed_file_types = self::get_file_fields( $post_type );
- $allowed_file_types = isset( $allowed_file_types[ $type ] ) ? $allowed_file_types[ $type ] : array( 'jpg', 'jpe', 'jpeg', 'gif', 'png', 'bmp', 'ico', 'webp' );
+
+ $cf_file_types = self::get_file_fields( $post_type );
+
+ if ( ! empty( $cf_file_types ) && ! empty( $cf_file_types[ $type ] ) ) {
+ $allowed_file_types = $cf_file_types[ $type ];
+ } else {
+ $allowed_file_types = geodir_image_extensions();
+ }
if ( $order === 0 && $type == 'post_images' ) {
$attachment_id = media_sideload_image( $url, $post_id, $title, 'id' ); // Uses the post date for the upload time /2009/12/image.jpg
diff --git a/includes/core-functions.php b/includes/core-functions.php
index 455071dc..d333b8de 100644
--- a/includes/core-functions.php
+++ b/includes/core-functions.php
@@ -227,15 +227,7 @@ function geodir_get_search_default_button_text() {
* @package GeoDirectory
*/
function geodir_params() {
- /**
- * Filter the allowed image type extensions for post images.
- *
- * @since 1.4.7.1
- *
- * @param string $allowed_img_types The image type extensions array.
- */
- $allowed_img_types = apply_filters( 'geodir_allowed_post_image_exts', array( 'jpg', 'jpeg', 'jpe', 'gif', 'png', 'webp' ) );
-
+ $allowed_img_types = geodir_image_extensions();
$default_marker_icon = GeoDir_Maps::default_marker_icon( true );
$default_marker_size = GeoDir_Maps::get_marker_size( $default_marker_icon, array( 'w' => 20, 'h' => 34 ) );
$default_marker_width = $default_marker_size['w'];
diff --git a/includes/custom-fields/input-functions-aui.php b/includes/custom-fields/input-functions-aui.php
index 40e6905e..98ea9910 100644
--- a/includes/custom-fields/input-functions-aui.php
+++ b/includes/custom-fields/input-functions-aui.php
@@ -2411,7 +2411,7 @@ function geodir_cfi_files( $html, $cf ) {
$extra_fields = maybe_unserialize( $cf['extra_fields'] );
$file_limit = ! empty( $extra_fields ) && ! empty( $extra_fields['file_limit'] ) ? absint( $extra_fields['file_limit'] ) : 0;
$file_limit = apply_filters( "geodir_custom_field_file_limit", $file_limit, $cf, $gd_post );
- $file_types = isset( $extra_fields['gd_file_types'] ) ? maybe_unserialize( $extra_fields['gd_file_types'] ) : array( 'jpg','jpe','jpeg','gif','png','bmp','ico','webp');
+ $file_types = isset( $extra_fields['gd_file_types'] ) ? maybe_unserialize( $extra_fields['gd_file_types'] ) : geodir_image_extensions();
if ( ! empty( $file_types ) ) {
if ( is_scalar( $file_types ) ) {
diff --git a/includes/custom-fields/input-functions.php b/includes/custom-fields/input-functions.php
index 714c9b22..5a4d0a0d 100644
--- a/includes/custom-fields/input-functions.php
+++ b/includes/custom-fields/input-functions.php
@@ -1915,7 +1915,7 @@ function geodir_cfi_files( $html, $cf ) {
$file_limit = ! empty( $extra_fields ) && ! empty( $extra_fields['file_limit'] ) ? absint( $extra_fields['file_limit'] ) : 0;
$file_limit = apply_filters( "geodir_custom_field_file_limit", $file_limit, $cf, $gd_post );
- $allowed_file_types = isset( $extra_fields['gd_file_types'] ) ? maybe_unserialize( $extra_fields['gd_file_types'] ) : array( 'jpg','jpe','jpeg','gif','png','bmp','ico','webp');
+ $allowed_file_types = isset( $extra_fields['gd_file_types'] ) ? maybe_unserialize( $extra_fields['gd_file_types'] ) : geodir_image_extensions();
$display_file_types = $allowed_file_types != '' ? '.' . implode( ", .", $allowed_file_types ) : '';
if ( ! empty( $allowed_file_types ) ) {
$allowed_file_types = implode( ",", $allowed_file_types );
diff --git a/includes/custom-fields/output-functions.php b/includes/custom-fields/output-functions.php
index 14c487fc..b348243a 100644
--- a/includes/custom-fields/output-functions.php
+++ b/includes/custom-fields/output-functions.php
@@ -1614,7 +1614,7 @@ function geodir_cf_file( $html, $location, $cf, $p = '', $output = '' ) {
}
//$allowed_file_types = array('application/pdf', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'text/csv', 'text/plain');
- $image_file_types = array( 'image/jpg', 'image/jpeg', 'image/gif', 'image/png', 'image/bmp', 'image/x-icon', 'image/webp' );
+ $image_file_types = geodir_image_mime_types();
$audio_file_types = array( 'audio/mpeg', 'audio/ogg', 'audio/mp4', 'audio/vnd.wav', 'audio/basic', 'audio/mid' );
// If the uploaded file is image
diff --git a/includes/general-functions.php b/includes/general-functions.php
index 741a28ce..57b7cf04 100644
--- a/includes/general-functions.php
+++ b/includes/general-functions.php
@@ -1769,6 +1769,59 @@ function geodir_allowed_mime_types() {
);
}
+/**
+ * Retrieves the list of allowed image extensions.
+ *
+ * @since 2.3.47.
+ *
+ * @return array Array of image extensions.
+ */
+function geodir_image_extensions() {
+ $gd_mime_types = geodir_allowed_mime_types();
+
+ $image_exts = ! empty( $gd_mime_types['Image'] ) ? array_keys( $gd_mime_types['Image'] ) : array();
+
+ /**
+ * Filters the list of allowed image extensions.
+ *
+ * @since 2.3.47.
+ *
+ * @param array $image_exts Array of image extensions.
+ */
+ return apply_filters( 'geodir_allowed_post_image_exts', $image_exts );
+}
+
+/**
+ * Retrieves the list of allowed image mime types.
+ *
+ * @since 2.3.47.
+ *
+ * @return array Array of image mime types.
+ */
+function geodir_image_mime_types() {
+ $gd_mime_types = geodir_allowed_mime_types();
+
+ $mime_types = ! empty( $gd_mime_types['Image'] ) ? array_values( $gd_mime_types['Image'] ) : array();
+
+ if ( in_array( 'image/jpeg', $mime_types ) ) {
+ $mime_types[] = 'image/jpe';
+ $mime_types[] = 'image/jpg';
+ }
+
+ if ( ! empty( $mime_types ) ) {
+ $mime_types = array_unique( $mime_types );
+ }
+
+ /**
+ * Filters the list of allowed image mime types.
+ *
+ * @since 2.3.47.
+ *
+ * @param array $mime_types Array of image mime types.
+ */
+ return apply_filters( 'geodir_allowed_image_mime_types', $mime_types );
+}
+
/**
* Retrieve list of user display name for user id.
*
diff --git a/includes/helper-functions.php b/includes/helper-functions.php
index 4d147924..f38cca49 100644
--- a/includes/helper-functions.php
+++ b/includes/helper-functions.php
@@ -1402,15 +1402,15 @@ function geodir_file_relative_url( $url, $full_path = false ) {
* @return bool
*/
function geodir_is_image_file( $url ) {
- if ( !empty( $url ) ) {
- $filetype = wp_check_filetype( $url );
-
- if ( !empty( $filetype['ext'] ) && in_array( $filetype['ext'], array( 'jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp', 'tif', 'tiff', 'ico', 'webp' ) ) ) {
- return true;
- }
- }
-
- return false;
+ if ( ! empty( $url ) ) {
+ $filetype = wp_check_filetype( $url );
+
+ if ( !empty( $filetype['ext'] ) && in_array( $filetype['ext'], array( 'jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp', 'tif', 'tiff', 'ico', 'webp', 'svg' ) ) ) {
+ return true;
+ }
+ }
+
+ return false;
}
/**
diff --git a/includes/widgets/class-geodir-widget-post-images.php b/includes/widgets/class-geodir-widget-post-images.php
index 17531d64..66e42758 100644
--- a/includes/widgets/class-geodir-widget-post-images.php
+++ b/includes/widgets/class-geodir-widget-post-images.php
@@ -384,7 +384,7 @@ public function output_images( $options ) {
$design_style = ! empty( $args['design_style'] ) ? esc_attr( $args['design_style'] ) : geodir_design_style();
- if ( $this->is_preview() ) {
+ if ( $this->is_preview() || $options['type'] == 'masonry' ) {
$options['ajax_load'] = false;
}
diff --git a/languages/geodirectory-en_US.mo b/languages/geodirectory-en_US.mo
index 455ff513..7d37af70 100644
Binary files a/languages/geodirectory-en_US.mo and b/languages/geodirectory-en_US.mo differ
diff --git a/languages/geodirectory-en_US.po b/languages/geodirectory-en_US.po
index 42078701..f653e7a1 100644
--- a/languages/geodirectory-en_US.po
+++ b/languages/geodirectory-en_US.po
@@ -1,9 +1,9 @@
msgid ""
msgstr ""
-"Project-Id-Version: GeoDirectory 2.3.46\n"
+"Project-Id-Version: GeoDirectory 2.3.47\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-27 17:36+0530\n"
-"PO-Revision-Date: 2024-03-27 17:36+0530\n"
+"POT-Creation-Date: 2024-04-04 16:32+0530\n"
+"PO-Revision-Date: 2024-04-04 16:32+0530\n"
"Last-Translator: \n"
"Language-Team: AyeCode Ltd \n"
"Language: en_US\n"
@@ -428,7 +428,7 @@ msgstr ""
#: includes/admin/class-geodir-admin-blocks.php:231
#: includes/admin/class-geodir-admin-menus.php:108
#: includes/class-geodir-elementor.php:155 includes/class-geodir-privacy.php:24
-#: includes/core-functions.php:942
+#: includes/core-functions.php:934
#: includes/elementor/class-geodir-elementor-form-contact.php:128
#: includes/integrations/bricks/class-geodir-bricks.php:276
msgid "GeoDirectory"
@@ -907,7 +907,7 @@ msgstr ""
#: includes/admin/settings/class-geodir-settings-general.php:499
#: includes/admin/settings/class-geodir-settings-general.php:542
#: includes/admin/settings/class-geodir-settings-general.php:584
-#: includes/class-geodir-post-data.php:1646 includes/core-functions.php:380
+#: includes/class-geodir-post-data.php:1646 includes/core-functions.php:372
#: includes/widgets/class-geodir-widget-add-listing.php:317
#: includes/widgets/class-geodir-widget-categories.php:46
#: includes/widgets/class-geodir-widget-categories.php:109
@@ -1338,7 +1338,7 @@ msgstr ""
#: includes/admin/class-geodir-admin-conditional-fields.php:213
#: includes/admin/views/html-admin-settings-cpt-tab-item.php:9
-#: includes/core-functions.php:294
+#: includes/core-functions.php:286
msgid "Remove"
msgstr ""
@@ -1598,7 +1598,7 @@ msgstr ""
#: includes/admin/class-geodir-admin-dummy-data.php:1013
#: includes/admin/class-geodir-admin-dummy-data.php:1021
#: includes/admin/settings/class-geodir-settings-cpt-cf.php:756
-#: includes/general-functions.php:2692
+#: includes/general-functions.php:2745
msgid "Video"
msgstr ""
@@ -2200,7 +2200,7 @@ msgid "CPT Add Listing"
msgstr ""
#: includes/admin/class-geodir-admin-menus.php:241
-#: includes/core-functions.php:683
+#: includes/core-functions.php:675
msgid "GD Pages"
msgstr ""
@@ -2753,7 +2753,7 @@ msgstr ""
#: includes/admin/class-geodir-admin-settings.php:1652
#: includes/admin/views/html-notice-v2-update.php:194
-#: includes/core-functions.php:361 includes/general-functions.php:2691
+#: includes/core-functions.php:353 includes/general-functions.php:2744
#: vendor/ayecode/wp-deactivation-survey/wp-deactivation-survey.php:69
msgid "Documentation"
msgstr ""
@@ -2977,7 +2977,7 @@ msgstr ""
#: includes/admin/class-geodir-admin-setup-wizard.php:1189
#: includes/admin/class-geodir-admin-setup-wizard.php:1383
#: includes/admin/class-geodir-admin-setup-wizard.php:1563
-#: includes/core-functions.php:357
+#: includes/core-functions.php:349
msgid "Continue"
msgstr ""
@@ -3544,7 +3544,7 @@ msgstr ""
#: includes/admin/views/html-admin-settings-import-export-categories.php:211
#: includes/admin/views/html-admin-settings-import-export-listings.php:197
#: includes/admin/views/html-admin-settings-import-export-reviews.php:193
-#: includes/core-functions.php:1118 language.php:174
+#: includes/core-functions.php:1110 language.php:174
#: templates/bootstrap/map/filter-cpt.php:24
msgid "Post Type"
msgstr ""
@@ -3621,38 +3621,38 @@ msgid "The pages that should be included/excluded."
msgstr ""
#: includes/admin/class-geodir-admin-widgets.php:115
-#: includes/core-functions.php:685
+#: includes/core-functions.php:677
msgid "Add Listing Page"
msgstr ""
#: includes/admin/class-geodir-admin-widgets.php:116
-#: includes/core-functions.php:686
+#: includes/core-functions.php:678
msgid "Author Page"
msgstr ""
#: includes/admin/class-geodir-admin-widgets.php:117
-#: includes/core-functions.php:687
+#: includes/core-functions.php:679
msgid "Listing Detail Page"
msgstr ""
#: includes/admin/class-geodir-admin-widgets.php:118
-#: includes/core-functions.php:690
+#: includes/core-functions.php:682
msgid "Location Page"
msgstr ""
#: includes/admin/class-geodir-admin-widgets.php:119
-#: includes/core-functions.php:692
+#: includes/core-functions.php:684
msgid "Post Type Archive"
msgstr ""
#: includes/admin/class-geodir-admin-widgets.php:120
#: includes/admin/settings/class-geodir-settings-general.php:295
-#: includes/core-functions.php:693
+#: includes/core-functions.php:685
msgid "Search Page"
msgstr ""
#: includes/admin/class-geodir-admin-widgets.php:121
-#: includes/core-functions.php:694
+#: includes/core-functions.php:686
msgid "Taxonomies Page"
msgstr ""
@@ -4661,7 +4661,7 @@ msgstr ""
#: includes/admin/settings/class-geodir-settings-cpt-cf.php:380
#: includes/elementor/class-geodir-elementor-form-contact.php:96
#: includes/elementor/class-geodir-elementor-form-contact.php:404
-#: includes/general-functions.php:2596 language.php:53
+#: includes/general-functions.php:2649 language.php:53
msgid "Time"
msgstr ""
@@ -9079,7 +9079,7 @@ msgstr ""
#: includes/admin/views/html-notice-beta.php:14
#: includes/admin/views/html-notice-updated.php:14
-#: includes/core-functions.php:484
+#: includes/core-functions.php:476
msgid "Dismiss"
msgstr ""
@@ -9876,7 +9876,7 @@ msgstr ""
#: includes/api/class-geodir-rest-posts-controller.php:2856
#: includes/class-geodir-privacy-exporters.php:238
#: includes/class-geodir-privacy-exporters.php:303
-#: includes/core-functions.php:358
+#: includes/core-functions.php:350
#: includes/custom-fields/input-functions-aui.php:2276
#: includes/custom-fields/input-functions.php:1805
#: includes/custom-fields/output-functions.php:86
@@ -10634,18 +10634,18 @@ msgstr ""
msgid "Sun"
msgstr ""
-#: includes/business-hours-functions.php:677 includes/core-functions.php:341
+#: includes/business-hours-functions.php:677 includes/core-functions.php:333
#: includes/custom-fields/input-functions-aui.php:2340
#: includes/custom-fields/input-functions.php:1847
msgid "Closed"
msgstr ""
-#: includes/business-hours-functions.php:678 includes/core-functions.php:338
+#: includes/business-hours-functions.php:678 includes/core-functions.php:330
#: includes/custom-fields/output-functions.php:2670
msgid "Open now"
msgstr ""
-#: includes/business-hours-functions.php:679 includes/core-functions.php:339
+#: includes/business-hours-functions.php:679 includes/core-functions.php:331
msgid "Closed now"
msgstr ""
@@ -10680,7 +10680,7 @@ msgid ""
"dragging the map / marker."
msgstr ""
-#: includes/class-geodir-ajax.php:236 includes/core-functions.php:355
+#: includes/class-geodir-ajax.php:236 includes/core-functions.php:347
#: language.php:78
#: vendor/ayecode/wp-deactivation-survey/wp-deactivation-survey.php:64
#: vendor/ayecode/wp-super-duper/wp-super-duper.php:3666
@@ -10835,7 +10835,7 @@ msgstr ""
msgid "You do not have permission to access this page"
msgstr ""
-#: includes/class-geodir-auth.php:377 includes/class-geodir-media.php:1218
+#: includes/class-geodir-auth.php:377 includes/class-geodir-media.php:1225
#, php-format
msgid "Error: %s."
msgstr ""
@@ -11120,8 +11120,8 @@ msgstr ""
msgid "Enter your review comments here (required)..."
msgstr ""
-#: includes/class-geodir-comments.php:68 includes/core-functions.php:289
-#: includes/core-functions.php:335 templates/reviews.php:115
+#: includes/class-geodir-comments.php:68 includes/core-functions.php:281
+#: includes/core-functions.php:327 templates/reviews.php:115
msgid "Review text"
msgstr ""
@@ -11142,13 +11142,13 @@ msgstr ""
msgid "Your email address will not be published."
msgstr ""
-#: includes/class-geodir-comments.php:147 includes/core-functions.php:332
+#: includes/class-geodir-comments.php:147 includes/core-functions.php:324
#: templates/reviews.php:113
msgid "Leave a Review"
msgstr ""
-#: includes/class-geodir-comments.php:151 includes/core-functions.php:288
-#: includes/core-functions.php:330 templates/reviews.php:114
+#: includes/class-geodir-comments.php:151 includes/core-functions.php:280
+#: includes/core-functions.php:322 templates/reviews.php:114
msgid "Post Review"
msgstr ""
@@ -11609,14 +11609,14 @@ msgstr ""
msgid "Add your %%pt_single%% to %%sitename%%"
msgstr ""
-#: includes/class-geodir-elementor.php:463 includes/core-functions.php:345
+#: includes/class-geodir-elementor.php:463 includes/core-functions.php:337
#: includes/widgets/class-geodir-widget-single-next-prev.php:94
#: templates/bootstrap/images/images.php:241
#: templates/legacy/single/next-prev.php:12
msgid "Previous"
msgstr ""
-#: includes/class-geodir-elementor.php:467 includes/core-functions.php:346
+#: includes/class-geodir-elementor.php:467 includes/core-functions.php:338
#: includes/widgets/class-geodir-widget-single-next-prev.php:95
#: templates/bootstrap/images/images.php:245
#: templates/legacy/single/next-prev.php:13
@@ -11646,14 +11646,14 @@ msgid "Author"
msgstr ""
#: includes/class-geodir-frontend-scripts.php:119
-#: includes/core-functions.php:301
+#: includes/core-functions.php:293
#: includes/widgets/class-geodir-widget-listings.php:1186
msgid "Near:"
msgstr ""
#: includes/class-geodir-frontend-scripts.php:119
-#: includes/class-geodir-seo.php:670 includes/core-functions.php:300
-#: includes/core-functions.php:301 includes/core-functions.php:310
+#: includes/class-geodir-seo.php:670 includes/core-functions.php:292
+#: includes/core-functions.php:293 includes/core-functions.php:302
msgid "My Location"
msgstr ""
@@ -11671,27 +11671,27 @@ msgid "Search was not successful for the requested address."
msgstr ""
#: includes/class-geodir-frontend-scripts.php:443
-#: includes/core-functions.php:311
+#: includes/core-functions.php:303
msgid "Unable to find your location"
msgstr ""
#: includes/class-geodir-frontend-scripts.php:446
-#: includes/core-functions.php:312
+#: includes/core-functions.php:304
msgid "Permission denied in finding your location"
msgstr ""
#: includes/class-geodir-frontend-scripts.php:449
-#: includes/core-functions.php:313
+#: includes/core-functions.php:305
msgid "Your location is currently unknown"
msgstr ""
#: includes/class-geodir-frontend-scripts.php:452
-#: includes/core-functions.php:314
+#: includes/core-functions.php:306
msgid "Attempt to find location took too long"
msgstr ""
#: includes/class-geodir-frontend-scripts.php:455
-#: includes/core-functions.php:315
+#: includes/core-functions.php:307
msgid "Location detection not supported in browser"
msgstr ""
@@ -11900,61 +11900,61 @@ msgstr ""
msgid "No post_id or file url, file insert failed."
msgstr ""
-#: includes/class-geodir-media.php:379 includes/class-geodir-media.php:421
+#: includes/class-geodir-media.php:386 includes/class-geodir-media.php:428
msgid "Failed to insert file info to DB."
msgstr ""
-#: includes/class-geodir-media.php:513
+#: includes/class-geodir-media.php:520
msgid "No image_id, post_id or image url, image update failed."
msgstr ""
-#: includes/class-geodir-media.php:596
+#: includes/class-geodir-media.php:603
msgid "Failed to update image info to DB."
msgstr ""
-#: includes/class-geodir-media.php:727
+#: includes/class-geodir-media.php:734
msgid "Invalid URL Provided."
msgstr ""
-#: includes/class-geodir-media.php:733
+#: includes/class-geodir-media.php:740
msgid "Could not create Temporary file."
msgstr ""
-#: includes/class-geodir-media.php:1206
+#: includes/class-geodir-media.php:1213
#, php-format
msgid "Invalid URL %s."
msgstr ""
-#: includes/class-geodir-media.php:1218 includes/class-geodir-media.php:1220
+#: includes/class-geodir-media.php:1225 includes/class-geodir-media.php:1227
#, php-format
msgid "Error getting remote image %s."
msgstr ""
-#: includes/class-geodir-media.php:1241
+#: includes/class-geodir-media.php:1248
msgid "Invalid image type."
msgstr ""
-#: includes/class-geodir-media.php:1259
+#: includes/class-geodir-media.php:1266
msgid "Zero size file downloaded."
msgstr ""
-#: includes/class-geodir-media.php:1376 includes/class-geodir-media.php:1418
+#: includes/class-geodir-media.php:1383 includes/class-geodir-media.php:1425
msgid "Generate attachment metadata"
msgstr ""
-#: includes/class-geodir-media.php:1403
+#: includes/class-geodir-media.php:1410
msgid "Invalid post id!"
msgstr ""
-#: includes/class-geodir-media.php:1444
+#: includes/class-geodir-media.php:1451
msgid "Invalid attachment!"
msgstr ""
-#: includes/class-geodir-media.php:1449
+#: includes/class-geodir-media.php:1456
msgid "Attachment metadata not generated for external image!"
msgstr ""
-#: includes/class-geodir-media.php:1467
+#: includes/class-geodir-media.php:1474
#, php-format
msgid "%s not exists!"
msgstr ""
@@ -12697,18 +12697,18 @@ msgstr ""
msgid "Could not save report post."
msgstr ""
-#: includes/class-geodir-seo.php:601 includes/general-functions.php:1966
+#: includes/class-geodir-seo.php:601 includes/general-functions.php:2019
#, php-format
msgctxt "in category"
msgid "in %s"
msgstr ""
-#: includes/class-geodir-seo.php:660 includes/general-functions.php:2057
+#: includes/class-geodir-seo.php:660 includes/general-functions.php:2110
#, php-format
msgid "for %s"
msgstr ""
-#: includes/class-geodir-seo.php:676 includes/general-functions.php:2070
+#: includes/class-geodir-seo.php:676 includes/general-functions.php:2123
#, php-format
msgid "near %s"
msgstr ""
@@ -12950,505 +12950,505 @@ msgstr ""
msgid "fas fa-search"
msgstr ""
-#: includes/core-functions.php:253
+#: includes/core-functions.php:245
msgid "Field label must not be blank"
msgstr ""
-#: includes/core-functions.php:254
+#: includes/core-functions.php:246
msgid ""
"Please do not use special character and spaces in field key Variable Name."
msgstr ""
-#: includes/core-functions.php:255
+#: includes/core-functions.php:247
msgid "Field key must be unique."
msgstr ""
-#: includes/core-functions.php:256
+#: includes/core-functions.php:248
msgid "Are you sure you wish to delete this field?"
msgstr ""
-#: includes/core-functions.php:257
+#: includes/core-functions.php:249
msgid "You must move or remove child elements first."
msgstr ""
-#: includes/core-functions.php:259
+#: includes/core-functions.php:251
msgid "File has been successfully deleted."
msgstr ""
-#: includes/core-functions.php:260
+#: includes/core-functions.php:252
msgid "You do NOT have permission to delete this file."
msgstr ""
-#: includes/core-functions.php:261
+#: includes/core-functions.php:253
msgid "Order saved!"
msgstr ""
-#: includes/core-functions.php:262
+#: includes/core-functions.php:254
msgid "You do not have permission to reorder images."
msgstr ""
-#: includes/core-functions.php:263
+#: includes/core-functions.php:255
msgid "Address not found for:"
msgstr ""
-#: includes/core-functions.php:265
+#: includes/core-functions.php:257
msgid "Are you sure you wish to delete this listing?"
msgstr ""
-#: includes/core-functions.php:266
+#: includes/core-functions.php:258
msgid "Are you sure you wish to perform this action?"
msgstr ""
-#: includes/core-functions.php:267
+#: includes/core-functions.php:259
msgid ""
"Deleting the main listing of a franchise will turn all franchises in regular "
"listings. Are you sure wish to delete this main listing?"
msgstr ""
-#: includes/core-functions.php:269
+#: includes/core-functions.php:261
msgid "Error : please retry"
msgstr ""
-#: includes/core-functions.php:270
+#: includes/core-functions.php:262
msgid "Please enter listing url prefix"
msgstr ""
-#: includes/core-functions.php:271
+#: includes/core-functions.php:263
msgid "Invalid character in listing url prefix"
msgstr ""
-#: includes/core-functions.php:272
+#: includes/core-functions.php:264
msgid "Please enter location url prefix"
msgstr ""
-#: includes/core-functions.php:273
+#: includes/core-functions.php:265
msgid "Invalid character in location url prefix"
msgstr ""
-#: includes/core-functions.php:274
+#: includes/core-functions.php:266
msgid "Please enter location and category url separator"
msgstr ""
-#: includes/core-functions.php:275
+#: includes/core-functions.php:267
msgid "Invalid character in location and category url separator"
msgstr ""
-#: includes/core-functions.php:276
+#: includes/core-functions.php:268
msgid "Please enter listing detail url separator"
msgstr ""
-#: includes/core-functions.php:277
+#: includes/core-functions.php:269
msgid "Invalid character in listing detail url separator"
msgstr ""
-#: includes/core-functions.php:278
+#: includes/core-functions.php:270
msgid "Error loading listing."
msgstr ""
-#: includes/core-functions.php:279
+#: includes/core-functions.php:271
msgid "This field is required."
msgstr ""
-#: includes/core-functions.php:280
+#: includes/core-functions.php:272
msgid "Please enter valid email address."
msgstr ""
-#: includes/core-functions.php:284 includes/core-functions.php:285
+#: includes/core-functions.php:276 includes/core-functions.php:277
#: language.php:93 language.php:94
msgid ""
"A numeric value is required. Please make sure you have either dragged the "
"marker or clicked the button: Set Address On Map"
msgstr ""
-#: includes/core-functions.php:286
+#: includes/core-functions.php:278
msgid "Post Reply"
msgstr ""
-#: includes/core-functions.php:287 includes/core-functions.php:334
+#: includes/core-functions.php:279 includes/core-functions.php:326
msgid "Reply text"
msgstr ""
-#: includes/core-functions.php:290
+#: includes/core-functions.php:282
msgid "Please select star rating, you can't leave a review without stars."
msgstr ""
-#: includes/core-functions.php:291
+#: includes/core-functions.php:283
#, php-format
msgid "File size error : You tried to upload a file over %s"
msgstr ""
-#: includes/core-functions.php:292
+#: includes/core-functions.php:284
#, php-format
msgid "You have reached your upload limit of %s files."
msgstr ""
-#: includes/core-functions.php:293
+#: includes/core-functions.php:285
#, php-format
msgid "You may only upload %s files with this package, please try again."
msgstr ""
-#: includes/core-functions.php:295
+#: includes/core-functions.php:287
msgid "Allowed files"
msgstr ""
-#: includes/core-functions.php:296
+#: includes/core-functions.php:288
#, php-format
msgid "File type error. Allowed file types: %s"
msgstr ""
-#: includes/core-functions.php:298
+#: includes/core-functions.php:290
msgid "Wait..."
msgstr ""
-#: includes/core-functions.php:299
+#: includes/core-functions.php:291
msgid "Searching..."
msgstr ""
-#: includes/core-functions.php:306
+#: includes/core-functions.php:298
msgid "Start"
msgstr ""
-#: includes/core-functions.php:307
+#: includes/core-functions.php:299
msgid "Via {viaNumber}"
msgstr ""
-#: includes/core-functions.php:308 language.php:131
+#: includes/core-functions.php:300 language.php:131
msgid "Enter Your Location"
msgstr ""
-#: includes/core-functions.php:309
+#: includes/core-functions.php:301
msgid "Press Enter key to search"
msgstr ""
-#: includes/core-functions.php:316
+#: includes/core-functions.php:308
msgctxt "geodir select"
msgid "Set as default"
msgstr ""
-#: includes/core-functions.php:317
+#: includes/core-functions.php:309
msgctxt "geodir select"
msgid "No matches found"
msgstr ""
-#: includes/core-functions.php:318
+#: includes/core-functions.php:310
msgctxt "geodir select"
msgid "Loading failed"
msgstr ""
-#: includes/core-functions.php:319
+#: includes/core-functions.php:311
msgctxt "geodir select"
msgid "Please enter 1 or more characters"
msgstr ""
-#: includes/core-functions.php:320
+#: includes/core-functions.php:312
msgctxt "geodir select"
msgid "Please enter %item% or more characters"
msgstr ""
-#: includes/core-functions.php:321
+#: includes/core-functions.php:313
msgctxt "geodir select"
msgid "Please delete 1 character"
msgstr ""
-#: includes/core-functions.php:322
+#: includes/core-functions.php:314
msgctxt "geodir select"
msgid "Please delete %item% characters"
msgstr ""
-#: includes/core-functions.php:323
+#: includes/core-functions.php:315
msgctxt "geodir select"
msgid "You can only select 1 item"
msgstr ""
-#: includes/core-functions.php:324
+#: includes/core-functions.php:316
msgctxt "geodir select"
msgid "You can only select %item% items"
msgstr ""
-#: includes/core-functions.php:325
+#: includes/core-functions.php:317
msgctxt "geodir select"
msgid "Loading more results…"
msgstr ""
-#: includes/core-functions.php:326
+#: includes/core-functions.php:318
msgctxt "geodir select"
msgid "Searching…"
msgstr ""
-#: includes/core-functions.php:327
+#: includes/core-functions.php:319
msgid "Choose an image"
msgstr ""
-#: includes/core-functions.php:328
+#: includes/core-functions.php:320
msgid "Use image"
msgstr ""
-#: includes/core-functions.php:331
+#: includes/core-functions.php:323
msgid "Post reply"
msgstr ""
-#: includes/core-functions.php:333
+#: includes/core-functions.php:325
msgid "Leave a reply"
msgstr ""
-#: includes/core-functions.php:336
+#: includes/core-functions.php:328
#: includes/widgets/class-geodir-widget-recent-reviews.php:573
msgid "Read more"
msgstr ""
-#: includes/core-functions.php:337
+#: includes/core-functions.php:329
#: includes/widgets/class-geodir-widget-recent-reviews.php:573
msgid "about this listing"
msgstr ""
-#: includes/core-functions.php:340
+#: includes/core-functions.php:332
msgid "Closed today"
msgstr ""
-#: includes/core-functions.php:342
+#: includes/core-functions.php:334
msgid "This field is single use only and is already being used."
msgstr ""
-#: includes/core-functions.php:343
+#: includes/core-functions.php:335
msgid ""
"Page selections should not be the same, please correct the issue to continue."
msgstr ""
-#: includes/core-functions.php:344
+#: includes/core-functions.php:336
msgid "Please save the current setting before adding a new one."
msgstr ""
-#: includes/core-functions.php:347
+#: includes/core-functions.php:339
msgid "You may lose changes if you navigate away now!"
msgstr ""
-#: includes/core-functions.php:348
+#: includes/core-functions.php:340
#: vendor/ayecode/wp-super-duper/wp-super-duper.php:3666
msgid "Are you sure?"
msgstr ""
-#: includes/core-functions.php:349
+#: includes/core-functions.php:341
msgid "Saving..."
msgstr ""
-#: includes/core-functions.php:350
+#: includes/core-functions.php:342
msgid "Saved"
msgstr ""
-#: includes/core-functions.php:351
+#: includes/core-functions.php:343
msgid "Order saved"
msgstr ""
-#: includes/core-functions.php:352
+#: includes/core-functions.php:344
#: includes/widgets/class-geodir-widget-simple-archive-item.php:90
msgid "Preview"
msgstr ""
-#: includes/core-functions.php:353
+#: includes/core-functions.php:345
#: includes/widgets/class-geodir-widget-author-actions.php:254 language.php:128
#: templates/bootstrap/reviews/item-clean.php:107
#: templates/bootstrap/reviews/item.php:96 templates/legacy/reviews/item.php:59
msgid "Edit"
msgstr ""
-#: includes/core-functions.php:354
+#: includes/core-functions.php:346
#: includes/widgets/class-geodir-widget-author-actions.php:264 language.php:129
#: vendor/ayecode/wp-super-duper/wp-super-duper.php:3666
msgid "Delete"
msgstr ""
-#: includes/core-functions.php:356
+#: includes/core-functions.php:348
msgid "Confirm"
msgstr ""
-#: includes/core-functions.php:359
+#: includes/core-functions.php:351
msgid "Deleted"
msgstr ""
-#: includes/core-functions.php:360
+#: includes/core-functions.php:352
msgid "Google API key Error"
msgstr ""
-#: includes/core-functions.php:362
+#: includes/core-functions.php:354
msgid "Verifying API Key"
msgstr ""
-#: includes/core-functions.php:363
+#: includes/core-functions.php:355
msgid "Enable Billing"
msgstr ""
-#: includes/core-functions.php:364
+#: includes/core-functions.php:356
msgid ""
"Key invalid, you might have entered the project number instead of the API key"
msgstr ""
-#: includes/core-functions.php:365
+#: includes/core-functions.php:357
msgid "Key invalid, please double check you have entered it correctly"
msgstr ""
-#: includes/core-functions.php:366
+#: includes/core-functions.php:358
msgid "This URL is not allowed for this API Key"
msgstr ""
-#: includes/core-functions.php:367
+#: includes/core-functions.php:359
msgid "You must enable billing on your Google account."
msgstr ""
-#: includes/core-functions.php:368
+#: includes/core-functions.php:360
msgid "Brave browser shield will block this check and return a false positive"
msgstr ""
-#: includes/core-functions.php:369
+#: includes/core-functions.php:361
msgid "Are you sure want to create a new template to customize?"
msgstr ""
-#: includes/core-functions.php:378
+#: includes/core-functions.php:370
msgid "Would you like to manually set your location?"
msgstr ""
-#: includes/core-functions.php:379
+#: includes/core-functions.php:371
#: vendor/ayecode/wp-font-awesome-settings/wp-font-awesome-settings.php:741
#: vendor/ayecode/wp-font-awesome-settings/wp-font-awesome-settings.php:773
msgid "ERROR:"
msgstr ""
-#: includes/core-functions.php:381
+#: includes/core-functions.php:373
#: includes/integrations/bricks/element-image-gallery.php:197
msgid "Caption"
msgstr ""
-#: includes/core-functions.php:382
+#: includes/core-functions.php:374
msgid "Set"
msgstr ""
-#: includes/core-functions.php:388
+#: includes/core-functions.php:380
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2458
msgctxt "time ago"
msgid "ago"
msgstr ""
-#: includes/core-functions.php:389
+#: includes/core-functions.php:381
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2459
msgctxt "time ago"
msgid "after"
msgstr ""
-#: includes/core-functions.php:391
+#: includes/core-functions.php:383
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2461
msgctxt "time ago"
msgid "less than a minute"
msgstr ""
-#: includes/core-functions.php:392
+#: includes/core-functions.php:384
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2462
msgctxt "time ago"
msgid "about a minute"
msgstr ""
-#: includes/core-functions.php:393
+#: includes/core-functions.php:385
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2463
#, php-format
msgctxt "time ago"
msgid "%d minutes"
msgstr ""
-#: includes/core-functions.php:394
+#: includes/core-functions.php:386
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2464
msgctxt "time ago"
msgid "about an hour"
msgstr ""
-#: includes/core-functions.php:395
+#: includes/core-functions.php:387
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2465
#, php-format
msgctxt "time ago"
msgid "about %d hours"
msgstr ""
-#: includes/core-functions.php:396
+#: includes/core-functions.php:388
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2466
msgctxt "time ago"
msgid "a day"
msgstr ""
-#: includes/core-functions.php:397
+#: includes/core-functions.php:389
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2467
#, php-format
msgctxt "time ago"
msgid "%d days"
msgstr ""
-#: includes/core-functions.php:398
+#: includes/core-functions.php:390
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2468
msgctxt "time ago"
msgid "about a month"
msgstr ""
-#: includes/core-functions.php:399
+#: includes/core-functions.php:391
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2469
#, php-format
msgctxt "time ago"
msgid "%d months"
msgstr ""
-#: includes/core-functions.php:400
+#: includes/core-functions.php:392
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2470
msgctxt "time ago"
msgid "about a year"
msgstr ""
-#: includes/core-functions.php:401
+#: includes/core-functions.php:393
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2471
#, php-format
msgctxt "time ago"
msgid "%d years"
msgstr ""
-#: includes/core-functions.php:688
+#: includes/core-functions.php:680
msgid "Listing Preview Page"
msgstr ""
-#: includes/core-functions.php:689
+#: includes/core-functions.php:681
msgid "Listing Success Page"
msgstr ""
-#: includes/core-functions.php:691
+#: includes/core-functions.php:683
msgid "Login Page"
msgstr ""
-#: includes/core-functions.php:1115
+#: includes/core-functions.php:1107
msgid "Select search type"
msgstr ""
-#: includes/core-functions.php:1311 includes/core-functions.php:1325
+#: includes/core-functions.php:1303 includes/core-functions.php:1317
#: templates/bootstrap/search-bar/input-near.php:39
#: templates/bootstrap/search-bar/input-search.php:38
msgid "Clear field"
msgstr ""
-#: includes/core-functions.php:1659
+#: includes/core-functions.php:1651
msgid "Filesystem ERROR during mu-plugin file copy: "
msgstr ""
-#: includes/core-functions.php:1661
+#: includes/core-functions.php:1653
msgid ""
"There was a problem accessing the filesystem during copy Fast AJAX mu-plugin "
"file to mu-plugins folder."
msgstr ""
-#: includes/core-functions.php:1669
+#: includes/core-functions.php:1661
#, php-format
msgid ""
"Unable to create directory %s. Make sure its parent directory writable by "
"the server."
msgstr ""
-#: includes/core-functions.php:1673
+#: includes/core-functions.php:1665
#, php-format
msgid "Must-plugin directory %s is not writable by the server."
msgstr ""
-#: includes/core-functions.php:1681
+#: includes/core-functions.php:1673
msgid ""
"There was a problem in copy Fast AJAX mu-plugin file to mu-plugins folder."
msgstr ""
@@ -14139,7 +14139,7 @@ msgstr ""
msgid "First"
msgstr ""
-#: includes/general-functions.php:248 includes/general-functions.php:2599
+#: includes/general-functions.php:248 includes/general-functions.php:2652
msgid "Second"
msgstr ""
@@ -14159,122 +14159,122 @@ msgstr ""
msgid "Given image size is not valid"
msgstr ""
-#: includes/general-functions.php:2205
+#: includes/general-functions.php:2258
#, php-format
msgid "Page %1$d of %2$d"
msgstr ""
-#: includes/general-functions.php:2595
+#: includes/general-functions.php:2648
msgid "Choose Time"
msgstr ""
-#: includes/general-functions.php:2597
+#: includes/general-functions.php:2650
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2306
msgid "Hour"
msgstr ""
-#: includes/general-functions.php:2598
+#: includes/general-functions.php:2651
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2307
msgid "Minute"
msgstr ""
-#: includes/general-functions.php:2600
+#: includes/general-functions.php:2653
msgid "Millisecond"
msgstr ""
-#: includes/general-functions.php:2601
+#: includes/general-functions.php:2654
msgid "Microsecond"
msgstr ""
-#: includes/general-functions.php:2602
+#: includes/general-functions.php:2655
msgid "Time Zone"
msgstr ""
-#: includes/general-functions.php:2603
+#: includes/general-functions.php:2656
msgid "Now"
msgstr ""
-#: includes/general-functions.php:2604
+#: includes/general-functions.php:2657
msgid "Done"
msgstr ""
-#: includes/general-functions.php:2605 includes/helper-functions.php:693
+#: includes/general-functions.php:2658 includes/helper-functions.php:693
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2301
msgid "AM"
msgstr ""
-#: includes/general-functions.php:2606 includes/helper-functions.php:694
+#: includes/general-functions.php:2659 includes/helper-functions.php:694
#: vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php:2302
msgid "PM"
msgstr ""
-#: includes/general-functions.php:2634
+#: includes/general-functions.php:2687
msgid "View: Grid 1"
msgstr ""
-#: includes/general-functions.php:2634
+#: includes/general-functions.php:2687
msgid "Grid View (One Column)"
msgstr ""
-#: includes/general-functions.php:2635
+#: includes/general-functions.php:2688
msgid "View: Grid 2"
msgstr ""
-#: includes/general-functions.php:2635
+#: includes/general-functions.php:2688
msgid "Grid View (Two Columns)"
msgstr ""
-#: includes/general-functions.php:2636
+#: includes/general-functions.php:2689
msgid "View: Grid 3"
msgstr ""
-#: includes/general-functions.php:2636
+#: includes/general-functions.php:2689
msgid "Grid View (Three Columns)"
msgstr ""
-#: includes/general-functions.php:2637
+#: includes/general-functions.php:2690
msgid "View: Grid 4"
msgstr ""
-#: includes/general-functions.php:2637
+#: includes/general-functions.php:2690
msgid "Grid View (Four Columns)"
msgstr ""
-#: includes/general-functions.php:2638
+#: includes/general-functions.php:2691
msgid "View: Grid 5"
msgstr ""
-#: includes/general-functions.php:2638
+#: includes/general-functions.php:2691
msgid "Grid View (Five Columns)"
msgstr ""
-#: includes/general-functions.php:2639
+#: includes/general-functions.php:2692
#: templates/bootstrap/loop/select-layout.php:108
#: templates/loop/select-layout.php:118
msgid "View: List"
msgstr ""
-#: includes/general-functions.php:2639
+#: includes/general-functions.php:2692
msgid "List view"
msgstr ""
-#: includes/general-functions.php:2690
+#: includes/general-functions.php:2743
msgid "Disable hints"
msgstr ""
-#: includes/general-functions.php:2693
+#: includes/general-functions.php:2746
msgid "Feedback"
msgstr ""
-#: includes/general-functions.php:2694
+#: includes/general-functions.php:2747
msgid "Admin Hints:"
msgstr ""
-#: includes/general-functions.php:2754 includes/general-functions.php:2768
+#: includes/general-functions.php:2807 includes/general-functions.php:2821
msgid "meters"
msgstr ""
-#: includes/general-functions.php:2757 includes/general-functions.php:2771
+#: includes/general-functions.php:2810 includes/general-functions.php:2824
msgid "feet"
msgstr ""
diff --git a/readme.txt b/readme.txt
index cebdd88b..d988585e 100644
--- a/readme.txt
+++ b/readme.txt
@@ -4,7 +4,7 @@ Donate link: https://wpgeodirectory.com
Tags: business directory, listings, directory plugin, classifieds, directory, member directory, company directory, team directory, chamber of commerce business directory, church directory, address book, contact directory, local business directory, listings directory, link directory
Requires at least: 4.5
Tested up to: 6.5
-Stable tag: 2.3.46
+Stable tag: 2.3.47
Requires PHP: 5.6
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -305,6 +305,10 @@ We don't offer free trials, but we have a 30-day money-back guarantee if you are
__WARNING: GDv2 is a significant update over GDv1 and may require manual work, such as adding widgets to sidebars to recreate your current layout. As always, we recommend trying this on a staging site first. [Learn more](https://docs.wpgeodirectory.com/article/260-upgrading-from-gdv1-to-gdv2)__
+= GeoDirectory v2.3.47 - 2024-04-04 =
+* GD images don't allows .svg images even WP media allows - FIXED
+* GD > Post Images masonry is not working when AJAX load option active - FIXED
+
= GeoDirectory v2.3.46 - 2024-03-27 =
* GD > Best Of dropdown shows &(ampersand) incorrectly - FIXED
* Added jobs dummy data type - ADDED