انجمن پرسش و پاسخ

پرسش‌های خود را بپرسید؛ کاربران و مدیران پاسخ می‌دهند.

  • ۲۸ پرسش
  • ۹۴ پاسخ
  • ۵ عضو
امین ۲۹ بازدید گزارش خطا

مشکل افزودن تصویر در متن در پلاگین مدیامنجر

سلام. البته این گزارش خطای افزونه نیست. ولی مشکلی بود که با افزونه داشتم.
در نسخه ۱.۶ افزونه مدیامنجر با کلیک روی دکمه "درج در متن" تصویر به خوبی در محیط متن ادیتور 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;
}
پوردریایی

این مشکل فقط با ادیتور TinyMCE داره ؟؟ یا با پیش‌فرض هم اینطوره؟؟ یا با ویرایشگر نگارش؟ فکر میکنم این دو مشکل ندارند

امین

آره فقط با TinyMCE هستش. با نگارش و پیشفرض مشکلی نداره.

پوردریایی

خب این نمیتونه باگ حساب کنیم چون API این دو پلاگین با هم متفاوت هست البته با CKEditor هم همین رفتار رو داره

۳ پاسخ در این پرسش

پاسخ خود را بنویسید