Tinymce4 file picker callback-возврат дополнительных параметров
Я использую свой собственный пользовательский выбор файлов с новой функцией file_picker_callback TinyMCE 4. Документация об этом не велика, поэтому кредит идет Фреду за то, что он довел меня до этого - https://stackoverflow.com/a/24571800/2460995
пользовательский выбор файлов работает, и при нажатии на изображение он заполняет "источник", а также "размеры". Мне просто интересно, есть ли способ автоматически заполнить поле "описание изображения" как что ж.
информация для изображений генерируется из таблицы базы данных, так у меня уже есть описание и было бы неплохо, чтобы автоматически заполнить его для пользователя. Попробовав различные способы передачи данных, я пытаюсь понять, как это можно сделать.
код для TinyMCE:
tinymce.init({
...
file_picker_callback: function(callback, value, meta) {
myImagePicker(callback, value, meta);
}
});
function myImagePicker(callback, value, meta) {
tinymce.activeEditor.windowManager.open({
title: 'Image Browser',
url: '/media/browser/1?type=' + meta.filetype,
width: 800,
height: 550,
}, {
oninsert: function (url) {
callback(url);
}
});
};
код для пользовательского выбора файлов:
$(function(){
$('.img').on('click', function(event){
mySubmit('/upload/' + $(this).data('filename'));
});
});
function mySubmit(url) {
top.tinymce.activeEditor.windowManager.getParams().oninsert(url);
top.tinymce.activeEditor.windowManager.close();
}
мои знания javascript еще не самые большие, поскольку я совершенно новичок в этом, поэтому, если бы вы могли пожалуйста, проиллюстрируйте любые ответы примерами и / или четкой логикой, которые были бы очень полезны и высоко оценены.
1 ответов
у меня была такая же проблема, и придумал следующее решение:
-
обновить до ):
function myImagePicker(callback, value, meta) { tinymce.activeEditor.windowManager.open({ title: 'Image Browser', url: '/media/browser/1?type=' + meta.filetype, width: 800, height: 550, }, { oninsert: function (url, objVals) { callback(url, objVals); } }); };
-
обновить
mySubmit
функция быть (обратите внимание наobjVals
параметр, который передается вoninsert
):function mySubmit (url, objVals) { top.tinymce.activeEditor.windowManager.getParams().oninsert(url, objVals); top.tinymce.activeEditor.windowManager.close(); return false; }
-
обновите места, которые вы называете
mySubmit
заполнитьobjVals
объект.например:
mySubmit("https://google.com", { text: "Go To Google", target: '_blank' });
свойства для заполнения для
objVals
изменение в зависимости от типа вызывающего диалога и (частично) документировано здесь.для диалога ссылке:
mySubmit("https://google.com", { text: "Go To Google", target: '_blank' });
для диалогового окна изображения:
mySubmit("image.jpg", { alt: "My image" });
для mediadialog:
mySubmit("movie.mp4", {source2: 'movie-alt.ogg', poster: 'movie-image.jpg'});