前两天看见dudu把编辑器CuteEditor升级到4.5版了ttp://www.cnblogs.com/dudu/archive/2005/06/25/181192.html
DNN中使用的是编辑器是FreeTextBox(即:ftb),它里面没有将图片上传到服务器的功能(纠正一下:FreeTextBox有图片上传功能,只是没有默认给出,需要修改provider。详见:如何开启ftb的图片上传和创建目录功能),其他功能好像也没有CuteEditor丰富。我想DNN既然可以支持ftb,就应该是能够支持CuteEditor的(同是第三方控件)。上CuteEditor的官方网站(http://cutesoft.net/)一看,还真可以支持DNN(在线演示http://dnn3.cutesoft.net/)。
Go!Down下来试试。我下的是Cute Editor for DotNetNuke 3.0.0 - 3.0.13版,Cute Editor for DotNetNuke 3.1版的安装和它一样。下载下来后解压后查看,有安装说明有相关文档,实在是太好了。
安装安装说明的步骤如下:(原文:在解压后的document文件夹下的DotNetNuke-Integration.htm)
1、将解压后的Providers\HtmlEditorProviders文件夹中的CEHtmlEditorProvider文件夹中的内容全部Copy到DNN程序的Providers\HtmlEditorProviders文件夹下。
2、将以下解压后的bin文件夹下的CuteEditor.dll 、DotNetNuke.CEHtmlEditorProvider.dll 、NetSpell.SpellChecker.dll 、CuteEditor.lic全部Copy到DNN程序的bin文件夹下
3、修改配置文件,在web.config中找到htmlEditor节点,将它里面的内容替换如下。记住将htmlEditor节点的defaultProvider属性修改为CEHtmlEditorProvider。
<providers>
<clear/>
<add name="CEHtmlEditorProvider"
type="DotNetNuke.HtmlEditor.CEHtmlEditorProvider, DotNetNuke.CEHtmlEditorProvider"
providerPath="~\Providers\HtmlEditorProviders\CEHtmlEditorProvider\CuteSoft_Client\CuteEditor\"
UseDNNRootImageDirectory="true"
RemoveServerNamesFromUrl="true"
EnableStripScriptTags="true"
RemoveTBODYTag="false"
ShowCodeViewToolBar="true"
UseRelativeLinks="true" RenderRichDropDown="true"
UseSimpleAmpersand="false"
MaxHTMLLength="0"
MaxTextLength="0"
CustomCulture=""
ThemeType="Office2003_BlueTheme"
DisableAutoFormatting="false"
DisableClassList=""
HelpUrl=""
BreakElement="div"
EditorBodyStyle=""
Admin_AutoConfigure = "Full"
Admin_SecurityPolicyFile = "admin.config"
Admin_DisableItemList = ""
Admin_AllowPasteHtml = "true"
Admin_EditorOnPaste = "default"
Admin_ReadOnly = "false"
Admin_ShowBottomBar ="true"
Admin_ShowHtmlMode = "true"
Admin_ShowPreviewMode = "true"
Registered_AutoConfigure = "Simple"
Registered_SecurityPolicyFile = "default.config"
Registered_DisableItemList = ""
Registered_AllowPasteHtml = "true"
Registered_EditorOnPaste = "default"
Registered_ReadOnly = "false"
Registered_ShowBottomBar ="true"
Registered_ShowHtmlMode = "true"
Registered_ShowPreviewMode = "true"
Guest_AutoConfigure = "Full"
Guest_SecurityPolicyFile = "admin.config"
Guest_DisableItemList = "Save"
Guest_AllowPasteHtml = "true"
Guest_EditorOnPaste = "default"
Guest_ReadOnly = "false"
Guest_ShowBottomBar ="true"
Guest_ShowHtmlMode = "true"
Guest_ShowPreviewMode = "true"
/>
</providers>
</htmlEditor>
4、OK,如果你的DNN程序时已网站形式发布的到这里就安装完毕了。(应该是好了,我的是以虚拟目录形式发布的所以还要继续往下看)
5、如果你的DNN程序是以虚拟目录形式发布的,那么使用时会报错。如:F:\Inetpub\wwwroot\Portals\0\Admin目录无权访问。这应该是路径问题,将路径前加上"~"表示从根路径起就可以解决这个问题。
6、双击打开Provider.CEHtmlEditorProvider.vbproj项目,会有两个引用错误。分别修改这两个引用DotNetNuk(添加DNN程序Bin文件夹中的DotNetNuk.dll)和CuteEditor(添加CEHtmlEditorProvider\bin中的CuteEditor.dll)。如何添加引用不用多讲吧!
7、打开CEHtmlEditorProvider.vb,修改
RootImageDirectory = _portalSettings.HomeDirectory.Substring(_portalSettings.HomeDirectory.IndexOf("/Portals/"))
为
RootImageDirectory = "~" & _portalSettings.HomeDirectory.Substring(_portalSettings.HomeDirectory.IndexOf("/Portals/"))
即可。
8、重新编译一下,将编译后的DotNetNuke.CEHtmlEditorProvider.dll复制到DNN程序根目录下的Bin中。
9、再次运行程序,OK。CuteEditor可以用了,界面如下:
10、博客园中,每一个用户上传的文件都在各自同名的文件夹下,要在DNN中实现需将CEHtmlEditorProvider.vb文件中的
If Isadmin Then
tempfolder = ""
ElseIf Isregistered Then
tempfolder = "Member"
End If
改为
If Isadmin Then
tempfolder = ""
ElseIf Isregistered Then
tempfolder = "Member"
' 如果是注册用则将图片或文件上传到与用户名同名的文件夹
Dim objUserInfo As UserInfo = UserController.GetCurrentUserInfo
If objUserInfo.UserID <> -1 Then
tempfolder = tempfolder & "/" & objUserInfo.Username.ToString
End If
End If
记得要添加引用:Imports DotNetNuke.Entities.Users。重复步骤8即可。
大家都装着试试,看看还有没有新的问题。dudu肯定是使用CuteEditor的高手,强烈建议他写一篇关于CuteEditor属性、参数和开发使用指南的文章。
初步看来一些关于使用富文本编辑相关的代码。主要涉及以下文件:
controls\TextEditor.ascx
Components\Providers\HTMLEditor
以及Providers\HtmlEditorProviders文件夹中的两个编辑器
从类图上分析,大概是用的策略模式,等完全分析清楚后在写文章说明。
更多相关内容>>
==========================================
作者:二十四画生
转载请注明来源于博客园——二十四画生的Blog,并保留有原文链接。