为pj3添加内分页

  pjbloger一直想要的功能,正好有时间所以做了一做,支持全动态,全静态 暂时不支持半静态。
  演示,本文
没有修改过程序的可以覆盖:
以下静态化修改:
打开:connt.asp 在 最后一个%>前加入
dim fenyefu:fenyefu="[pagebreak]"
其中[pagebreak]是分页符
打开:control/c_article.asp 找到
conn.execute("Delete * from blog_Content where log_ID="&Log_Dele(i))

在上面插入:
                        '删除静态内分页文件——by:情留メ蚊子 Start
                        Set log_View = conn.Execute("Select * FROM blog_Content Where log_ID=" & Log_Dele(i))
                        dim arrcontent,rollnum,log_View
                        If InStr(log_View("log_Content"),fenyefu)>0 Then
                            arrcontent=split(log_View("log_Content"),fenyefu)
                          for rollnum=1 to ubound(arrcontent)
                        if fso.FileExists(server.MapPath("article/"&Log_Dele(i) &"_"&(rollnum)&".htm")) then
                            fso.DeleteFile(server.MapPath("article/"&Log_Dele(i) &"_"&(rollnum)&".htm"))
                        end if
                          next
                       end if
                       '删除静态内分页文件——by:情留メ蚊子  end

打开class/cls_logAction.asp 找到:
Conn.Execute("Delete * FROM blog_Content Where log_ID="&id)

在上面插入:
        '删除静态内分页文件——by:情留メ蚊子 Start
        dim arrcontent,rollnum
        arrcontent=split(weblog("log_Content"),fenyefu)
        If InStr(weblog("log_Content"),fenyefu)>0 Then
        for rollnum=1 to ubound(arrcontent)
        DeleteFiles Server.MapPath("article/"&logiD &"_"&(rollnum)&".htm")
        next
        end if
        '删除静态内分页文件——by:情留メ蚊子 end

[分页符]
找到:
'======================================================
'全静态化
'======================================================

'======================================================
'缓存静态化列表
'======================================================

之间全部替换
'======================================================
'全静态化
'======================================================

Sub PostFullStatic(ByVal LogID, ByVal UpdateListOnly)
    Dim SaveArticle, LoadTemplate1, Temp1, TempStr, log_View, preLogC, nextLogC, Category,baseUrl

    '静态页面特有的属性
    baseUrl = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("URL")
    baseUrl = Left(baseUrl, InStrRev(baseUrl,"/"))

    '读取日志内容
    SQL = "Select TOP 1 * FROM blog_Content Where log_ID=" & LogID
    SQLQueryNums = SQLQueryNums + 1

    Set log_View = conn.Execute(SQL)

    if log_View("log_IsShow") = false then '如果是私密日志
        SaveArticle = SaveToFile("<head><title>显示私密日志</title><meta http-equiv=""Refresh"" content=""0;url="&baseUrl&"article.asp?id="&LogID&"""></head><body><h1>正在跳转到私密日志</h1>您可以在<a HREF="""&baseUrl&"article.asp?id="&LogID&""">此处</a>进行访问.</body>", "article/" & LogID & ".htm")
        PostHalfStatic LogID, UpdateListOnly

        Set log_View = Nothing
        exit Sub
    end if

    blog_currentCategoryID = log_View("log_CateID")
    Dim blog_Cate, blog_CateArray, comDesc
    Dim getCate, getTags

    Set getCate = New Category
    Set getTags = New tag

    getCate.load(Int(log_View("log_CateID"))) '获取分类信息

    if UpdateListOnly then '只更新列表缓存
        PostArticleListCache LogID, log_View, getCate, getTags

        Set log_View = Nothing
        Set getCate = Nothing
        Set getTags = Nothing
        exit Sub
    end if

    If log_View("log_comorder") Then comDesc = "Desc" Else comDesc = "Asc" End If

dim arrcontent,rollnum,pagelist
If InStr(log_View("log_Content"),fenyefu)>0 Then
arrcontent=split(log_View("log_Content"),fenyefu)
pagelist=""
for rollnum=1 to ubound(arrcontent)
pagelist=pagelist & "<a href=""article/" & LogID &"_"&(rollnum)&".htm"">["&(rollnum+1)&"]</a> "
dim qx
qx = "<br/><hr><div align='center'>共<font color='#ff0000'>"&ubound(arrcontent)+1&"</font>页:<a href=""article/" & LogID & ".htm"">[1]</a> "&pagelist&"</div><hr>"
next
for rollnum=0 to ubound(arrcontent)
    '读取日志模块
    LoadTemplate1 = LoadFromFile("Template/static.htm")

    If LoadTemplate1(0) <> 0 Then Exit Sub'读取成功后写入信息

    '读取分类信息
    Temp1 = LoadTemplate1(1)

    Temp1 = Replace(Temp1, "<$CategoryList$>", CategoryList(0))
    Temp1 = Replace(Temp1, "<$base$>", baseUrl)
    Temp1 = Replace(Temp1, "<$siteName$>", siteName)
    Temp1 = Replace(Temp1, "<$blog_Title$>", blog_Title)
    Temp1 = Replace(Temp1, "<$skin$>", blog_DefaultSkin)
    Temp1 = Replace(Temp1, "<$blogabout$>", blogabout)
    Temp1 = Replace(Temp1, "<$comDesc$>", comDesc)
    Temp1 = Replace(Temp1, "<$CookieName$>", CookieName)
    Temp1 = Replace(Temp1, "<$blog_version$>", blog_version)

   '输出第一页评论

    Temp1 = Replace(Temp1, "<$comment$>", ShowComm(LogID, comDesc, log_View("log_DisComment"), True, log_View("log_IsShow")))

    Temp1 = Replace(Temp1, "<$Cate_icon$>", getCate.cate_icon)
    Temp1 = Replace(Temp1, "<$Cate_Title$>", getCate.cate_Name)
    Temp1 = Replace(Temp1, "<$log_CateID$>", log_View("log_CateID"))
    Temp1 = Replace(Temp1, "<$LogID$>", LogID)
    Temp1 = Replace(Temp1, "<$log_Title$>", HtmlEncode(log_View("log_Title")))
    Temp1 = Replace(Temp1, "<$log_Author$>", log_View("log_Author"))
    Temp1 = Replace(Temp1, "<$log_PostTime$>", DateToStr(log_View("log_PostTime"), "Y-m-d"))

    Temp1 = Replace(Temp1, "<$log_weather$>", log_View("log_weather"))
    Temp1 = Replace(Temp1, "<$log_level$>", log_View("log_level"))
    Temp1 = Replace(Temp1, "<$log_Author$>", log_View("log_Author"))

    If Len(log_View("log_tag"))>0 Then
        Temp1 = Replace(Temp1, "<$log_tag$>", getTags.filterHTML(log_View("log_tag")))
    Else
        Temp1 = Replace(Temp1, "<$log_tag$>", "")
    End If

    Temp1 = Replace(Temp1, "<$comDesc$>", comDesc)
    Temp1 = Replace(Temp1, "<$log_DisComment$>", log_View("log_DisComment"))

    If log_View("log_edittype") = 1 Then
        Temp1 = Replace(Temp1, "<$ArticleContent$>", UnCheckStr(UBBCode(HtmlEncode(arrcontent(rollnum)), Mid(log_View("log_ubbFlags"), 1, 1), Mid(log_View("log_ubbFlags"), 2, 1), Mid(log_View("log_ubbFlags"), 3, 1), Mid(log_View("log_ubbFlags"), 4, 1), Mid(log_View("log_ubbFlags"), 5, 1)))&qx)
    Else
        Temp1 = Replace(Temp1, "<$ArticleContent$>", UnCheckStr(arrcontent(rollnum))&qx)
    End If

    If Len(log_View("log_Modify"))>0 Then
        Temp1 = Replace(Temp1, "<$log_Modify$>", log_View("log_Modify")&"<br/>")
    Else
        Temp1 = Replace(Temp1, "<$log_Modify$>", "")
    End If

    Temp1 = Replace(Temp1, "<$log_FromUrl$>", log_View("log_FromUrl"))
    Temp1 = Replace(Temp1, "<$log_From$>", log_View("log_From"))
    Temp1 = Replace(Temp1, "<$trackback$>", SiteURL&"trackback.asp?tbID="&LogID&"&action=view")

    Temp1 = Replace(Temp1, "<$log_CommNums$>", log_View("log_CommNums"))
    Temp1 = Replace(Temp1, "<$log_QuoteNums$>", log_View("log_QuoteNums"))

    Temp1 = Replace(Temp1, "<$log_IsDraft$>", log_View("log_IsDraft"))

    Set preLogC = Conn.Execute("Select TOP 1 log_Title,log_ID FROM blog_Content Where log_PostTime<#"&DateToStr(log_View("log_PostTime"), "Y-m-d H:I:S")&"# and (log_IsShow=true or log_Readpw<>'') and log_IsDraft=false orDER BY log_PostTime DESC")
    Set nextLogC = Conn.Execute("Select TOP 1 log_Title,log_ID FROM blog_Content Where log_PostTime>#"&DateToStr(log_View("log_PostTime"), "Y-m-d H:I:S")&"# and (log_IsShow=true or log_Readpw<>'') and log_IsDraft=false orDER BY log_PostTime ASC")

    BTemp = ""
    If Not preLogC.EOF Then
        BTemp = BTemp & "<a href=""article/"&preLogC("log_ID")&".htm"" title=""上一篇日志: "&preLogC("log_Title")&""" accesskey="",""><img border=""0"" src=""images/Cprevious.gif"" alt=""""/>上一篇</a>"
    Else
        BTemp = BTemp & "<img border=""0"" src=""images/Cprevious1.gif"" alt=""这是最新一篇日志""/>上一篇"
    End If

    If Not nextLogC.EOF Then
        BTemp = BTemp & " | <a href=""article/"&nextLogC("log_ID")&".htm"" title=""下一篇日志: "&nextLogC("log_Title")&""" accesskey="".""><img border=""0"" src=""images/Cnext.gif"" alt=""""/>下一篇</a>"
    Else
        BTemp = BTemp & " | <img border=""0"" src=""images/Cnext1.gif"" alt=""这是最后一篇日志""/>下一篇"
    End If

    Temp1 = Replace(Temp1, "<$log_Navigation$>", BTemp)
if  rollnum=0 then
SaveArticle = SaveToFile(Temp1, "article/" & LogID & ".htm")
else
    SaveArticle = SaveToFile(Temp1, "article/" & LogID &"_"&(rollnum)&".htm")
end if
next
else
    '读取日志模块
    LoadTemplate1 = LoadFromFile("Template/static.htm")

    If LoadTemplate1(0) <> 0 Then Exit Sub'读取成功后写入信息

    '读取分类信息
    Temp1 = LoadTemplate1(1)

    Temp1 = Replace(Temp1, "<$CategoryList$>", CategoryList(0))
    Temp1 = Replace(Temp1, "<$base$>", baseUrl)
    Temp1 = Replace(Temp1, "<$siteName$>", siteName)
    Temp1 = Replace(Temp1, "<$blog_Title$>", blog_Title)
    Temp1 = Replace(Temp1, "<$skin$>", blog_DefaultSkin)
    Temp1 = Replace(Temp1, "<$blogabout$>", blogabout)
    Temp1 = Replace(Temp1, "<$comDesc$>", comDesc)
    Temp1 = Replace(Temp1, "<$CookieName$>", CookieName)
    Temp1 = Replace(Temp1, "<$blog_version$>", blog_version)

   '输出第一页评论

    Temp1 = Replace(Temp1, "<$comment$>", ShowComm(LogID, comDesc, log_View("log_DisComment"), True, log_View("log_IsShow")))

    Temp1 = Replace(Temp1, "<$Cate_icon$>", getCate.cate_icon)
    Temp1 = Replace(Temp1, "<$Cate_Title$>", getCate.cate_Name)
    Temp1 = Replace(Temp1, "<$log_CateID$>", log_View("log_CateID"))
    Temp1 = Replace(Temp1, "<$LogID$>", LogID)
    Temp1 = Replace(Temp1, "<$log_Title$>", HtmlEncode(log_View("log_Title")))
    Temp1 = Replace(Temp1, "<$log_Author$>", log_View("log_Author"))
    Temp1 = Replace(Temp1, "<$log_PostTime$>", DateToStr(log_View("log_PostTime"), "Y-m-d"))

    Temp1 = Replace(Temp1, "<$log_weather$>", log_View("log_weather"))
    Temp1 = Replace(Temp1, "<$log_level$>", log_View("log_level"))
    Temp1 = Replace(Temp1, "<$log_Author$>", log_View("log_Author"))

    If Len(log_View("log_tag"))>0 Then
        Temp1 = Replace(Temp1, "<$log_tag$>", getTags.filterHTML(log_View("log_tag")))
    Else
        Temp1 = Replace(Temp1, "<$log_tag$>", "")
    End If

    Temp1 = Replace(Temp1, "<$comDesc$>", comDesc)
    Temp1 = Replace(Temp1, "<$log_DisComment$>", log_View("log_DisComment"))

    If log_View("log_edittype") = 1 Then
        Temp1 = Replace(Temp1, "<$ArticleContent$>", UnCheckStr(UBBCode(HtmlEncode(log_View("log_Content")), Mid(log_View("log_ubbFlags"), 1, 1), Mid(log_View("log_ubbFlags"), 2, 1), Mid(log_View("log_ubbFlags"), 3, 1), Mid(log_View("log_ubbFlags"), 4, 1), Mid(log_View("log_ubbFlags"), 5, 1))))
    Else
        Temp1 = Replace(Temp1, "<$ArticleContent$>", UnCheckStr(log_View("log_Content")))
    End If

    If Len(log_View("log_Modify"))>0 Then
        Temp1 = Replace(Temp1, "<$log_Modify$>", log_View("log_Modify")&"<br/>")
    Else
        Temp1 = Replace(Temp1, "<$log_Modify$>", "")
    End If

    Temp1 = Replace(Temp1, "<$log_FromUrl$>", log_View("log_FromUrl"))
    Temp1 = Replace(Temp1, "<$log_From$>", log_View("log_From"))
    Temp1 = Replace(Temp1, "<$trackback$>", SiteURL&"trackback.asp?tbID="&LogID&"&action=view")

    Temp1 = Replace(Temp1, "<$log_CommNums$>", log_View("log_CommNums"))
    Temp1 = Replace(Temp1, "<$log_QuoteNums$>", log_View("log_QuoteNums"))

    Temp1 = Replace(Temp1, "<$log_IsDraft$>", log_View("log_IsDraft"))

    Set preLogC = Conn.Execute("Select TOP 1 log_Title,log_ID FROM blog_Content Where log_PostTime<#"&DateToStr(log_View("log_PostTime"), "Y-m-d H:I:S")&"# and (log_IsShow=true or log_Readpw<>'') and log_IsDraft=false orDER BY log_PostTime DESC")
    Set nextLogC = Conn.Execute("Select TOP 1 log_Title,log_ID FROM blog_Content Where log_PostTime>#"&DateToStr(log_View("log_PostTime"), "Y-m-d H:I:S")&"# and (log_IsShow=true or log_Readpw<>'') and log_IsDraft=false orDER BY log_PostTime ASC")

    Dim BTemp
    BTemp = ""
    If Not preLogC.EOF Then
        BTemp = BTemp & "<a href=""article/"&preLogC("log_ID")&".htm"" title=""上一篇日志: "&preLogC("log_Title")&""" accesskey="",""><img border=""0"" src=""images/Cprevious.gif"" alt=""""/>上一篇</a>"
    Else
        BTemp = BTemp & "<img border=""0"" src=""images/Cprevious1.gif"" alt=""这是最新一篇日志""/>上一篇"
    End If

    If Not nextLogC.EOF Then
        BTemp = BTemp & " | <a href=""article/"&nextLogC("log_ID")&".htm"" title=""下一篇日志: "&nextLogC("log_Title")&""" accesskey="".""><img border=""0"" src=""images/Cnext.gif"" alt=""""/>下一篇</a>"
    Else
        BTemp = BTemp & " | <img border=""0"" src=""images/Cnext1.gif"" alt=""这是最后一篇日志""/>下一篇"
    End If

    Temp1 = Replace(Temp1, "<$log_Navigation$>", BTemp)

    SaveArticle = SaveToFile(Temp1, "article/" & LogID & ".htm")
end if
    PostArticleListCache LogID, log_View, getCate , getTags

    Set log_View = Nothing
    Set getCate = Nothing
    Set getTags = Nothing
    'getCate.cate_Secret or (not log_View("Log_IsShow"))
End Sub

'======================================================
'缓存静态化列表
'======================================================

静态内分页完成。。
[分页符]
动态修改:
打开:class/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

找到
                            If log_ViewArr(10, 0) = 1 Then
                                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))
                            End If

替换
                            If log_ViewArr(10, 0) = 1 Then
                                '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)
                            End If

在最后添加:
<%
'*******************************************
'  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),fenyefu,1)<>0 Then
        ArrContent=Split(Content,fenyefu)
        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='center'>共 " & x & " 页:" & PageList & "</div><hr>"
        End If
    content=replace(content,fenyefu,"")
    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>
                '插入分页符的时候,用回车换行,单独起一行来放分页符
                '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='center'>共 " & x & " 页:" & PageList & "</div><hr>"
        End If
    End If
    response.write(Content)
End Sub%>

动态分页完成
共 4 页: [1] [2] [3] [4] [全文阅读]



评论: 3 | 引用: 0 | 查看次数: 2675
百斯特
回复回复百斯特 [2009-08-01 10:29:27 |  | del | 取消审核]
你那个静态分页程序,我下载覆盖后出现了错误。 Object doesn't support this property or method: 'logMeta' /blogedit.asp, 第 272 行

情留メ蚊子 于 2009-08-01 10:45:37 回复
你的是什么版本,用这个版本覆盖。。
智多星
回复回复智多星 [2009-07-31 08:39:57 |  | del | 取消审核]
PJBlog3 v3.1.6.227能用吗?我直接替换到PJBlog3 v3.1.6.227版后发表不了日志。。

情留メ蚊子 于 2009-07-31 10:21:26 回复
任何一个版本手动修改都可以用!
izixin.com
回复回复izixin.com [2008-11-23 20:26:03 | del | 取消审核]
我下载文件直接盖原文件后不能自动分页,不知何故?希望PJ尽快整合就好了!

情留メ蚊子 于 2008-11-27 00:07 AM 回复
这个是手动分页的。。。需要插入分页符的

发表评论
昵 称:
密 码:    游客发言不需要密码.
邮 箱:    支持Gravatar头像
网 址:
验证码:    点击输入框
内 容:
您一共可以输入1000个字
选 项:
不想保留信息请删除cookie
发表评论后您发表的内容自动复制到了剪贴板
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭