碎片三种类型:
三种类型分别是:动态、手工、静态。区别在于:“动态类型”是利用XML来调用数据库相关记录;“手工类型”是和TSYS1.1版的“页面内容替换”方式是一样的;“静态类型”是调用某一个文件里的内容。
碎片的更新原理:
打开“SliceUpdate_Process.asp”文件,细看第58行的“Function ExeCuteSliceById(IdList)”函数,它首先是打开“slice_list”表,通过“slice_type”(碎片类型)来将“slice_data” 赋于不同的变量:动态类型的交给“inc/SliceParser.class.asp”文件中的“Compile()”来处理;静态类型的交给“inc/ FunctionLib.class.asp”文件中的“ChkPathType()”来判断文件所使用的路径类型。无论是“动态类型”还是“静态类型”,其返回的结果都和“手工类型”一样,把结果赋于“tmpContent”变量。
下面接着是继续调用数据库取出“fPath”(要处理的文件名)、“start_flag”(起始标签)、“end_flag”(结束标签),将这四个变量都交给“SaveSliceContent()”函数来处理,下面接着看第116行“Function SaveSliceContent(fPath, sFlag, eFlag, strHtml)”。
在“SaveSliceContent()”中,开始以“Template.class.asp”中的过程声明一个对象:“Tpl”,上述四个变量都交给这个对象来处理了,其处理过程和TSYS1.1版的过程一样。大家感兴趣可以打开“Template.class.asp”文件看看。
碎片不足的地方:
大家在设置碎片的时候有没有发现,作用于文件的路径只能设置一个,如果一个碎片在多个文件中调用,是不是一样的碎片有设置多个。 其实在“SaveSliceContent()”函数中改改即可,偶的想法是判断出“Path”中一共有几个路径,然后设个循环依次处理。其处理方法完全参照TSYS1.1版来。
原贴地址:
http://bbs.bpips.com/forum_posts.asp?TID=998
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=546891