给客户做的一个网站,用的动易SiteFactory,用户是一个学校的,现在需要支持在SiteFactory中粘贴WORD公式,公式都是一些图片,粘贴后将公式图片自动上传到服务器中,然后在编辑器中显示图片。
动易SiteFactory编辑器是用的百度UE富文本编辑器-ueditor,研究了一下也就是需要为百度UE编辑器增加这个功能,决定以插件的方式来实现,在编辑器中单独增加一个插件来实现word公式粘贴。
WordPaster-CKEditor3.x示例
1.将WordPaster文件夹上传到服务器中
2.将ckeditor\plugins\excelpaster上传到Editor\plugins\
3.将ckeditor\plugins\imagepaster上传到Editor\plugins\
4.修改config.js文件,增加插件代码。
新增如下代码:
/*
Copyright (c) 2003-2011, CKSource – Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or [url]http://ckeditor.com/license[/url]
*/
CKEDITOR.editorConfig = function(config) {
// Define changes to default configuration here. For example:
// config.language = ‘fr’;
// config.uiColor = ‘#AADC6E’;
config.extraPlugins = ‘imagepaster,excelpaster’; //扩展插件-WordPaster
};
5.为ContentFull工具栏增加WordPaster插件图标
增加下图中红框中的代码。(说明:建议在ckeditor.js中搜索所有PasteFromWord按钮,然后在其右侧增加’imagepaster’粘贴按钮)
6.修改demo中的upload.aspx代码,将upload文件夹改为UploadFiles,这样做是与SiteFactory兼容。
重新编译upload.aspx,并将bin文件夹的CKEditor353.dll上传到服务器的bin文件夹中
7.将demo中的upload.aspx文件上传到服务器根目录。
6.修改Content.aspx文件,增加插件代码。
示例代码:
<link type=”text/css” rel=”Stylesheet” href=”/WordPaster/css/WordPaster.css”/>
<link type=”text/css” rel=”stylesheet” href=”/WordPaster/css/ui-lightness/jquery-ui-.custom.css” />
<script type=”text/javascript” src=”/WordPaster/js/jquery-ui-.custom.min.js”></script>
<script type=”text/javascript” src=”/WordPaster/js/WordPaster.js” charset=”utf-8″></script>
<script language=”JavaScript” type=”text/JavaScript”>
//WordPaster Begin
var pasterMgr = new PasterManager();
pasterMgr.Config[“PostUrl”] = “http://localhost:82/upload.aspx”; //将此地址换为实际服务器地址。
pasterMgr.Load();//加载控件
var edtInited = false;
CKEDITOR.on( ‘instanceReady’, function(evt) {
pasterMgr.Init(evt.editor);
} );
CKEDITOR.on( ‘currentInstance’, function() {
if(!edtInited)
{
pasterMgr.SetEditor(CKEDITOR.currentInstance);
edtInited = true;
}
} );
//WordPaster End;
整合后效果如下:
前台会员添加内容
1.为会员工具栏增加粘贴按钮
修改/Editor/ckeditor.js
搜索ContentSimple字符串并新增如下代码:
2.为会员页面增加控件
修改/User/Content/Content.aspx文件
新增如下代码:
<link type=”text/css” rel=”Stylesheet” href=”/WordPaster/css/WordPaster.css”/>
<link type=”text/css” rel=”stylesheet” href=”/WordPaster/css/ui-lightness/jquery-ui-.custom.css” />
<script type=”text/javascript” src=”/WordPaster/js/jquery-ui-.custom.min.js”></script>
<script type=”text/javascript” src=”/WordPaster/js/WordPaster.js” charset=”utf-8″></script>
<script language=”JavaScript” type=”text/JavaScript”>
<script language=”JavaScript” type=”text/JavaScript”>
//WordPaster Begin
var pasterMgr = new PasterManager();
pasterMgr.Config[“PostUrl”] = “http://localhost:82/upload.aspx”;//将此地址改为正式服务器地址。
pasterMgr.Load();//加载控件
var edtInited = false;
CKEDITOR.on( ‘instanceReady’, function(evt) {
pasterMgr.Init(evt.editor);
} );
CKEDITOR.on( ‘currentInstance’, function() {
if(!edtInited)
{
pasterMgr.SetEditor(CKEDITOR.currentInstance);
edtInited = true;
}
} );
//WordPaster End;
</script>
整合后效果如下:
常见问题:
1.为什么整合到项目中图片无法上传?
可能原因:可能上传页面有登陆验证,上传时没有添加SESSION信息,导致上传失败。可在上传页面增加SESSION参数。