当前位置: 首页 > 工具软件 > eWebEditor > 使用案例 >

Ewebeditor使用说明[转载]

长孙高远
2023-12-01

安装:

安装是非常容易的,首先你要做的就是把eWebEditor文件上传到你的网站,请按以下步骤进行:

从eWebEditor产品网站下载最新的版本。
解压下载下来的压缩文件到你本机(确定eWebEditor内的目录文件结构层次保持与压缩文件内一致)。
在你的站点上建一个新文件夹,如:/eWebEditor/(最好在要目录下,调用更方便)。
把eWebEditor在的所有文件及目录上传到你站点刚才建立的文件夹中。
运行例子文件(http://www.yoursite.com/ewebeditor/example/test.asp),看是否运行正常。OK。
 设置:

eWebEditor带有后台管理功能,你可以方便对样式,上传文件等进行管理。设置请注意:

后台管理的登录地址:http://www.yoursite.com/ewebeditor/admin_login.asp
第一次安装请用默认用户admin和密码admin登陆后台,并进入管理页面更改管理用户和密码
建议安装好后,更改数据库名字,以免别人恶意下载,默认数据名为db/ewebeditor.mdb,更改名字后请修改include/startup.asp文件中相关连接
系统自带有几个标准样式,不允许修改,在你新增样式时,最好先预览,然后通过“拷贝标准样式”的方式,以达到快速新增样式的目的,且不易出错
 调用:

eWebEditor的调用是非常简单,基本上只是在原来的使用中加入一行代码。

标准调用:

<iframe ID="eWebEditor1" src="/ewebeditor.asp?id=content1&style=standard" frameborder="0" scrolling="no" width="500" HEIGHT="350"></iframe>
参数说明:

/ewebeditor.asp应改为你实际安装的路径
参数id:相关联的表单项名,也就是提交保存页要引用的表单项名,多个调用时,请保证id不同,可参见后面例子
参数style:使用的样式名,可以是标准的样式名或自定义的样式名,如果使用标准standard可留空
width,height:根据实际需要设置,eWebEditor将自动调整与其适应
在后台管理中,可以得到每个样式的最佳调用代码
所有入口参数:(即:eWebEditor.asp?后面的参数)

id:相关联的保存编辑内容的表单项名,也就是提交保存页要引用的表单项名
style:使用的样式名,可以是标准的样式名或自定义的样式名,如果使用标准standard可留空
originalfilename:相关联的保存上传原文件名列表的表单项名,必须是input类型,可以带onchange事件[例子]
savefilename:相关联的保存上传保存文件名列表的表单项名,必须是input类型,可以带onchange事件[例子]
savepathfilename:相关联的保存上传保存文件名(带路径)列表的表单项名,必须是input类型,可以带onchange事件[例子]
例子:新增表单

你原来可能是:

<textarea name="content1" rows=10 cols=50></textarea>
现在是:

<input type="hidden" name="content1" value="">
<iframe ID="eWebEditor1" src="/ewebeditor.asp?id=content1&style=standard" frameborder="0" scrolling="no" width="500" HEIGHT="350"></iframe>
或者

<textarea name="content1" style="display:none"></textarea>
<iframe ID="eWebEditor1" src="/ewebeditor.asp?id=content1&style=standard" frameborder="0" scrolling="no" width="500" HEIGHT="350"></iframe>
例子:修改表单

你原来可能是:

<textarea name="content1" rows=10 cols=50><%=Server.HTMLEncode(oRs("D_Content"))%></textarea>

现在是:

<input type="hidden" name="content1" value="<%=Server.HTMLEncode(oRs("D_Content"))%>">
<iframe ID="eWebEditor1" src="/ewebeditor.asp?id=content1&style=standard" frameborder="0" scrolling="no" width="500" HEIGHT="350"></iframe>
或者

<textarea name="content1" style="display:none"><%=Server.HTMLEncode(oRs("D_Content"))%></textarea>
<iframe ID="eWebEditor1" src="/ewebeditor.asp?id=content1&style=standard" frameborder="0" scrolling="no" width="500" HEIGHT="350"></iframe>
注意事项:

eWebEditor允许在同一表单里有多个,但请保证id在整个网页中是唯一的。即如果已经用了input name=content1第二个调用就要input name=content2之类的。
在使用textarea作为原表单项时,要加入style="display:none"。
在input修改时一定要用value="",而不是value=''。
一定要在动态加入value值时用Server.HTMLEncode()进行处理,否则有可能内容被截掉。
高级调用:

eWebEditor还提供了一些高级调用的方法,如下,但请保证大小写一致:

getHTML():返回编辑器的内容
setHTML( html ):设置编辑器的内容
insertHTML( html ):在当前选择处插入内容
appendHTML( html ):在文档末尾追加内容
setMode( NewMode ):改变当前编辑状态
参数NewMode:
"CODE":代码状态
"EDIT":编辑状态
"TEXT":文本状态
"VIEW":预览状态
使用例子如下:[在线演示]

<Script Language=JavaScript>
// 取编辑器内容
var sHTML = eWebEditor1.getHTML();
// 设置编辑器内容
eWebEditor1.setHTML('<b>Hello My World!</b>');
// 在当前选择处理插入
eWebEditor1.insertHTML('This is Insert Function!');
// 在尾部追加内容
eWebEditor1.appendHTML('This is Append Function!');
// 改变编辑器状态为代码编辑状态
eWebEditor1.setMode('CODE');
</Script>
取值说明:

由于eWebEditor有对大表单进行自动处理,所以在取值时有些不同,具体如下:

原来是

<%
sContent = Request.Form("content1")
%>
现在是

<%
For i = 1 To Request.Form("content1").Count
        sContent = sContent & Request.Form("content1")(i)
Next
%>
接口:弹窗调用说明:

v2.7.5版本后加入了弹窗调用接口的扩充功能,能实现通过一个链接弹窗打开编辑器,并将编辑的内容保存入指定的表单域。

在eWebEditor根目录下文件名为PopUp.asp,提供的接口传入参数如下:


style : 样式名
form : 要返回或设置值的表单form名
field : 要返回或设置值的表单项textarea名
使用例子如下:[在线演示]

<HTML>
<BODY>
<Script Language=JavaScript>
function eWebEditorPopUp(style, form, field) {
        var oPopUp = window.open("PopUp.asp?style="+style+"&form="+form+"&field="+field, "PopUp"+form+field, "toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes");
}
</Script>
<FORM ACTION="" METHOD="" NAME="myForm">
<TEXTAREA NAME="myField" COLS="50" ROWS="5"></TEXTAREA>
<INPUT TYPE="BUTTON" VALUE="HTML编辑" ONCLICK="eWebEditorPopUp('s_popup', 'myForm', 'myField')">
</FORM>
</BODY>
</HTML>
接口:前台解释(限制)扩充功能说明:

此功能禁用某些标签,如出于安全考虑的Script标签,等。各版本可能有所不同,请参看实际文件中的说明:

Function eWebEditor_DeCode(s_Content, sFilters)
s_Content : 要转换的数据字符串
s_Filters : 要过滤掉的格式集,用逗号分隔多个
使用例子如下:

先包含扩展功能文件,以下路径相应更改
<!--#include file = "Include/DeCode.asp"-->

<%
' 此例只过滤SCRIPT标签,即意味着内容中的客户端脚本不会生效,您可根据实际的需要加入其它标签。
sContent = eWebEditor_DeCode(sContent, "SCRIPT")
%>
更多使用说明请参看[代码实例],每个程序文件中都有足够详细的注释。

编辑人员使用说明
 界面概述:

所见即所得的在线编辑器界面主要分为以下三大部分:

菜单栏
编辑器顶部为菜单栏,主要放置各种编辑功能的选项及按钮图标,使用者只需点击图标或选择相关选项即可实时对编辑栏编辑的内容进行添加或修改、修饰。
编辑栏
编辑器中部空白处为编辑栏,主要是供使用者输入及编辑内容所用,同时所编辑的内容全部都是所见即所得,但有部分内容,如活动的图像、文字、电影等在编辑状态下只会呈现静止状态,需使用者转换到预览状态方可真实再现。
状态栏
编辑器底部为状态栏,主要放置转换编辑器状态的按钮图标,状态共分为:代码状态、编辑状态(默认)、文本状态、预览状态。具体每种状态的作用请详见帮助中心目录的“状态栏使用说明”。
 菜单栏使用说明:

编辑器菜单栏图标功能使用说明如下:

:设置字体样式为粗体。
:设置字体样式为斜体。
:设置字体样式为带下划线。
:设置字体样式为带中划线。
:设置字体样式为上标。
:设置字体样式为下标。
:设置字体变大。
:设置字体样变小。
:设置内容向左对齐。
:设置内容向右对齐。
:设置内容向中对齐。
:设置内容两端对齐。
:设置内容以编号列表形式排列。
:设置内容以列表项形式排列。
:减少内容的缩进量。
:增加内容的缩进量。
:设置字体的颜色。
:设置字体背景颜色。
:设置对象背景颜色。
:剪切指定内容。
:复制指定内容。
:粘贴剪贴板中的内容。
:以纯文件形式粘贴剪贴板中的内容。
:粘贴从Word中复制的内容,并去除冗余格式。
:删除指定内容。
:删除指定内容的格式。
:撒消上次操作。
:恢复上次操作。
:选定所有内容。
:取消选定的内容。
:表单菜单。
:插入文本输入框。
:插入文字区。
:插入单选按钮。
:插入复选框。
:插入下拉框。
:插入按钮。
:插入或修改字幕,即滚动文字。
:插入水平尺。
:插入换行符。
:插入段落。
:插入或修改超级链接。
:删除超级链接或标签。
:图形热点链接。
:标签管理。
:表格菜单。
:插入表格...。
:表格属性...。
:单元格属性...。
:拆分单元格...。
:表格行属性...。
:插入行(在上方)。
:插入行(在下方)。
:合并行(向下方)。
:拆分行。
插入列(在左侧)。
:插入列(在右侧)。
:合并列(向右侧)。
:拆分列。
:在指定位置插入或修改栏目框。
:在指定位置插入或修改网页帧。
:在指定位置插入或修改图片。
:在指定位置插入Flash动画。
:在指定位置插入自动播放的媒体文件。
:在指定位置插入其它文件。
:远程自动文件获取。
:在指定位置插入EXCEL表格。
:在指定位置插入特殊字符。
:指定位置的背景图片管理。
:在指定位置插入表情图标。
:在指定位置插入当前日期。
:在指定位置插入当前时间。
:转换指定内容为代码样式。
:转换指定内容为引用样式。
:显示或隐藏指导方针。
:查找替换功能。
:新建文档功能。
:相对或绝对位置设置功能。
:上移一层。
:下移一层。
:缩放菜单。
:增高编辑区。
:减小编辑区。
:转为代码状态。
:转为编辑状态。
:转为文本状态。
:转为预览状态。
:打印全页。
:保存内容到相关联的表单。
:打开全屏编辑。
:关闭全屏编辑并返回。
:弹窗保存并返回。
:查看在线使用帮助。
:关于编辑器的版权信息。
:直接访问eWebEditor站点。
:工具菜单。
:文件视图菜单。
:编辑菜单。
:对象效果菜单。
:组件菜单。
编辑器菜单栏下拉选项功能使用说明如下:

段落格式:设置文字内容的段落格式,使内容更加条理及便于阅读。
特殊字体格式:设置文字内容的特殊格式,包括删除线、飞行文字、移动文字等。
选择字体:设置文字内容的字体格式,可用自定义字体功能设置列表中没出列出的字体格式。注:需浏览者操作系统安装有相应字体文件才可正常显示自定义的字体。
字号:设置文字内容的大小。共分7种尺寸。
缩放:放大或缩小编辑区内的内容。
注意事项:

部分提供修改功能的按键或选项,只需选择原来插入的对象,再按同一按键或选项,即可进行修改。
部分提供设置功能的按键或选项,都可以通过再按一次按键或选项来取消前一次的设置。
 编辑栏使用说明:

编辑器编辑栏主要放置供使用者编辑内容的编辑框,若内容超出框架宽度或长度的话,会自动出现滚动条。另外还可通过状态栏的状态转换可转换编辑框的不同编辑状态。
 状态栏使用说明:

编辑器状态栏放置有编辑器状态转换栏,共有四种状态可供转换,详细如下:


编辑状态(默认),在此状态下所有编辑的内容皆为所见即所得的方式。

代码状态,在此状态下所有编辑的内容皆以HTML标记源代码方式显示或编辑。

文本状态,在此状态下所有编辑的内容皆以纯文本方式显示或编辑。

预览状态,在此状态下所有内容皆以不可编辑的页面输出方式显示,可利用此状态预览编辑内容输出后的效果。
 使用技巧:

乾坤小挪移
如果在网络上看到哪篇文章或新闻甚至页面觉得不错的话,可以用鼠标将相应页面内容全部选择起来后,直接拖动或复制到编辑器的编辑框即可,而且原页面上的图片、文字、CSS样式、动态效果等都能原封不动地转移到编辑框,不用修改或添加任何代码。
巧用插入自动播放媒体功能
插入自动播放媒体功能可以自动识别各种媒体格式并用相应的播放器在页面自动播放,而且这个功能还能识别图像文件,压缩文件等。大家可以充分利用此功能编辑出更多色声俱全的内容。
灵活运用预览状态
编辑内容中带有动态效果、即时播放媒体、GIF动画等活动内容时,编辑状态中只能显示静态的图像或播放器界面,这时只需要将状态转换为预览状态就可以马上看到这些内容的动态实时效果,如果想继续编辑的话,只需再转换到编辑状态即可。
 


在这里我们通过一个简单的新闻系统,对eWebEditor的使用进行详尽的实例代码说明。之所以把新闻系统作为eWebEditor功能使用的一个例子,原因在于新闻系统很具有代表性,基本上eWebEditor所具有的功能都能在此系统上给予体现。

此例子专门使用系统自带样式s_newssystem,此样式使用相对路径保存上传文件,所有上传的文件或远程获取的文件都存在文件夹下的NewsFile文件夹下,所有路径的格式都类似为"NewsFile/XXX.gif",此样式的远程获取模式为自动打开状态,即说明当提交表单时,编辑内容中的所有远程图片将自动上传到本地服务器。 在例子中文件中都有对每一步骤进行详细的注释,您可以根据实际使用的需要对某些操作步骤或功能进行增删改。 此例子以ACCESS 2000作为数据库保存新闻内容,数据库文件db.mdb中,表的每个字段都有注释,以便于您更好的了解eWebEditor的功能及使用方法。(附:系统数据库ewebeditor.mdb表字段也是有注释的,注释是我们的规定作法,希望您能更了解我们的系统) 此实例打包在 eWebEditor Version 2.7.5 压缩包中


  在线演示地址:http://eWebEditor.webasp.net/eWebEditor/Example/NewsSystem/List.asp


实例安装说明: [顶部]

此实例打包在系统下载压缩包中,在目录Example/NewsSystem/下。要使用此例子,请按如下步骤:

您必须把下载的压缩包eWebEditor目录设为虚拟目录,且虚拟目录名必须为eWebEditor,之所以有此要求,是因为此新闻例子默认设置的上传文件路径的要求。 设置完后访问以下地址:
http://Localhost/eWebEditor/Example/NewsSystem/List.asp


实例文件结构说明: [顶部]

所有文件存放在Example/NewsSystem目录下,各文件的说明如下:

DB.mdb:ACCESS数据库文件 Startup.asp:每页公用包含文件,包括数据库连接,公用基本函数,头尾部内容 Add.asp:增加新闻表单页 AddSave.asp:增加新闻保存页 Modify.asp:修改新闻表单页 ModifySave.asp:修改新闻保存页 List.asp:新闻列表页 Delete.asp:删除新闻操作页 Show.asp:显示新闻内容页


实例数据结构说明: [顶部]

此例子以ACCESS 2000作为数据库,数据库中只有一个表。新闻数据表:用于存入新闻的内容数据,如新闻标题、新闻内容、上传文件名及路径等。具体表结构如下:

新闻数据表:[NewsData]

字段名类型大小主键可空说明 D_ID 自动编号长整型是     唯一识别ID D_Title 文本 200       新闻标题 D_Content 备注         新闻内容 D_Picture 文本 50     是新闻标题图片 D_OriginalFileName 备注       是上传或远程获取前原文件名,多个以"|"分隔 D_SaveFileName 备注       是上传后保存的文件名,多个以"|"分隔 D_SavePathFileName 备注       是上传后保存的路径文件名(带路径),多个以"|"分隔


公用文件:Startup.asp [顶部][目录]

<%@ Language=VBScript CODEPAGE=936%>
<% Option Explicit %>

<%

' ============================================
' 常用全局变量
' ============================================
' 数据库对象
Dim oConn, oRs, sSql


' ============================================
' 初始数据处理
' ============================================
' 初始化数据库连接
Call DBConnBegin()


' ********************************************
' 以下为数据库相关函数
' ********************************************
' ============================================
' 初始化数据库连接对象
' 使用原则:最迟调用,最早释放
' ============================================
Sub DBConnBegin()
    ' 如果数据库对象已打开,不要再打开
    If IsObject(oConn) = True Then Exit Sub

    ' 你可以不需要打开数据库连接对象而直接打开记录集对象,但如果你需要打开多个记录集对象的话,效率是很低的。
    ' 如果你不创建一个数据库连接对象,ADO会在每个记录集打开时自动创建一个新的数据库连接对象,就算你用的是相同的SQL语句。
    Set oConn = Server.CreateObject("ADODB.Connection")

    On Error Resume Next
    ' Access数据库
    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db.mdb")
 
    If Err.Number > 0 Then
      ' 显示错误信息,并且发送邮件通知管理员
      'Call DBConnError(Err)
   
      ' 完全地退出正在运行的脚本
      Response.End
    End If

    ' 创建一个记录集
    Set oRs = Server.CreateObject( "ADODB.Recordset" )
End Sub

' ============================================
' 释放数据库连接对象
' ============================================
Sub DBConnEnd()
    On Error Resume Next
    oRs.Close
    Set oRs = Nothing
    oConn.Close
    Set oConn = Nothing
End Sub

 

' ********************************************
' 以下为常用函数
' ********************************************
' ============================================
' 错误返回处理
' ============================================
Sub GoError(str)
    Call DBConnEnd()
    Response.Write "<script language=javascript>alert('" & str & "/n/n系统将自动返回前一页面...');history.back();</script>"
    Response.End
End Sub

' ============================================
' 得到安全字符串,在查询中或有必要强行替换的表单中使用
' ============================================
Function GetSafeStr(str)
    GetSafeStr = Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "")
End Function

' ============================================
' 把字符串进行HTML解码,替换server.htmlencode
' 去除Html格式,用于显示输出
' ============================================
Function outHTML(str)
    Dim sTemp
    sTemp = str
    outHTML = ""
    If IsNull(sTemp) = True Then
      Exit Function
    End If
    sTemp = Replace(sTemp, "&", "&amp;")
    sTemp = Replace(sTemp, "<", "&lt;")
    sTemp = Replace(sTemp, ">", "&gt;")
    sTemp = Replace(sTemp, Chr(34), "&quot;")
    sTemp = Replace(sTemp, Chr(10), "<br>")
    outHTML = sTemp
End Function

' ============================================
' 去除Html格式,用于从数据库中取出值填入输入框时
' 注意:value="?"这边一定要用双引号
' ============================================
Function inHTML(str)
    Dim sTemp
    sTemp = str
    inHTML = ""
    If IsNull(sTemp) = True Then
      Exit Function
    End If
    sTemp = Replace(sTemp, "&", "&amp;")
    sTemp = Replace(sTemp, "<", "&lt;")
    sTemp = Replace(sTemp, ">", "&gt;")
    sTemp = Replace(sTemp, Chr(34), "&quot;")
    inHTML = sTemp
End Function

' ===============================================
' 初始化下拉框
'    s_FieldName    : 返回的下拉框名 
'    a_Name      : 定值名数组
'    a_Value      : 定值值数组
'    v_InitValue    : 初始值
'    s_Sql      : 从数据库中取值时,select name,value from table
'    s_AllName    : 空值的名称,如:"全部","所有","默认"
' ===============================================
Function InitSelect(s_FieldName, a_Name, a_Value, v_InitValue, s_Sql, s_AllName)
    Dim i
    InitSelect = "<select name='" & s_FieldName & "' size=1>"
    If s_AllName <> "" Then
      InitSelect = InitSelect & "<option value=''>" & s_AllName & "</option>"
    End If
    If s_Sql <> "" Then
      oRs.Open s_Sql, oConn, 0, 1
      Do While Not oRs.Eof
        InitSelect = InitSelect & "<option value=""" & inHTML(oRs(1)) & """"
        If oRs(1) = v_InitValue Then
          InitSelect = InitSelect & " selected"
        End If
        InitSelect = InitSelect & ">" & outHTML(oRs(0)) & "</option>"
        oRs.MoveNext
      Loop
      oRs.Close
    Else
      For i = 0 To UBound(a_Name)
        InitSelect = InitSelect & "<option value=""" & inHTML(a_Value(i)) & """"
        If a_Value(i) = v_InitValue Then
          InitSelect = InitSelect & " selected"
        End If
        InitSelect = InitSelect & ">" & outHTML(a_Name(i)) & "</option>"
      Next
    End If
    InitSelect = InitSelect & "</select>"
End Function

' ============================================
' 每页头部内容
' ============================================
Sub Header(str)
    Response.Write "<HTML><HEAD><TITLE>eWebEditor在线编辑器 - 例子:新闻系统</TITLE><style>body,p,td,input {font-size:9pt}</style></HEAD><BODY>"
    Response.Write "<p align=center><a href='list.asp'>新闻列表</a> | <a href='add.asp'>增加新闻</a></p>"
    Response.Write "<p align=center><b>" & str & "</b></p>"
End Sub

' ============================================
' 每页底部内容
' ============================================
Sub Footer()
    Call DBConnEnd()
    Response.Write "</BODY></HTML>"
End Sub

%>


增加新闻:Add.asp [顶部][目录]

<!--#include file = "Startup.asp"-->

<%

' ======================
' 功能:增加新闻
' 描述:提供一个新增表单,包括新闻标题和新闻内容,新闻内容使用eWebEditor进行编辑;
' 同时接收上传文件,以便删除新闻时,同时删除上传文件;
' 并由编辑区中上传的文件,提供标题新闻的图片选择。
' ======================

Call Header("增加新闻")
Call Content()
Call Footer()


' 本页内容区
Sub Content()
    %>

    <Script Language=JavaScript>
    // 当上传图片等文件时,往下拉框中填入图片路径,可根据实际需要更改此函数
    function doChange(objText, objDrop){
      if (!objDrop) return;
      var str = objText.value;
      var arr = str.split("|");
      var nIndex = objDrop.selectedIndex;
      objDrop.length=1;
      for (var i=0; i<arr.length; i++){
        objDrop.options[objDrop.length] = new Option(arr[i], arr[i]);
      }
      objDrop.selectedIndex = nIndex;
    }

    // 表单提交客户端检测
    function doSubmit(){
      if (document.myform.d_title.value==""){
        alert("新闻标题不能为空!");
        return false;
      }
      // getHTML()为eWebEditor自带的接口函数,功能为取编辑区的内容
      if (eWebEditor1.getHTML()==""){
        alert("新闻内容不能为空!");
        return false;
      }
      document.myform.submit();
    }
    </Script>
 
    <form action="addsave.asp" method="post" name="myform">
    <% '取源文件名 %>
    <input type=hidden name=d_originalfilename>
    <% '取保存的方件名,如果不要带路径的填充下拉框,可以在下面的表单项加入onchange事件 %>
    <input type=hidden name=d_savefilename>
    <% '取保存的文件名(带路径),使用带路径的填充下拉框 %>
    <input type=hidden name=d_savepathfilename οnchange="doChange(this,document.myform.d_picture)">

    <table cellspacing=3 align=center>
    <tr>
      <td>新闻标题:</td>
      <td><input type="text" name="d_title" value="" size="90"></td>
    </tr>
    <tr>
      <td>标题图片:</td>
      <td><select name="d_picture" size=1><option value=''>无</option></select> 当编辑区有插入图片时,将自动填充此下拉框</td>
    </tr>
    <tr>
      <td>新闻内容:</td>
      <td>
        <%
        ' ewebeditor.asp文件调用的参数:
        '    id:下面表单项textarea的名称,在此表单中是d_content,注意大小写
        '    style:编辑器的样式名称,可在eWebEditor的后台设置
        '    originalfilename:用于获取源文件名的表单项名,在此表单中是d_originalfilename
        '    savefilename:用于获取保存文件名的表单项名,在此表单中是d_savefilename
        '    savepathfilename:用于获取保存带路径文件名的表单项名,在此表单中是d_savepathfilename
        %>
        <textarea name="d_content" style="display:none"></textarea>
        <iframe ID="eWebEditor1" src="../../ewebeditor.asp?id=d_content &style=s_newssystem &originalfilename=d_originalfilename &savefilename=d_savefilename &savepathfilename=d_savepathfilename" frameborder="0" scrolling="no" width="550" HEIGHT="350"></iframe>
      </td>
    </tr>
    </table>
    <p align=center><input type=button name=btnSubmit value=" 提 交 " οnclick="doSubmit()"> <input type=reset name=btnReset value=" 重 填 "></p>
    </form>

    <%
End Sub

%>


增加新闻保存:AddSave.asp [顶部][目录]

<!--#include file = "Startup.asp"-->
<%

' ======================
' 功能:增加新闻保存页
' 描述:对add.asp文件提交过来的表单数据进行保存操作,有保存新闻标题,新闻内容,新闻标题图片;
' 同时保存所有此篇新闻所有相关的上传或远程获取的文件信息,有源文件名,保存文件名,保存路径文件名。
' ======================

Call Header("增加新闻保存")
Call Content()
Call Footer()


' 本页内容区
Sub Content()
    Dim i

    ' 取提交过来的数据
    ' 注意取新闻内容的方法,因为对大表单的自动处理,一定要使用循环,否则大于100K的内容将取不到,单个表单项的限制为102399字节(100K左右)
    Dim sTitle, sContent, sPicture
    sTitle = Request.Form("d_title")
    sPicture = Request.Form("d_picture")

    ' 开始:eWebEditor编辑区取值-----------------
    sContent = ""
    For i = 1 To Request.Form("d_content").Count
      sContent = sContent & Request.Form("d_content")(i)
    Next
    ' 结束:eWebEditor编辑区取值-----------------
 

    ' 以下为所有通过编辑器上传的所有文件相关信息,包括编辑区手动上传的和自动远程上传的
    ' GetSafeStr函数为过滤一些特殊字符,防止有些人恶意的破坏此演示程序
    ' 上传或远程获取前的原文件名,多个以"|"分隔
    Dim sOriginalFileName
    ' 上传后保存到本地服务器的文件名(不带路径),多个以"|"分隔
    Dim sSaveFileName
    ' 上传后保存到本地服务器的路径文件名,多个以"|"分隔
    Dim sSavePathFileName
    sOriginalFileName = GetSafeStr(Request.Form("d_originalfilename"))
    sSaveFileName = GetSafeStr(Request.Form("d_savefilename"))
    sSavePathFileName = GetSafeStr(Request.Form("d_savepathfilename"))

    ' 保存新闻内容,同时取出自增的新闻ID
    Dim sNewsID
    sSql = "SELECT * FROM NewsData WHERE D_ID=0"
    oRs.Open sSql, oConn, 1, 3
    oRs.AddNew
    oRs("D_Title") = sTitle
    oRs("D_Content") = sContent
    oRs("D_Picture") = sPicture
    oRs("D_OriginalFileName") = sOriginalFileName
    oRs("D_SaveFileName") = sSaveFileName
    oRs("D_SavePathFileName") = sSavePathFileName
    oRs.Update
    sNewsID = oRs("D_ID")
    oRs.Close
 
    ' 输出成功保存信息
    Response.Write "新闻(ID:" & sNewsID & ")增加保存成功!"

End Sub

%>
 

修改新闻:Modify.asp [顶部][目录]

<!--#include file = "Startup.asp"-->

<%

' ======================
' 功能:修改新闻
' 描述:提供一个修改表单,包括新闻标题和新闻内容,新闻内容使用eWebEditor进行编辑;
' 同时接收上传文件,以便删除新闻时,同时删除上传文件;
' 并由编辑区中上传的文件,提供标题新闻的图片选择;
'        功能与新增相同,不同在于只是修改表单具有初始值。
' ======================

Call Header("修改新闻")
Call Content()
Call Footer()


' 本页内容区
Sub Content()
 
      ' 传入参数:新闻ID
      Dim sNewsID
      sNewsID = Trim(Request("id"))

      ' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
      If IsNumeric(sNewsID) = False Then
        GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
      End If

      ' 从数据库中取初始值
      Dim sTitle, sContent, sPicture, sOriginalFileName, sSaveFileName, sSavePathFileName
      sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
      oRs.Open sSql, oConn, 0, 1
      If Not oRs.Eof Then
        sTitle = oRs("D_Title")
        sContent = oRs("D_Content")
        sPicture = oRs("D_Picture")
        sOriginalFileName = oRs("D_OriginalFileName")
        sSaveFileName = oRs("D_SaveFileName")
        sSavePathFileName = oRs("D_SavePathFileName")
      Else
        GoError "无效的新闻ID,请点页面上的链接进行操作!"
      End If
      oRs.Close
' 把带"|"的字符串转为数组,用于初始下拉框表单

Dim aSavePathFileName
      aSavePathFileName = Split(sSavePathFileName, "|")

      ' 根据新闻内容中相关上传文件为数据,初始下拉框表单
      ' 函数InitSelect,根据数组值及初始值返回下拉框输出字串,具体请见startup.asp文件中函数的说明部分
      Dim sOptionSavePath
      sOptionSavePath = InitSelect("d_picture", aSavePathFileName, aSavePathFileName, sPicture, "", "无")

      %>

      <Script Language=JavaScript>
      // 当上传图片等文件时,往下拉框中填入图片路径,可根据实际需要更改此函数
      function doChange(objText, objDrop){
        if (!objDrop) return;
        var str = objText.value;
        var arr = str.split("|");
        var nIndex = objDrop.selectedIndex;
        objDrop.length=1;
        for (var i=0; i<arr.length; i++){
          objDrop.options[objDrop.length] = new Option(arr[i], arr[i]);
        }
        objDrop.selectedIndex = nIndex;
      }

      // 表单提交客户端检测
      function doSubmit(){
        if (document.myform.d_title.value==""){
          alert("新闻标题不能为空!");
          return false;
        }
        // getHTML()为eWebEditor自带的接口函数,功能为取编辑区的内容
        if (eWebEditor1.getHTML()==""){
          alert("新闻内容不能为空!");
          return false;
        }
        document.myform.submit();
      }
      </Script>
 
      <form action="modifysave.asp?id=<%=sNewsID%>" method="post" name="myform">
      <% '取源文件名 %>
      <input type=hidden name=d_originalfilename value="<%=sOriginalFileName%>">
      <% '取保存的方件名(带路径),如果不要带路径的填充下拉框,可以在下面的表单项加入onchange事件 %>
      <input type=hidden name=d_savefilename value="<%=sSaveFileName%>">
      <% '取保存的文件名,使用带路径的填充下拉框 %>
      <input type=hidden name=d_savepathfilename οnchange="doChange(this,document.myform.d_picture)" value="<%=sSavePathFileName%>">

      <table cellspacing=3 align=center>
      <tr>
        <td>新闻标题:</td>
        <% ' 函数inHTML:去除Html格式,用于从数据库中取出值填入输入框时,具体请见startup.asp文件中函数的说明 %>
        <td><input type="text" name="d_title" value="<%=inHTML(sTitle)%>" size="90"></td>
      </tr>
      <tr>
        <td>标题图片:</td>
        <td><%=sOptionSavePath%> 当编辑区有插入图片时,将自动填充此下拉框</td>
      </tr>
      <tr>
        <td>新闻内容:</td>
        <td>
          <%
          ' ewebeditor.asp文件调用的参数:
          '      id:下面表单项textarea的名称,在此表单中是d_content,注意大小写
          '      style:编辑器的样式名称,可在eWebEditor的后台设置
          '      originalfilename:用于获取源文件名的表单项名,在此表单中是d_originalfilename
          '      savefilename:用于获取保存文件名的表单项名,在此表单中是d_savefilename
          '      savepathfilename:用于获取保存带路径文件名的表单项名,在此表单中是d_savepathfilename

          ' 请一定要用Server.HtmlEncode()函数对内容进行转换,否则将有可以出现某些内容出了编辑区的情况
          %>
          <textarea name="d_content" style="display:none"><%=Server.HtmlEncode(sContent)%></textarea>
          <iframe ID="eWebEditor1" src="../../ewebeditor.asp?id=d_content &style=s_newssystem &originalfilename=d_originalfilename &savefilename=d_savefilename &savepathfilename=d_savepathfilename" frameborder="0" scrolling="no" width="550" HEIGHT="350"></iframe>
        </td>
      </tr>
      </table>
      <p align=center><input type=button name=btnSubmit value=" 提 交 " οnclick="doSubmit()"> <input type=reset name=btnReset value=" 重 填 "></p>
      </form>

      <%
End Sub

%>

修改新闻保存:ModifySave.asp [顶部][目录]

<!--#include file = "Startup.asp"-->
<%

' ======================
' 功能:修改新闻保存页
' 描述:对modify.asp文件提交过来的表单数据进行保存操作,有保存新闻标题,新闻内容,新闻标题图片;
' 同时保存所有此篇新闻所有相关的上传或远程获取的文件信息,有源文件名,保存文件名,保存路径文件名。
' ======================

Call Header("修改新闻保存")
Call Content()
Call Footer()


' 本页内容区
Sub Content()
      Dim i

      ' 传入参数:新闻ID
      Dim sNewsID
      sNewsID = Trim(Request("id"))

      ' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
      If IsNumeric(sNewsID) = False Then
        GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
      End If

      ' 取提交过来的数据
      ' 注意取新闻内容的方法,因为对大表单的自动处理,一定要使用循环,否则大于100K的内容将取不到,单个表单项的限制为102399字节(100K左右)
      Dim sTitle, sContent, sPicture
      sTitle = Request.Form("d_title")
      sPicture = Request.Form("d_picture")


      ' 开始:eWebEditor编辑区取值-----------------
      sContent = ""
      For i = 1 To Request.Form("d_content").Count
        sContent = sContent & Request.Form("d_content")(i)
      Next
      ' 结束:eWebEditor编辑区取值----------------- 


      ' 以下为所有通过编辑器上传的所有文件相关信息,包括编辑区手动上传的和自动远程上传的
      ' GetSafeStr函数为过滤一些特殊字符,防止有些人恶意的破坏此演示程序
      ' 上传或远程获取前的原文件名,多个以"|"分隔
      Dim sOriginalFileName
      ' 上传后保存到本地服务器的文件名(不带路径),多个以"|"分隔
      Dim sSaveFileName
      ' 上传后保存到本地服务器的路径文件名,多个以"|"分隔
      Dim sSavePathFileName
      sOriginalFileName = GetSafeStr(Request.Form("d_originalfilename"))
      sSaveFileName = GetSafeStr(Request.Form("d_savefilename"))
      sSavePathFileName = GetSafeStr(Request.Form("d_savepathfilename"))


      ' 修改指定新闻内容
      sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
      oRs.Open sSql, oConn, 1, 3
      If Not oRs.Eof Then
        oRs("D_Title") = sTitle
        oRs("D_Content") = sContent
        oRs("D_Picture") = sPicture
        oRs("D_OriginalFileName") = sOriginalFileName
        oRs("D_SaveFileName") = sSaveFileName
        oRs("D_SavePathFileName") = sSavePathFileName
        oRs.Update
      Else
        GoError "无效的新闻ID,请点页面上的链接进行操作!"
      End If
      oRs.Close

      ' 输出成功保存信息
      Response.Write "新闻(ID:" & sNewsID & ")修改保存成功!"

End Sub

%>

新闻列表:List.asp [顶部][目录]

<!--#include file = "Startup.asp"-->

<%

' ======================
' 功能:新闻列表
' 描述:本页代码没有使用到eWebEditor相关的内容,只提供新闻列表,及显示、修改、删除新闻页的链接。
' ======================

Call Header("新闻列表")
Call Content()
Call Footer()


' 本页内容区
Sub Content()

      ' 从新闻库中取出所有新闻,按ID倒排序
      sSql = "SELECT * FROM NewsData ORDER BY D_ID DESC"
      oRs.Open sSql, oConn, 0, 1
      If Not oRs.Eof Then
        Do While Not oRs.Eof
          Response.Write "<li>"
          ' 是否有新闻标题图片,如有则输出显示
          If oRs("D_Picture") <> "" Then
            Response.Write "<img border=0 src='" & oRs("D_Picture") & "'>"
          End If
          ' 显示标题
          ' 函数outHTML:去除Html格式,用于显示输出,具体请见startup.asp文件中的说明
          Response.Write "<a href='show.asp?id=" & oRs("d_id") & "'>" & outHTML(oRs("d_title")) & "</a>&nbsp;&nbsp;"
          ' 显示修改链接
          Response.Write "[<a href='modify.asp?id=" & oRs("d_id") & "'>修改</a>]"
          ' 显示删除链接
          Response.Write "[<a href='delete.asp?id=" & oRs("d_id") & "'>删除</a>]"
          oRs.MoveNext
        Loop
      Else
        Response.Write "现在数据库中还没有新闻!"
      End If
      oRs.Close

End Sub

%>

删除新闻:Delete.asp [顶部][目录]

<!--#include file = "Startup.asp"-->

<%

' ======================
' 功能:删除新闻
' 描述:新闻删除后,页面转向新闻列表页。
' 删除新闻的同时,删除此新闻相关的上传文件。
' ======================

Call Header("删除新闻")
Call Content()
Call Footer()


' 本页内容区
Sub Content()

      ' 取参数:新闻ID
      Dim sNewsID
      sNewsID = Trim(Request("id"))

      ' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
      If IsNumeric(sNewsID) = False Then
        GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
      End If

      ' 从新闻数据表中取出相关的上传文件
      ' 上传后保存到本地服务器的路径文件名,多个以"|"分隔
      ' 删除文件,要取带路径的文件名才可以,并且只要这个就可以了,原来存的原文件名或不带路径的保存文件名可用于其它地方使用
      Dim sSavePathFileName
 
      sSql = "SELECT D_SavePathFileName FROM NewsData WHERE D_ID=" & sNewsID
      oRs.Open sSql, oConn, 0, 1
      If Not oRs.Eof Then
        sSavePathFileName = oRs("D_SavePathFileName")
      Else
        GoError "无效的新闻ID,请点页面上的链接进行操作!"
      End If
      oRs.Close

      ' 把带"|"的字符串转为数组
      Dim aSavePathFileName
      aSavePathFileName = Split(sSavePathFileName, "|")

      ' 删除新闻相关的文件,从文件夹中
      Dim i
      For i = 0 To UBound(aSavePathFileName)
        ' 按路径文件名删除文件
        Call DoDelFile(aSavePathFileName(i))
      Next

      ' 删除新闻
      sSql = "DELETE FROM NewsData WHERE D_ID=" & sNewsID
      oConn.Execute sSql

      ' 3秒转向新闻列表页
      response.write "<p align=center>新闻删除成功,3秒后自动返回新闻列表页!<script>window.setTimeout(""location.href='list.asp'"",3000);</script></p>"

End Sub

' 删除指定的文件
Sub DoDelFile(sPathFile)
      On Error Resume Next
      Dim oFSO
      Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
      oFSO.DeleteFile(Server.MapPath(sPathFile))
      Set oFSO = Nothing
End Sub

%>

显示新闻:Show.asp [顶部][目录]

<!--#include file = "Startup.asp"-->
<!--#include file = "../../Include/DeCode.asp"-->

<%

' ======================
' 功能:显示新闻
' 描述:显示编辑的内容页,此页注意一下DeCode接口函数的调用。
' ======================

Call Header("显示新闻内容")
Call Content()
Call Footer()


' 本页内容区
Sub Content()

      ' 传入参数:新闻ID
      Dim sNewsID
      sNewsID = Trim(Request("id"))

      ' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
      If IsNumeric(sNewsID) = False Then
        GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
      End If

      ' 从数据库中取初始值
      Dim sTitle, sContent, sPicture, sOriginalFileName, sSaveFileName, sSavePathFileName
      sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
      oRs.Open sSql, oConn, 0, 1
      If Not oRs.Eof Then
        sTitle = oRs("D_Title")
        sContent = oRs("D_Content")
        sPicture = oRs("D_Picture")
        sOriginalFileName = oRs("D_OriginalFileName")
        sSaveFileName = oRs("D_SaveFileName")
        sSavePathFileName = oRs("D_SavePathFileName")
      Else
        GoError "无效的新闻ID,请点页面上的链接进行操作!"
      End If
      oRs.Close

      ' 禁用某些标签,如出于安全考虑的Script标签,等
      ' 要使用此功能需要先包含"Include/DeCode.asp"文件。
      ' 此例只过滤SCRIPT标签,即意味着内容中的客户端脚本不会生效,您可根据实际的需要加入其它标签。
      ' 当前支持过滤的标签,可以查看DeCode.asp文件中的说明。
      sContent = eWebEditor_DeCode(sContent, "SCRIPT")


      ' 输出新闻
      Response.Write "<table border=0 cellpadding=5 width='90%' align=center>" & _
        "<tr><td align=center><b>" & sTitle & "</b></td></tr>" & _
        "<tr><td>" & sContent & "</td></tr>" & _
        "</table>"

      ' 输出相关文件信息
      Response.Write "<p><b>此新闻的相关上传文件信息如下:</b></p>"

      ' 把带"|"的字符串转为数组,用于列出显示
      Dim aOriginalFileName, aSaveFileName, aSavePathFileName
      aOriginalFileName = Split(sOriginalFileName, "|")
      aSaveFileName = Split(sSaveFileName, "|")
      aSavePathFileName = Split(sSavePathFileName, "|")

      Response.Write "<table border=1 cellpadding=3 cellspacing=0>" & _
        "<tr>" & _
          "<td>序号</td>" & _
          "<td>原文件名(接口:d_originalfilename)</td>" & _
          "<td>保存文件名(接口:d_savefilename)</td>" & _
          "<td>保存路径文件名(接口:d_savepathfilename)</td>" & _
        "</tr>"
      Dim i
      For i = 0 To UBound(aOriginalFileName)
        Response.Write "<tr>" & _
            "<td>" & CStr(i + 1) & "</td>" & _
            "<td>" & aOriginalFileName(i) & "</td>" & _
            "<td>" & aSaveFileName(i) & "</td>" & _
            "<td>" & aSavePathFileName(i) & "</td>" & _
          "</tr>"
      Next
      Response.Write "</table>"

End Sub

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ghostonleft/archive/2008/01/02/2009808.aspx

 类似资料: