经商业用户反应及官方测试,发现存在此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
经过以上修改就可以解决绑定二级域名时,图片不显示了
上面只说了分页方式的处理,如果有用到其它的显示样式,下面还有类似几种显示样式,请自行修改下哦