مشکل افزودن تصویر در متن در پلاگین مدیامنجر
سلام. البته این گزارش خطای افزونه نیست. ولی مشکلی بود که با افزونه داشتم.
در نسخه ۱.۶ افزونه مدیامنجر با کلیک روی دکمه "درج در متن" تصویر به خوبی در محیط متن ادیتور TinyMCE وارد میشه. اما در نسخه ۱.۸.۳ با کلیک روی "درج در متن" اتفاقی نمی افته. این مشکل فقط زمانی است که پلاگین TinyMCE فعال باشه.
خیلی تلاش کردم که بدون تغییر در پلاگین مدیامنجر و صرفا با تغییر در پلاگین TinyMCE موضوع رو برطرف کنم. اما هر کاری کردم نشد.
در فایل editor.js افزونه مدیامنجر با تغییر فانکشن insertItemsIntoPost به کد زیر، مشکلم بر طرف شد. اگر توسعه دهنده صلاح بدونن این تغییر رو در نسخه بعدی اعمال کنن. اگر نه، ممنون میشم راهنمایی بفرماین پلاگین tinyMCE رو چطوری تغییر بدم.
function insertItemsIntoPost(items) {
if (!items || !items.length) {
return false;
}
var useMarkdown =
String($('form input[name=markdown]').val() || '') === '1';
/*
* TypeRenew/TinyMCE editor bridge.
*/
if (
!useMarkdown &&
typeof Typecho !== 'undefined' &&
typeof Typecho.insertFileToEditor === 'function'
) {
items.forEach(function (item) {
Typecho.insertFileToEditor(
String(item.title || ''),
String(item.resolved || item.url || ''),
!!item.isImage
);
});
schedulePreview();
return true;
}
var bridge = window.MediaManager &&
window.MediaManager.editor
? window.MediaManager.editor.insert
: null;
if (typeof bridge === 'function') {
try {
var payload = items.map(function (item) {
return {
url: String(item.resolved || item.url || ''),
title: String(item.title || ''),
isImage: !!item.isImage,
cid: item.cid > 0 ? item.cid : 0
};
});
if (bridge(payload, useMarkdown) === true) {
schedulePreview();
return true;
}
} catch (e) {
/* پل جانشین خطا داد → مسیر پیشفرض textarea */
}
}
var snippets = items.map(function (item) {
return buildInsertSnippet(item, useMarkdown);
});
insertAtCursor(snippets.join('\n'));
schedulePreview();
return true;
}