账号通
    

账号  

密码  

3947

查看

5

回复
主题:[分享]V7.x图片频道绑定二级域名时,生成的图片内容页部分图片不显示的修复 [收藏主题] 转到:  
科汛官方 当前离线

47268

主题

145

广播

405

粉丝
添加关注
级别:管理员

用户积分:101604 分
登录次数:7935 次
注册时间:2006/12/7
最后登录:2023/12/14
科汛官方 发表于:2010/12/6 11:10:47   | 显示全部帖子 查看该作者主题 楼主 

经商业用户反应及官方测试,发现存在此BUG,问题在于图片频道绑定二级域名时,如果上传的图片不是绝对路径时,图片无法显示。





如果您的图片频道没有绑定二级域名,就不用再往下看了。。。。







解决方法如下:



打开ks_cls/kesion.label.commoncls.asp,KesionCMS版本约854行,每个用户这个文件的位置可能不同



以下以图片生成分页方式为例说明修改,





找到

case 2  '图片模型

       Content=Node.SelectSingleNode("@picurls").text

       If IsNull(Content) Then Content = ""

       ContentArr = Split(Content, "|||") : TotalPage  = UBound(ContentArr) + 1

       Dim ShowStyle,PageNum,Tp

       ShowStyle=KS.ChkClng(Node.SelectSingleNode("@showstyle").text) : If ShowStyle=0 Then ShowStyle=1

       PageNum=KS.ChkClng(Node.SelectSingleNode("@pagenum").text) : If PageNum=0 Then PageNum=10

       If (ShowStyle=1 or ShowStyle=2 Or ShowStyle=4) And TotalPage<=1 Then ShowStyle=3

       Select Case ShowStyle

        case 1

            Tp=LFCls.GetConfigFromXML("picturelabel","/labeltemplate/label","style1")

            Dim ThumbList,DefaultImageSrc,DefaultImageIntro,r,Tpage

         For I = 0 To TotalPage - 1

        CurrPage = I + 1

        GetPrevNextUrl TotalPage,CurrPage,ShowUrl,sFname,Fname,FExt,Tid    '得到上一页及下一页URL

        ThumbList=""

        For n=1 To TotalPage

         If N=1 Then

          If CurrPage = N Then

         ThumbList=ThumbList &"<li><a class=""currthumb"" href=""" & ShowUrl & sFname &""" target=""_self""><img src=""" & Split(ContentArr(n-1),"|")(2) &""" border=""0""/></a></li>"

          Else

           ThumbList=ThumbList &"<li><a class=""normalthumb"" href=""" & ShowUrl & sFname &""" target=""_self""><img src=""" & Split(ContentArr(n-1),"|")(2) &""" border=""0""/></a></li>"

          End If

         Else

          If CurrPage = N Then

         ThumbList=ThumbList &"<li><a class=""currthumb"" href=""" & ShowUrl & Fname & "_" & N & FExt &""" target=""_self""><img src=""" & Split(ContentArr(n-1),"|")(2) &""" border=""0""/></a></li>"

          Else

            ThumbList=ThumbList &"<li><a class=""normalthumb"" href=""" & ShowUrl & Fname & "_" & N & FExt &""" target=""_self""><img src=""" & Split(ContentArr(n-1),"|")(2) &""" border=""0""/></a></li>"

          End If

         End If

        Next

        DefaultImageSrc=Split(ContentArr(CurrPage-1), "|")(1)

        DefaultImageIntro=Split(ContentArr(CurrPage-1), "|")(0)

          If CurrPage <> 1 Then FilePathAndName = FilePathAndNameTemp & Fname & "_" & CurrPage & FExt

       F_C = TFileContent

       If InStr(F_C, "{UnTag:GetRelativeList") <> 0 Then F_C = ReplaceLableFlag(Replace(F_C, "{UnTag:GetRelativeList", "{Tag:GetRelativeList"))

       Dim PicSrc :PicSrc=Split(ContentArr(I), "|")(1)

       If (Lcase(Left(PicSrc,4))<>"http") Then PicSrc=KS.Setting(2) & PicSrc

         PageContent=Replace(Tp,"{$PrevUrl}",PrevUrl)

         PageContent=Replace(PageContent,"{$NextUrl}",NextUrl)

         PageContent=Replace(PageContent,"{$CurrPage}",CurrPage)

         PageContent=Replace(PageContent,"{$TotalPage}",TotalPage)

         PageContent=Replace(PageContent,"{$ShowThumbList}",ThumbList)

         PageContent=Replace(PageContent,"{$DefaultImageSrc}",DefaultImageSrc)

         PageContent=Replace(PageContent,"{$DefaultImageIntro}",DefaultImageIntro)

         If TotalPage>1 Then F_C=Replace(F_C,"{$GetPictureName}",GetNodeText("title") & "(" & currpage & ")")

         Templates = "" : Scan F_C

         F_C = Templates

         F_C = ReplaceGeneralLabelContent(F_C)

         F_C = ReplaceRA(F_C, Trim(KS.C_C(Tid,4)))

         Call FSOSaveFile(F_C, FilePathAndName)

       Next



观察上面加颜色的,可以发现,系统默认没有对图片路径进行判断。如果图片地址为:/Uploadfiles/2010-12-7/1.jpg,这种形式,绑定二级域名后就无法显示,因为他的路径会变成  http://二级域名/uploadfiles/2010-12-7/1.jpg



知道原因后就可以开始解决了:



我们在

For n=1 To TotalPage

这句后面增加

Dim ThumbPic:ThumbPic=Split(ContentArr(n-1),"|")(2)

If lcase(Left(ThumbPic,4))<>"http" Then ThumbPic=KS.Setting(2) & ThumbPic



再将红色的Split(ContentArr(n-1),"|")(2) 全部改成 Thumbpic



再将绿色的:DefaultImageSrc=Split(ContentArr(CurrPage-1), "|")(1)

下面增加一个判断

If lcase(left(DefaultImageSrc,4))<>"http" then DefaultImageSrc=KS.Setting(2) & DefaultImageSrc

经过以上修改就可以解决绑定二级域名时,图片不显示了







上面只说了分页方式的处理,如果有用到其它的显示样式,下面还有类似几种显示样式,请自行修改下哦



 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.07910秒 powered by KesionCMS 9.0