升级FCKeditor 到v2.6 正式版再改分页标签

 
正在载入,请稍候……
其实FCKeditor v2.6 正式版今年出来至今有几个月了,前段时间逛了Rison的蜗牛居看到他日志的分页功能比我这的要好用,通过相关链接在PJ论坛看了Rison写的“FCKeditor v2.6 正式版 For PJblog 及分页修改方法”,代码其实很简单,几步替换就搞定。

  但我原先在用的分页代码是2006年stanley的修改方法,UBB和FCK模式都是采用加入标签方式实现,UBB分页方法由我整合。然而Rison此修改的优点是不会在日志里显示分页的代码或标签,并且使插入分页代码的操作更简便!另据tuxw对stanley的修改方法的分析,使用该方法后日志页面跑版厉害,侧边栏、页脚经常错位---这点我站一直没发现个现象,过去在BBS上也确实有人反映过用stanley的分页修改方法问题多,问题应该是偶然吧。有兴趣的朋友可以参考原文长日志分页——解决页面跑版的问题

  上午在论坛上给Rison发信息了解FCK2.6中标签问题,我误解了他的意思,以为FCK2.6原版的标签采用了['pagebreak],考虑今后的编辑器方便升级,晚上花了大把时间重新修改cls_article.asp分页代码,替换UBBCode_Gecko.js、UBBCode_IE.js、UBBconfig.asp中的分页标签,再把过去的20篇带分页日志中的分页标签['pagesplitxx]都替换为['pagebreak],其中FCK模式编辑日志['pagesplitxx]改为插入分页符,即不显示分页代码。FCK2.6版的原始分页代码为 <div style="page-break-after: always"><span style="display: none"> </span></div>。

  其实问题是明了的,关于UBB的分页标签不用更改,把新的UBB分页标签改为你自己原先的标签就可以了,这样你就不必再一一去重新编辑过去那些分页日志了呀,NND,晚上真混,做了无用功 。不过也让我更深刻地意识到修改一些代码,尽量要考虑以后的版本升级,原FCK分页代码就是动了FCK程序源码,此次统一改用Rison整合的方法,也是便于今后升级编辑器的便捷了。

  在此基础上为FCK2.6添加了自己需要的东西:
  1. 替换QQ2007表情为过去收集的MSN表情,并修改fckconfig.js中相关参数,如images路径、宽高;
  2. 在fckstyles.xml中添加图片边框样式;

  下面顺便附上升级到FCK2.6修改日志分页的方法吧,by Rison:
  这次FCK v2.6 更新的最大亮点就是编辑时的对话框模式,而且加载速度较快了!该版本去掉了“软键盘”功能,可能是考虑到WIN或各种输入法都自带了类似的键盘吧,我觉得倒是没必要去掉,有些功能其它软键盘都没的。
  注意:这里为了不让代码造成自动分页,描述时在分页标签前加入 ' 注释,即 ['pagebreak] ,大家修改时去掉该注释即可~
  

  此版本为PJblog专用兼容版本,去掉了所有PJ用不到的功能,去掉了FCK自带的上传功能,启用了代码高亮插件,如要启用代码高亮功能需在header.asp文件中插入如下代码:
  
程序代码 程序代码
<link rel="stylesheet" rev="stylesheet" href="FCKeditor/editor/css/Dphighlighter.css" type="text/css" media="all" /><!--FCK块引用&代码样式-->

  打开cls_article.asp找到:
  
程序代码 程序代码
sub ShowArticle(LogID)

  在下面添加:
  
程序代码 程序代码
'得到页面链接
  Dim sUrl, ArrUrl
sUrl = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("PATH_INFO") & "?" & Request.ServerVariables("QUERY_STRING")
If InStr(1,sUrl,"&",1) Then
    ArrUrl=Split(sUrl, "&")
    sUrl=ArrUrl(0)
End If

  找到:
  
程序代码 程序代码
response.write (highlight(UnCheckStr(UBBCode(HtmlEncode(log_ViewArr(8,0)),mid(log_ViewArr(11,0),1,1),mid(log_ViewArr(11,0),2,1),mid(log_ViewArr(11,0),3,1),mid(log_ViewArr(11,0),4,1),mid(log_ViewArr(11,0),5,1))),keyword))
else
response.write (highlight(UnCheckStr(log_ViewArr(8,0)),keyword))

  替换为:
  
程序代码 程序代码
'response.write (highlight(UnCheckStr(UBBCode(HtmlEncode(log_ViewArr(8,0)),mid(log_ViewArr(11,0),1,1),mid(log_ViewArr(11,0),2,1),mid(log_ViewArr(11,0),3,1),mid(log_ViewArr(11,0),4,1),mid(log_ViewArr(11,0),5,1))),keyword))
Call UBBSplitxx(sUrl)
else
'response.write (highlight(UnCheckStr(log_ViewArr(8,0)),keyword))
Call FckSplitxx(sUrl)

  在该页面底部添加如下代码:
  
程序代码 程序代码
<%
'*******************************************
'  UBB 日志分页
'  修改时间:2007年12月17日
'*******************************************
Sub UBBSplitxx(sUrl)
    dim arrContent,Page,PageList,Content,PageCounter,x,xx,uu
    Content=highlight(UnCheckStr(UBBCode(HtmlEncode(log_ViewArr(8,0)),mid(log_ViewArr(11,0),1,1),mid(log_ViewArr(11,0),2,1),mid(log_ViewArr(11,0),3,1),mid(log_ViewArr(11,0),4,1),mid(log_ViewArr(11,0),5,1))),keyword)
    If InStr(1,cstr(Content),"['pagebreak]",1)<>0 Then
        ArrContent=Split(Content,"['pagebreak]")
        PageCounter=UBound(ArrContent)
        If PageCounter > 0 Then
            Page=Request.QueryString("pages")
            Page=CInt(Page)
            If Page<1 Then Page=1
            If Page-2>PageCounter Then Page=PageCounter + 2

            For x=1 To PageCounter+1
                uu=sUrl & "&pages=" & x
                If Page=x Then
                                        xx=" [<font color='#FF0000'>" & x & "</font>]"
                                        PageList = PageList &  xx
                                Else
                                        xx= x
                                        PageList = PageList & " [<a href='" & uu & "'>" & xx & "</a>]"
                                End If
            Next
            uu = sUrl & "&pages=" & x
            If Page=PageCounter + 2 Then
                                xx = " [<font color='#FF0000'>全文阅读</font>]"
                                PageList = PageList & xx
                        Else
                                xx = "全文阅读"
                                PageList = PageList & " [<a href='" & uu & "'>" & xx & "</a>]"
                        End If
            If Page-1<=PageCounter Then
                Content=ArrContent(Page-1)
            End If
            x = PageCounter + 1
            Content=Content & "<hr><div align='right'>共 " & x & " 页:" & PageList & "</div>"
        End If
    content=replace(content,"['pagebreak]","")
    End If
    response.write (content)
End Sub%>

<%
'*******************************************
'  FCK 日志分页
'  修改时间:2007年12月17日
'*******************************************
Sub FCKSplitxx(sUrl)
    dim arrContent,Page,PageList,Content,PageCounter,x,xx,uu
    Content=highlight(UnCheckStr(log_ViewArr(8,0)),keyword)
    If InStr(1,cstr(Content),"<div style=""page-break-after: always""><span style=""display: none""> </span></div>",1)<>0 Then
        ArrContent=Split(content,"<div style=""page-break-after: always""><span style=""display: none""> </span></div>")
        PageCounter=UBound(ArrContent)
        If PageCounter > 0 Then
            Page=Request.QueryString("pages")
            Page=CInt(Page)
            If Page<1 Then Page=1
            If Page-2>PageCounter Then Page=PageCounter+2

            For x=1 To PageCounter+1
                uu=sUrl & "&pages=" & x
                If Page=x Then
                                        xx=" [<font color='#FF0000'>" & x & "</font>]"
                                        PageList = PageList &  xx
                                Else
                                        xx= x
                                        PageList = PageList & " [<a href='" & uu & "'>" & xx & "</a>]"
                                End If
            Next
            uu = sUrl & "&pages=" & x
            If Page=PageCounter + 2 Then
                                xx = " [<font color='#FF0000'>全文阅读</font>]"
                                PageList = PageList & xx
                        Else
                                xx = "全文阅读"
                                PageList = PageList & " [<a href='" & uu & "'>" & xx & "</a>]"
                        End If
            If Page-1<=PageCounter Then
                Content=ArrContent(Page-1)
                '下面三行是标签补全,我的回车默认标签改为 <div> 了,所以补的是 </div> 和 <div>
                '如果你的是 <p> 的话,补全的标签也要相应修改为 </p> 和 <p>
                '插入分页符的时候,用回车换行,单独起一行来放分页符 ['pagebreak]
                'If Page=1 Then Content=Content & "</div>"
                'If Page-1=PageCounter Then Content="<div>" & Content
                'If Page>1 And Page<=PageCounter Then Content="<div>" & Content & "</div>"
            End If
            x = PageCounter + 1
            Content=Content & "<hr><div align='right'>共 " & x & " 页:" & PageList & "</div>"
        End If
    End If
    response.write(Content)
End Sub%>

  修改完成,使用分页功能的时候切忌修改格式不要跨分页符修改格式,否则会出现页面变形的情况,简单的说就是设置内容格式的时候每页分别设置,不能全篇一起设置!FCK中插入分页符最好独占一行插入!
本日志共2页:[1][2][全文阅读]
谷歌AD正在载入,请稍候……
点此快速转到评论处,留下您的宝贵见解吧^_^

本文如需转载,请详细注明出处,尊重版权,尊重别人的劳动成果,谢谢合作哦!
Google内容AD正在载入,请稍候……

相关日志
详细信息
日志搜索
推荐收藏
反向链接
本站声明

    相关日志:

     
评论: 3 | 引用: 0 | 查看次数: 23531 | 打印此页 | 关闭此页 | 返回顶部 | 直达底部
评论列表 ↓ 点击显示/隐藏3条博友们的评论
发表评论

① 若您已是本站注册用户,请填入名称和密码,发表留言后即默认登陆.
② 若您尚未在本站注册,为了保护您的发言权,建议您注册账号,进而保护您的名称在本站不被他人所占用.若未特别说明,本站原创或转载的文章,均遵循创作共用协议.^_^
③ 若您不想注册,可以只填写用户名进行发表.
④ 转载本站文章,请注明出处,或者填写文章的引用通告地址,谢谢!
⑤ 本站注册是免费,自由的,但发表 评论/留言 即默认您遵守本站用户协议.
你没有权限发表评论!响应党的号召,十七大期间关闭评论功能