örnek json adresi ve kodlarınızı eklerseniz başlık altından yardımcı olabilirim.
tinymce.PluginManager.add('media-gallery', function(editor, url) {
var galleryInıt= function (_) {
$('#image').val('');
$.when().done(function(ajaxSend){
var veriler=JSON.parse(ajaxSend);
var string=`<input type="hidden" id="image"/>`;
$.each(veriler.veri, function(ksira, resimler) {
console.log(xx);
string+=`<div class='col-xs-4'><img class="col-xs-4 img-responsive item" src='${resimler.resim_link}'/></div>`;
});
$(".gallery-div").html(string);
});
tinyMCE.activeEditor.windowManager.open({
title: 'My Gallery', // The dialog's title - displayed in the dialog header
size: 'large',
body: {
type: 'panel', // The root body type - a Panel or TabPanel
items: [ // A list of panel components
{
type: 'htmlpanel', // A HTML panel component
html: '<div class="gallery-div"></div>'
}
]
},
buttons: [
{
type: 'cancel',
name: 'closeButton',
text: 'Cancel'
},
{
type: 'submit',
name: 'submitButton',
text: 'Insert To Editor',
primary: true
}
],
onSubmit: function (api) {
var data = api.getData();
let source = $('#image').val();
if(source != ''){
editor.focus();
editor.selection.setContent('<img src="'+source+'" />');
api.close();
}else{
alert("Please select an image.");
}
}
});
}
var ajaxFireInıt=function(){
return $.post("http://davulgablog/webdavulganet/galeri",{}, function(sonuc, durum) {
return sonuc;
});
}
$(document).on('click', '.gallery-div > .item', function () {
$('.gallery-div > .item').removeClass('active');
$(this).addClass('active');
$('#image').val($(this).attr('src'));
console.log($(this).attr('src'));
});
$(document).on('click', '.gallery-div > .item', function () {
$('.gallery-div > .item').removeClass('active');
$(this).addClass('active');
$('#image').val($(this).attr('src'));
console.log($(this).attr('src'));
});
var openDialog = function () {
return editor.windowManager.open({
title: 'Akordiyon Menü oluştur',
body: {
type: 'panel',
items: [
{
type: 'input', name: 'my_count', layout: 'flow',
label: 'Kaç Adet akordiyon Menü eklemek istersiniz?'
}
]
},
buttons: [
{
type: 'cancel',text: 'Close'
},
{
type: 'submit',text: 'Save',primary: true
}
],
onSubmit: function onsubmit(e) {
var curAccordion = Date.now();
var curAcc = [];
var accordionCount = parseInt(e.getData().my_count);
if(typeof accordionCount==="number" && accordionCount>0){
createAccordion(accordionCount-1,[]);
e.close();
}else{
e.close();
createalert({alert_title:'Hata',alert_text:"Lütfen oluşturacağınız akordiyon menü adetini giriniz",alert_level:'success',timeout:3500});
setTimeout(() => {
openDialog();
}, 3000);
}
}
});
};
var dataInsertbs5=function(veri){
var data=[];
var accordionCount=veri.length;
var accordionCurr=Date.now();
for(i=0; i<veri.length; i++){
var temp=veri[i];
var panel = `<div class="accordion-item">
<h2 class="accordion-header" id="afyheadAccordion${i}">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
${temp.baslik}
</button>
</h2>
<div id="afycollapseAccordion${i}" class="accordion-collapse collapse show" aria-labelledby="afyheadAccordion${i}" data-bs-parent="#accordionContainer${accordionCurr}">
<div class="accordion-body">
${temp.makale}
</div>
</div>
</div>`;
data.push(panel);
}
var dJoin=data.join();
var accordion = `<div class="accordion" id="accordionContainer${accordionCurr}">${dJoin} </div>`;
editor.insertContent(accordion);
return veri;
}
var dataInsert=function(veri){
var data=[];
var accordionCurr=Date.now();
for(i=0; i<veri.length; i++){
var curId="afyAccordion"+accordionCurr;
var temp=veri[i];
var ifopen=(temp.aktif==true ? " show":"");
var panel = ` <div class="card card-border">
<div class="card-header" id="${curId}heading${i}">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse"
data-target="#${curId}collapse${i}" aria-expanded="true" aria-controls="${curId}collapse${i}">
${temp.baslik}
</button>
</h2>
</div>
<div id="${curId}collapse${i}" class="collapse${ifopen}" aria-labelledby="${curId}heading${i}" data-parent="#accordionContainer${accordionCurr}">
<div class="card-body">
${temp.makale}
</div>
</div>
</div `;
data.push(panel);
}
var dJoin=data.join();
var accordion = `<div class="accordion" id="accordionContainer${accordionCurr}">${dJoin} </div>`;
editor.insertContent(accordion);
return veri;
}
var createAccordion = function (id,veri) {
return editor.windowManager.open({
title: 'Akordiyon Menü İçeriği',
body: {
type: 'panel',
items: [
{
type: 'input', name: 'acc_baslik', layout: 'flow',
label: 'Başlık'
},
{
type: 'textarea', name: 'acc_bilgi', layout: 'flow',
label: 'Makale'
},
{
type: 'checkbox', name: 'acc_ifopen', layout: 'flow',
label: 'Bu menü açık olsun'
}
]
},
buttons: [
{type: 'cancel',text: 'Close'},
{type: 'submit',name:'save_brn',text: 'Save',primary: true}
],
onSubmit: function onsubmit(e) {
var gData=e.getData();
var bilgi= gData.acc_bilgi;
var baslik= gData.acc_baslik;
var control= gData.acc_ifopen;
if(typeof bilgi !=="string" || typeof baslik !=="string"){
createalert({alert_level:'error',alert_icon:'warning',alert_text:"Veritipi hatası gelişti",timeout:3500});
return createAccordion(id,veri);
}
else if(baslik.trim().length===0 || baslik.trim().length===0){
createalert({alert_text:"Formda Boş yer bırakmayın",alert_icon:'warning',timeout:3500});
return createAccordion(id,veri);
}
else {
e.close();
createalert({alert_title:'Başarılı',alert_text:"İşlem başarılı",alert_level:'success',timeout:3500});
if(typeof id==="number"){
if(id>0){
id=id-1;
veri.push({"makale":bilgi,"baslik":baslik,"aktif":control});
return createAccordion(id,veri);;
}
else{
veri.push({"makale":bilgi,"baslik":baslik,"aktif":control});
dataInsert(veri);
}
}
return {};
}
}
});
};
var timeoutClose= function(e,time=3000){
setTimeout(() => {
e.close();
}, time);
};
var createalert=function(ayar){
var ayarlar = $.extend({
alert_title:"Hata",
alert_level:'error',
alert_text:'Bir uyarı tanımlayın',
btn_text:'Kapat',
alert_url:'',
alert_icon:'question',
timeout:3000}, ayar);
var edit= editor.windowManager.open({
title:ayarlar.alert_title,
body:{
type:'panel',
items:[{
type: 'alertbanner', // component type
level:ayarlar.alert_level,
text: ayarlar.alert_text,
url: ayarlar.alert_url,
icon: ayarlar.alert_icon
}]
},
buttons: [
{type: 'cancel',text: ayarlar.btn_text,primary:true}
]
});
timeoutClose(edit,ayarlar.timeout);
return edit;
}
editor.ui.registry.addButton('accordion', {
text: 'Akordiyon Menü',
icon: 'border-width',
onAction: function () {
openDialog();
}
});
editor.ui.registry.addMenuItem('accordion', {
text: 'Example plugin',
onAction: function() {
// Open window
openDialog();
}
});
return {
getMetadata: function () {
return {
name: "accordion plugin",
url: "http://exampleplugindocsurl.com"
};
}
};
});bu resim adresini dinamik almak istiyorum sabit olmaması lazım