我们时刻把握互联网流行趋势!

传递业内动态,探讨互联网热门话题,我们与您分享网站建设心得及职业生涯感悟,让您把握网络流行趋势,占据互联网时代前沿!

新闻资讯企业动态前沿探索技术分享

ISite多栏目调用模型自定义字段bug修复

技术分享 2017-03-19 

Bug描述:模型自定义字段前台多栏目调用时无效.


其实这不能算是bug,因为ISite原本就没有多栏目调用时显示模型自定义字段。


此bug修复方法如下:

打开文件 class/Cls_Template.asp

将684-708行代码(行数不一定准确,因为我的不是原始的版本,仔细比对代码吧,修改之前记得备份原始文件)

		If IsNumeric(c_Module) Then
			If c_Module>0 Then
				Sqlstr="Select Fk_Module_Id,Fk_Module_Model From [Fk_Module] Where Fk_Module_Id=" & c_Module
				Rs.Open Sqlstr,Conn,1,1
				If Not Rs.Eof Then
					ModelId=Rs("Fk_Module_Model")
				Else
					ModelId=0
				End If
				Rs.Close
				
				Sqlstr="Select Fk_Model_Field From [Fk_Model] Where Fk_Model_Id=" & ModelId
				Rs.Open Sqlstr,Conn,1,1
				If Not Rs.Eof Then
					ModelField=Rs("Fk_Model_Field")
				Else
					ModelField=""
				End If
				Rs.Close
			Else
				ModelField=""
			End If
		Else
			ModelField=""
		End If

替换为以下代码

		If IsNumeric(c_Module) Then
			If c_Module>0 Then
				Sqlstr="Select Fk_Module_Id,Fk_Module_Model From [Fk_Module] Where Fk_Module_Id=" & c_Module
				Rs.Open Sqlstr,Conn,1,1
				If Not Rs.Eof Then
					ModelId=Rs("Fk_Module_Model")
				Else
					ModelId=0
				End If
				Rs.Close
				
				Sqlstr="Select Fk_Model_Field From [Fk_Model] Where Fk_Model_Id=" & ModelId
				Rs.Open Sqlstr,Conn,1,1
				If Not Rs.Eof Then
					ModelField=Rs("Fk_Model_Field")
				Else
					ModelField=""
				End If
				Rs.Close
			Else
				ModelField=""
			End If
		ElseIf IsNumeric(Replace(c_Module,"+","")) Then
			Sqlstr="Select Distinct Fk_Module_Model From [Fk_Module] Where Fk_Module_Id In ("&Replace(c_Module,"+",",")&")"
			Rs.Open Sqlstr,Conn,1,1
			If  Not Rs.Eof And Rs.RecordCount=1 Then
				ModelId=Rs("Fk_Module_Model")
			Else
				ModelId=0
			End If
			Rs.Close
				
			Sqlstr="Select Fk_Model_Field From [Fk_Model] Where Fk_Model_Id=" & ModelId
			Rs.Open Sqlstr,Conn,1,1
			If Not Rs.Eof Then
				ModelField=Rs("Fk_Model_Field")
			Else
				ModelField=""
			End If
			Rs.Close
		Else
			ModelField=""
		End If

保存文件,修复完成。


需要说明的是,调用的多栏目属于同一模型时,模型自定义字段才会显示,否则还是无效的。至于为什么不能修复为也支持多模型,是我觉得没必要,当然也可以说是我偷懒了。

本文网址:http://www.daguweb.com/News/Col9/27.html

分享到:


© 2008-2017 daguweb.com All Rights Reserved.