thinkadmin的CKEDITOR擴展多圖上傳

!(function () {

    // 定義編輯器標準配置
    CKEDITOR.editorConfig = function (config) {
        config.language = 'zh-cn';
        config.toolbar = [
            {name: 'document', items: ['Source']},
            {name: 'styles', items: ['Font', 'FontSize']},
            {name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'RemoveFormat', 'TextColor', 'BGColor', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', 'NumberedList', 'BulletedList']},
            {name: 'uimage', items: ['Link', 'Unlink', 'Table', 'UploadImage','UploadMultiImage','UploadVideo']},
            {name: 'tools', items: ['Maximize']}
        ];
        config.allowedContent = true;
        config.extraPlugins = 'uimage,txvideo,multiimage';
        config.format_tags = 'p;h1;h2;h3;pre';
        config.removeButtons = 'Underline,Subscript,Superscript';
        config.removeDialogTabs = 'image:advanced;link:advanced';
        config.font_names = '宋體/SimSun;新宋體/NSimSun;仿宋/FangSong;楷體/KaiTi;黑體/SimHei;微軟雅黑/Microsoft YaHei;' + config.font_names;
    };

    // 自定義圖片上傳插件
    CKEDITOR.plugins.add("uimage", {
        init: function (editor) {
            editor.ui.addButton("UploadImage", {label: "上傳本地圖片", command: 'uimage', icon: 'image', toolbar: 'insert,10'});
            editor.addCommand('uimage', {
                exec: function (editor) {
                    var field = '_editor_upload_' + Math.floor(Math.random() * 100000);
                    var url = window.ROOT_URL + '/index.php/admin/plugs/upfile.html?mode=one&type=png,jpg,gif,jpeg&field=' + field;
                    $('<input type="hidden">').attr('name', field).appendTo(editor.element.$).on('change', function () {
                        var element = CKEDITOR.dom.element.createFromHtml('<img src="' + this.value + '" border="0" title="image" />');
                        editor.insertElement(element), $(this).remove();
                    });
                    $.form.iframe(url, '插入圖片');
                }
            });
        }
    });

    // 自定義多圖上傳插件
    CKEDITOR.plugins.add("multiimage", {
        init: function (editor) {
            editor.ui.addButton("UploadMultiImage", {label: "批量上傳本地圖片", command: 'umultiimage', icon: 'image', toolbar: 'insert,10'});
            editor.addCommand('umultiimage', {
                exec: function (editor) {
                    var field = '_editor_upload_' + Math.floor(Math.random() * 100000);
                    var url = window.ROOT_URL + '/index.php/admin/plugs/upfile.html?mode=mtl&type=png,jpg,gif,jpeg&field=' + field;
                    $('<input type="hidden">').attr('name', field).appendTo(editor.element.$).on('change', function () {
                        var imgList = this.value.split('|');
                        imgList.map(function (img) {
                            var element = CKEDITOR.dom.element.createFromHtml('<img src="' + img + '" border="0" title="image" />');
                            editor.insertElement(element);
                        })
                        $(this).remove();
                    });
                    $.form.iframe(url, '插入圖片');
                }
            });
        }
    });

    // 自定義視頻插入插件
    CKEDITOR.plugins.add('txvideo', {
        init: function (editor) {
            editor.ui.addButton("UploadVideo", {label: "插入HTML代碼", command: 'uvideo', icon: 'flash', toolbar: 'insert,10'});
            editor.addCommand('uvideo', {
                exec: function (editor) {
                    layer.prompt({title: '插入HTML代碼', formType: 2, area: ['600px', '300px']}, function (html, index) {
                        layer.close(index);
                        var element = CKEDITOR.dom.element.createFromHtml('<div style="text-align:center;">' + html + '</div>');
                        editor.insertElement(element);
                    });
                }
            });
        }
    });

})(); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章