CKeditor3 plugins开发

*

一,plugin-addRichCombo

plugin.js,在plugin/date/新建的

CKEDITOR.plugins.add(‘date‘, {
    init : function(editor) {

        var fnData = editor.config.fnData;

        if (!fnData || typeof (fnData) != ‘function‘)
            throw "You must provide a function to retrieve the list data.";

        editor.ui.addRichCombo(‘systemDataCmb‘, {
            allowedContent : ‘abbr[title]‘,
            label : "System Data",
            title : "System Data",
            multiSelect : false,
            init : function() {

                var self = this;

                var content = fnData();

                $.each(content, function(index, value) {
                    // value, html, text
                    self.add(value.name, value.name, value.name)
                });
            }
        });//end of addRichCombo

    }//end of init

});

*

在config.js

/**
 * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.html or http://ckeditor.com/license
 */

CKEDITOR.editorConfig = function( config ) {
    config.extraPlugins = ‘date‘;
    config.extraPlugins = ‘comboParam‘;

    config.startupFocus = true;
    config.fnData = function() {

        var returnData = [{"name":"111"},{"name":"222"},{"name":"333"}];
        /*
        //var returnData = null;

        $.ajax({
            url: "/GetData",
            async: false,
            data: { id: 1 },
        }).done(function(result) { returnData= result; });
        */
        return returnData;
    };

    // Define changes to default configuration here.
    // For the complete reference:
    // http://docs.ckeditor.com/#!/api/CKEDITOR.config

    // The toolbar groups arrangement, optimized for two toolbar rows.
    config.toolbarGroups = [
//        { name: ‘clipboard‘,   groups: [ ‘clipboard‘, ‘undo‘ ] },
//        { name: ‘editing‘,     groups: [ ‘find‘, ‘selection‘, ‘spellchecker‘ ] },
        { name: ‘links‘ },
//        { name: ‘insert‘ },
//        { name: ‘forms‘ },
//        { name: ‘tools‘ },
        { name: ‘document‘,       groups: [ ‘mode‘, ‘document‘, ‘doctools‘ ] },//source
        { name: ‘others‘ },
        ‘/‘,
        { name: ‘basicstyles‘, groups: [ ‘basicstyles‘, ‘cleanup‘ ] },
//        { name: ‘paragraph‘,   groups: [ ‘list‘, ‘indent‘, ‘blocks‘, ‘align‘, ‘bidi‘ ] },
        { name: ‘styles‘ },
//        { name: ‘colors‘ },
//        {name:‘date‘},
        {name:‘comboParam‘}
    ];

    // Remove some buttons, provided by the standard plugins, which we don‘t
    // need to have in the Standard(s) toolbar.
    config.removeButtons = ‘help‘;

    // Se the most common block elements.
    config.format_tags = ‘p;h1;h2;h3;pre‘;

    // Make dialogs simpler.
    config.removeDialogTabs = ‘image:advanced;link:advanced‘;

    //joy
    config.allowedContent=true;
    config.contentsCss = [‘LayoutIT/css/bootstrap-combined.min.css‘];

};

二,弹出的dialog里面是下拉

date.js

CKEDITOR.dialog.add(‘date‘, function(editor){
    var escape = function(value){
        return value;
    };
    var b=editor.lang.link;
    return {
        title: ‘日历控件‘,
        resizable: CKEDITOR.DIALOG_RESIZE_BOTH,
        minWidth: 300,
        minHeight: 80,
        contents: [{
            id: ‘cb‘,
            name: ‘cb‘,
            label: ‘cb‘,
            title: ‘cb‘,
            elements: [{id:"lang",type:"select",
                label:b.type,"default":"url",
                items:[[b.toUrl,"url"],[b.toAnchor,"anchor"],[b.toEmail,"email"]],
                onChange:function(){var a=this.getDialog(),
                    b=["urlOptions","anchorOptions","emailOptions"],
                    c=this.getValue(),d=a.definition.getContents("upload"),
                    d=d&&d.hidden;if(c=="url"){n.config.linkShowTargetTab&&a.showPage("target");d||a.showPage("upload")}
                    else{a.hidePage("target");d||a.hidePage("upload")}
                    for(d=0;d<b.length;d++){var e=a.getContentElement("info",b[d]);
                    if(e){e=e.getElement().getParent().getParent();b[d]==c+"Options"?e.show():e.hide()}}a.layout()},
                setup:function(a){a.type&&this.setValue(a.type)},
                commit:function(a){a.type=this.getValue()}}

            ,{
                type:‘html‘,
                html:‘<span>说明:日历控件选择的日期、时间将回填到该输入框中。</span>‘
            }]
        }],
        onOk: function(){
            lang = this.getValueOf(‘cb‘, ‘lang‘);
            editor.insertHtml("<p>" + lang + "</p>");
        },
        onLoad: function(){
        }
    };
});

plugin.js

CKEDITOR.plugins.add(‘date‘, {
    requires: [‘dialog‘],
    init: function (a) {
        var b = a.addCommand(‘date‘, new CKEDITOR.dialogCommand(‘date‘));

        a.ui.addButton(‘date‘, {
            label: ‘日历‘,
            command: ‘date‘,
            items:[[‘111‘,"url"],[‘222‘,"anchor"],[‘333‘,"email"]],
            icon: this.path + ‘images/date.png‘
        });
        CKEDITOR.dialog.add(‘date‘, this.path + ‘dialogs/date.js‘);

    }
});

显示的效果

*

时间: 2024-11-03 21:01:15

CKeditor3 plugins开发的相关文章

iOS开发 非常全的三方库、插件、大牛博客等等

UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl- XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

iOS开发之资料收集

github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOS UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者

iOS:iOS开发非常全的三方库、插件、大牛博客等等

iOS开发非常全的三方库.插件.大牛博客等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOS UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或

iOS开发--iOS及Mac开源项目和学习资料

文/零距离仰望星空(简书作者)原文链接:http://www.jianshu.com/p/f6cdbc8192ba著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 原文出处:codecloud UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字

iOS开发常用三方库、插件、知名博客等等

TimLiu-iOS   Swift版本点击这里 欢迎加入QQ交流群: 594119878 介绍 这是一个用于iOS开发的各种开源库.开源资料.开源技术等等的索引库. github排名 https://github.com/trending,github搜索:https://github.com/search 使用方法 根据目录关键字搜索,记得包含@,以保证搜索目录关键字的唯一性. 问题反馈 期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交issues即可).请广大网友只

iOS 开发第三方库全集

拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

ios开发工具 Alcatraz (一)

简介 Alcatraz是一个帮你管理Xcode插件.模版以及颜色配置的工具.它可以直接集成到Xcode的图形界面中,让你感觉就像在使用Xcode自带的功能一样. 安装和删除 使用如下的命令行来安装Alcatraz: 1 2 mkdir -p ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins; curl -L http://git.io/lOQWeA | tar xvz -C ~/Library/Application\

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

iOS、mac开源项目及库汇总

UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHou