创力网站管理系统-举个例说明模板、标签处理过程
来自站长百科
导航:返回上一页
创力网站管理系统-举个例说明模板、标签处理过程
在代码里我们常见到这两句话
PageData_Photo_Index 我们从这里开始处理过程
pageData_photo_index 这等同于 call pagedata_photo_index() 这个函数在inc\cl_pagedata.asp中
主要的过程
TempStr=Template.html(0) 这是获得PHOTO[[模板]]里界面风格中第一组模板
另外一句是这句
Response.write Cl.ReplaceAllFlag(Cl.Head & TempStr & Cl.Bottom)
这里cl.head cl.bottom是在主程序CL类里处理的 inc\cls_clsMain.asp 有些适应在类的标签在其它地方是不能用的。cl.head & tempstr & cl.bottom 拼装成一个完整的页面(这里面包括各种标签)
Public Function ReplaceAllFlag(strContent) strContent=ReplaceLabel(strContent) strContent=ReplacePublicFlag(strContent) 。。。。 ReplaceAllFlag = Replace(ReplaceAllFlag,Match.Value,GetLabelContent(TempStr)) 。。。。 ReplaceAllFlag=ReplacePublicFlag(ReplaceAllFlag) End Function
这是replaceallflag函数,用到了正则表达式。
- 第一句 strContent=ReplaceLabel(strContent) 处理自定义标签的过程
- 第二句 strContent=ReplacePublicFlag(strContent) 处理公共标签,这个函数在inc\cl_getlabel.asp里,头一个就是ReplaceAllFlag = Replace(ReplaceAllFlag,Match.Value,GetLabelContent(TempStr))这句里关键是getlabelContent()这个函数,在inc\cl_getlabel.asp中假定标签是$showphotopath(1)}, 传到getlabelcontent时 tempstr="showphotopath,1"在getlabelcontent中传进来的tempstr分解成ParaArray = Split(LabelStr,",") 参数,以逗号分隔,因此paraarray(0)的值就应该是标签名,这涉及到下面的动作case ""
处理过程
所以,当标签未在此处理过程中,是会出现标签错误的
处理过程需要注意的是
- 标签中参数的个数,参数的属性一定要与函数一一对应,不要搞错
- 如果调用是cl_clsmain主类里的函数或变量,一定要写成cl.变量名
PS:自己附加的函数标签,还要在相应的分类频道的函数包里增加相应的函数,这是不可缺少的